7 use File::Path qw(rmtree);
12 if ( my $original = shift @ARGV ) {
13 my $len_ms = `oggLength $original`;
14 $length = int( ( $len_ms + 500 ) / 1000 );
15 warn "$original\t$length s\n";
21 my $frame_fmt = '/tmp/blank/f%08d.jpg';
23 foreach my $pos ( 0 .. $length * $fps ) {
25 my $im = Graphics::Magick->new( size => '320x200' );
26 $im->ReadImage( 'xc:black' );
28 my $hh = int( $t / 60 / 60 );
29 my $mm = int( $t / 60 );
30 my $ss = $t - $mm * 60 - $hh * 60 * 60;
33 font => 'Sans', pointsize => 24,
34 text => sprintf("%02d:%02d:%06.3f", $hh, $mm, $ss ),
37 my $path = sprintf $frame_fmt, $pos;
38 $im->Write( filename => $path );
39 # warn "# $hh $mm $ss $path ", -s $path, $/ if $t % $fps == 0;
40 print STDERR $pos % 60 * $fps == 0 ? '*' : '.' if $pos % $fps == 0;
45 #system "oggSlideshow -f $fps -o /tmp/blank.ogv -d 20000 -e -l $fps -t p /tmp/blank/f*";
46 system "ffmpeg2theora --framerate $fps --keyint $fps -o /tmp/blank.ogv $frame_fmt";