[vdr] how to convert vdr to divx?

Craig Sanders cas at taz.net.au
Thu Mar 24 00:03:56 CET 2005

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 :
> http://magma.epfl.ch/greg/scripts/MENCODER


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-
# will convert to divx & save as /video/DIVX/FooBar.2005.03.22.avi

# user-tweakable constants


# 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.
#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
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=')
#echo $IN "===>" $OUT


for f in vdrsync1.mpg frameno.avi divx2pass.log ; do
  [ -e $f ] && rm -f $f

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 sanders <cas at taz.net.au>           (part time cyborg)

More information about the vdr mailing list