#!/usr/bin/perl print "Running lsdvd .. "; eval `/usr/bin/lsdvd -v -a -Op 2>/dev/null`; print "DONE\n"; if ($lsdvd{'longest_track'}) { my $filesize = $ARGV[0] || 700000; print 'Longest track is '.$lsdvd{'longest_track'}."\n"; foreach my $track (@{$lsdvd{'track'}}) { if ($$track{'ix'} == $lsdvd{'longest_track'}) { print 'Video: '. $$track{'length'}.' sec / '.int($$track{'length'} / 60).' min, '. $$track{'format'}.', '. $$track{'aspect'}.', '. $$track{'width'}.'x'. $$track{'height'}.' @ '. $$track{'fps'}."fps\n\n"; foreach my $audio (@{$$track{'audio'}}) { # audio channel offsets: (MPEG: 0-31, AVI/OGM: 1-99, ASF/RM: 0-127, VOB(AC3): 128-159, VOB(LPCM): 160-191, MPEG-TS 17-8190) $$audio{'ix'}+= 127 if ($$audio{'format'} eq 'ac3'); print 'Audio #'. $$audio{'ix'}.': '. $$audio{'language'}.', '. $$audio{'content'}.', '. $$audio{'format'}.', '. $$audio{'frequency'}."KHz\n". 'Sample: mplayer -quiet dvd://'. $lsdvd{'longest_track'}. ' -aid '. $$audio{'ix'}."\n". 'Rip : mencoder dvd://'. $lsdvd{'longest_track'}. ' -aid '. $$audio{'ix'}. ' -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate='. (int((($filesize - ($$track{'length'} * 16)) * 8) / $$track{'length'})). ' -vop scale -zoom -xy 640 -oac mp3lame -lameopts br=128 -o '. $lsdvd{'title'}.'.avi'."\n\n"; } last; } } } else { print "Couldn't find longest_track\n"; }