#!/usr/bin/perl -w my $newpath='/huge/vids/scripts'; $newpath=`$newpath/echo-path`; chomp($newpath); $ENV{'PATH'}=$newpath; my $vidfile = $ARGV[0]; my $vidwidth; my $vidheight; my $vidsecs; my $idh; open($idh, '-|', "mplayer -frames 0 -identify -vo null -ao null $vidfile 2>/dev/null"); while (<$idh>) { if (/^ID_VIDEO_WIDTH=(\d+)$/) { $vidwidth = $1; } elsif (/^ID_VIDEO_HEIGHT=(\d+)$/) { $vidheight = $1; } elsif (/^ID_LENGTH=(\d+\.\d+)$/) { $vidsecs=$1; } } my $incsec = $vidsecs/71.0; my $ss = $incsec; my $i; my $montage="montage"; my $gengif="convert -delay 10"; for ($i = 0; $i < 70; ++$i) { my $fs = sprintf("%04.6f",$ss); system("mplayer -nosound -ss $fs -frames 1 -vo png:z=1:prefix=mptmp $vidfile"); $fs = sprintf("%02d",$i); system("convert mptmp00000001.png -rotate 2.5 -crop '731x548+679+274!' -resize 160x120 -normalize sstmp$fs.png"); unlink("mptmp00000001.png"); $gengif .= " sstmp$fs.png"; $ss += $incsec; } $gengif .= " animated.gif"; system($gengif);