#!/bin/perl
use strict;
use warnings;
use File::Path;
use Cwd 'getcwd';
use Fcntl;
use File::Find;
use utf8;
use File::Copy;
my $dir = getcwd;
my %wh = ();
finddepth( { preprocess => \&p, wanted => \&d, nochdir => 0}, '.' );
sub p{
my $depth = $File::Find::dir =~ tr[/][];
return @_ if $depth < 0;
return grep { not -d } @_ if $depth == 0;
return;
}
sub d{
return if($_ eq '.');
return if($_ eq '..');
return if(-d);
return unless(-f);
return unless(/\.ts$/);
my $ts = $_;
my $mp4 = $_;
$mp4 =~ s/\.ts$/.mp4/;
return unless(-f $mp4);
my $mp4d = 0;
my $tsd = 0;
open my $tsinfo, 'ffmpeg -y -i "' . $ts . '" 2>&1 |';
while(<$tsinfo>)
{
if(/Duration: (\d+):(\d+):(\d+).(\d+)/)
{
$tsd = ($1 * 60 * 60 + $2 * 60 + $3);
}
}
open my $mpinfo, 'ffmpeg -y -i "' . $mp4 . '" 2>&1 |';
while(<$mpinfo>)
{
if(/Duration: (\d+):(\d+):(\d+).(\d+)/)
{
$mp4d = ($1 * 60 * 60 + $2 * 60 + $3);
}
}
print "found $ts .. $tsd\nfound $mp4 .. $mp4d\n";
if( $mp4d != 0 && $tsd != 0 && $mp4d == $tsd )
{
print "done !!\n";
unlink $ts;
}
}