use Graphics::Magick;
use Time::HiRes qw(time);
use File::Path qw(rmtree);
+use Getopt::Long;
use lib 'lib';
use HTML5TV::Slides;
my $debug = $ENV{DEBUG} || 0;
my $generate = $ENV{GENERATE} || 0;
+my $video_url; # override mplayer movie url
+
+GetOptions(
+ 'video-url=s' => \$video_url,
+) || die $!;
+
my $movie = shift @ARGV;
sub base_dir { $1 if $_[0] =~ m{^(.+)/[^/]+$} }
} elsif ( -f $movie && $movie =~ m{\.og[vg]\b}i ) {
my $movie_master = $movie;
$movie = base_dir($movie) . '/video.ogv';
- unlink $movie;
+ unlink $movie if -e $movie;
symlink base_name($movie_master), $movie;
warn "symlink video.ogv -> $movie_master";
+} elsif ( $video_url ) {
+ warn "video_url: $video_url\n";
} else {
die "Usage: $0 media/conference-Title_of_talk[/video.ogv'\n";
}
sub load_movie {
warn "$movie ", -s $movie, " bytes $edl\n";
- print $to_mplayer qq|loadfile "$movie"\n|;
+ my $url = $video_url || $movie;
+ warn "loadfile $url\n";
+ print $to_mplayer qq|loadfile "$url"\n|;
load_subtitles;
}
my $path = "$media_dir/presentation.pdf";
$path = $media_dir . '/' . readlink($path) if -l $path;
-warn "XX $path";
-
if ( -e $path ) {
warn "render pdf slides from $path\n";
system "pdftoppm -png -r 100 $path $hires/p";
if ( @frames ) {
warn "create slides from video frames";
- rmdir $_ foreach glob "$media_dir/s/[124]";
+# rmdir $_ foreach glob "$media_dir/s/[124]";
oggThumb $movie, "$hires/.f%.jpg", map { $_->[0] } @frames;
sub save_subtitles {
+ YAML::DumpFile "$subtitles.yaml", sort { $a->[0] <=> $b->[0] } @subtitles if @subtitles;
+
html5tv || return;
my $nr = 0;
warn $srt;
write_file $subtitles, $srt;
- YAML::DumpFile "$subtitles.yaml", sort { $a->[0] <=> $b->[0] } @subtitles;
push @to_mplayer
, "sub_remove\n"
push @to_mplayer, "get_property $_\n" foreach grep { ! $prop->{$_} } @mplayer_prop;
my $t = time;
-my $line;
push @to_mplayer, 'pause' if $generate;