X-Git-Url: http://git.pippins.net/embedvideo/.git/static/git-logo.png?a=blobdiff_plain;f=make_mkv;h=ac85eab8a48cdfa444ac0bfd9925c78e3ab839c4;hb=e1df56954cd8fbb372ee86e12b53f4313ae77eda;hp=f0481165d5a0dde18e56d347cb8952ad0d2e921b;hpb=aea4af9869a2086c5085afb34a1bd790940c8b7d;p=videoscripts%2F.git diff --git a/make_mkv b/make_mkv index f048116..ac85eab 100755 --- a/make_mkv +++ b/make_mkv @@ -20,7 +20,8 @@ use DateTime::Format::Duration; use DateTime::Format::Strptime qw( ); # Set our ffmpeg creation_time format -$ffmpeg_time_format = DateTime::Format::Strptime->new(pattern=>'%Y-%m-%dT%H:%M:%S', time_zone => 'UTC', on_error => 'croak'); +$ffmpeg_time_format_utc = DateTime::Format::Strptime->new(pattern=>'%Y-%m-%dT%H:%M:%S', time_zone => 'UTC', on_error => 'croak'); +$ffmpeg_time_format_local = DateTime::Format::Strptime->new(pattern=>'%Y-%m-%dT%H:%M:%S', time_zone => 'local', on_error => 'croak'); #################################################################################################### # Configuration parameters @@ -72,8 +73,12 @@ foreach $video (split(/,/, $opt_i)) { if(! -r "$video") { die "-E- Unable to read input video file: $video\n"; } my $mtime_epoch = 0; my $creation_time = `$ffmpeg -i "$video" 2>&1 | grep "creation_time" | head -n 1 | awk '{print \$3}'`; + my $brands = `$ffmpeg -i "$video" 2>&1 | grep "compatible_brands" | tail -n 1`; chomp($brands); if($creation_time) { - my $date_taken = $ffmpeg_time_format->parse_datetime($creation_time); + my $date_taken = $ffmpeg_time_format_utc->parse_datetime($creation_time); + if ($brands && $brands =~ /$local_tz_brands/) { + $date_taken = $ffmpeg_time_format_local->parse_datetime($creation_time); + } $date_taken->set_time_zone('local'); $mtime_epoch = $date_taken->epoch; } else { @@ -273,7 +278,7 @@ if($opt_v) { # 3) Create a chapter file for each destination video file # tmp chapter file used by handbrake when creating mkv, but remove the 0 byte file it creates, we'll create it if we need it -my $chapter_file = `tempfile`; chomp($chapter_file); unlink "$chapter_file"; +my $chapter_file = `mktemp`; chomp($chapter_file); unlink "$chapter_file"; foreach my $key (keys %merge_videos) { # Create the chapters file for each output mkv file. @@ -291,8 +296,12 @@ foreach my $key (keys %merge_videos) { my $sec = 0; my $mtime_epoch = 0; my $creation_time = `$ffmpeg -i "$video" 2>&1 | grep "creation_time" | head -n 1 | awk '{print \$3}'`; - if($creation_time) { - my $date_taken = $ffmpeg_time_format->parse_datetime($creation_time); + my $brands = `$ffmpeg -i "$video" 2>&1 | grep "compatible_brands" | tail -n 1`; chomp($brands); + if($creation_time) { + my $date_taken = $ffmpeg_time_format_utc->parse_datetime($creation_time); + if ($brands && $brands =~ /$local_tz_brands/) { + $date_taken = $ffmpeg_time_format_local->parse_datetime($creation_time); + } $date_taken->set_time_zone('local'); $mtime_epoch = $date_taken->epoch; } else {