#!/usr/bin/perl -w use strict; my $encfile = shift @ARGV; open (ENCFILE,"<$encfile"); while () { chomp; (my @data) = split("\@\@",$_); encode($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6]); } close ENCFILE; sub encode { my $infile = shift; my $outfile = shift; my $vbitrate = shift; my $abitrate = shift; my $scale = shift; my $crop = shift; my $vopts = shift; my $outbase = `/usr/bin/basename "$outfile" .avi`; chomp($outbase); my $pass = 1; while ($pass < 3) { my $cmd = "nice mencoder "; $cmd .= qq(-o "$outbase-pre.avi" ); $cmd .= "-oac copy "; $cmd .= "-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$vbitrate:$vopts:vpass=$pass "; $cmd .= "-vop scale=$scale,crop=$crop -sws 2 "; $cmd .= "-dvd $infile"; print "==> Running: $cmd\n"; if ($pass == 1) { unlink "frameno.avi"; unlink "dix2pass.log" } print "===> Encoding pass $pass <===\n"; system "$cmd"; $pass++; if ($pass == 3) { my $mp3cmd = "nice mencoder -ovc copy -oac mp3lame "; $mp3cmd .= qq(-lameopts cbr:br=$abitrate -o "$outfile" ); $mp3cmd .= qq("$outbase-pre.avi"); print "===> Encoding audio <===\n"; system "$mp3cmd"; unlink "$outbase-pre.avi"; } } }