ts ファイルの後処理 mp4にしたあとの残骸削除

#!/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}, '.' );
# max-depth 1
sub p{
    my $depth = $File::Find::dir =~ tr[/][];
    return @_ if $depth < 0;
    return grep { not -d } @_ if $depth == 0;
    return;
}
# work
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) * 1000 + $4;
			$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) * 1000 + $4;
			$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;
	}
}