On Wed, Mar 23, 2005 at 10:17:18PM +0100, Gr?goire Favre wrote:
it's probably not a great idea to do the conversion in only one pass if you want to keep a good quality...
yep, that's my next step...to make it do a good quality two-pass transcoding.
even with the default settings as in the script, the quality is reasonable. artifacts are only really noticable in graphics and lettering on signs etc.
You could for example have a look at :
thanks.
modifying my script to use the same two-pass technique, results in:
note: untested, but if the original (yours?) works, this should work the same.
---cut here--- #! /bin/bash
# vdr2dix.sh [dir] # # e.g. vdr2divx.sh /video/FooBar/2005-03-22.23.59.99.99.rec # will convert to divx & save as /video/DIVX/FooBar.2005.03.22.avi
# user-tweakable constants OUTDIR='/video/DIVX' TMPDIR='/video/tmp'
VBR=1000
# i don't use scaling, so don't have useful values for $C and $S # uncomment and provide good values if you want to scale. #C="" #S="" #SCALE="-vf crop=$C,scale=$S -sws 2"
AUDIO="-oac copy" VIDEO="-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$VBR:trell:mv0:mbd=2:v4mv:qprd:cmp=10:subcmp=10:mbcmp=10:predia=2:dia=2"
PASS1="$SCALE $AUDIO $VIDEO:vpass=1:turbo" PASS2="$SCALE $AUDIO $VIDEO:vpass=2:turbo"
# arg processing IN="$1" show=$(echo "$IN" | sed -e 's=/video/==' -e 's=/.*==') date=$(echo "$IN" | sed -e 's=.*([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]).*=\1=') OUT="$OUTDIR/$show.$date.avi" #echo $IN "===>" $OUT
cd $TMPDIR
for f in vdrsync1.mpg frameno.avi divx2pass.log ; do [ -e $f ] && rm -f $f done
vdrsync.pl $IN -mpeg2 -o $TMPDIR/
mencoder -ovc frameno -o frameno.avi -oac mp3lame -lameopts cbr:br=96 $TMPDIR/vdrsync1.mpg mencoder $PASS1 -o /dev/null $TMPDIR/vdrsync1.mpg mencoder $PASS2 -o $OUT $TMPDIR/vdrsync1.mpg
rm -f frameno.avi divx2pass.log vdrsync1.mpg ---cut here---
(does "br=96" in lameopts give reasonable sound quality?)
next on the TODO list: - make one-pass or two-pass selectable from command line, e.g. "-1" or "-2" (probably default to 2 pass) - allow overide of output filename (default to filename derived by sed)
usage would then be:
vdr2divx.sh [-1|-2] [-o filename] <dir>
BUT, I have learn something about sed with your script, thank you for it !!!
sed's a useful tool...but a bit "clumsier" to use than perl. i tend to use sh + sed + awk etc for small, simple scripts and for wrapper scripts that mostly call other programs to do the work, and perl for anything more complex.
craig