I wrote a PHP script to batch encode. Here is the help information. If anyone is interested please email me.

Code:
gdanko@shuttle:~$ batch_encode.php --help
batch_encode, 0.1.0
Usage: batch_encode --source [<filename|directory name>] --dest [<directory name>]
       [--dryrun] [--help] [--version]

Options:

 -h, --help
    Display help information
 -V, --version
    Display version information.
 -s, --source
    Source filename or directory containing multiple source files.
 -d, --dest
    Destination directory for output files.
 --debug
    Display lots of debugging information.
 --dryrun
    Do nothing. Only show what will be done.

Example: batch_encode --source filename.vob --dest ~/movies
Example: batch_encode --source /path/to/vobs --dest ~/movies

Some basic error catching:

gdanko@shuttle:~$ batch_encode.php --source /data/encoder/batch/ --dest /usr
Error. Destination is either non-existent or not writable.

gdanko@shuttle:~$ batch_encode.php --source /data/encoder/batch/ --dest /dgdgdfg
Error. Destination is either non-existent or not writable.

gdanko@shuttle:~$ batch_encode.php --source --dest /home/gdanko/
Error: The "--source" option requires a value.

Here's a dry run:

gdanko@shuttle:~$ /usr/local/bin/batch_encode.php --source /data/encoder/batch/Baby_Neptune1.vob --dest /data/encoder/batch/ --dryrun
[DRYRUN] mencoder "/data/encoder/batch/Baby_Neptune1.vob" -ffourcc DX50 -oac lavc -ovc lavc -lavcopts mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:acodec=ac3:abitrate=192:vcodec=mpeg4:autoaspect:vbitrate=1200:vpass=1 -vf pp=ci -o "/data/encoder/batch/Baby_Neptune1.divx"
[DRYRUN] mencoder "/data/encoder/batch/Baby_Neptune1.vob" -ffourcc DX50 -oac lavc -ovc lavc -lavcopts mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:acodec=ac3:abitrate=192:vcodec=mpeg4:autoaspect:vbitrate=1200:vpass=2 -vf pp=ci -o "/data/encoder/batch/Baby_Neptune1.divx"

Here's a dry run with debug info:

gdanko@shuttle:~$ /usr/local/bin/batch_encode.php --source /data/encoder/batch/Baby_Neptune1.vob --dest /data/encoder/batch/ --dryrun --debug
[DEBUG] Command Line Options
Array
(
    [0] => /usr/local/bin/batch_encode.php
    [1] => --source
    [2] => /data/encoder/batch/Baby_Neptune1.vob
    [3] => --dest
    [4] => /data/encoder/batch/
    [5] => --dryrun
    [6] => --debug
)

[DEBUG] Source: /data/encoder/batch/Baby_Neptune1.vob
[DEBUG] Destination: /data/encoder/batch

[DEBUG] Adding "/data/encoder/batch/Baby_Neptune1.vob" to the array
[DEBUG] File type:  MPEG sequence, v2, program multiplex

[DEBUG] Source List
Array
(
    [0] => /data/encoder/batch/Baby_Neptune1.vob
)

[DEBUG] Path Parts
Array
(
    [dirname] => /data/encoder/batch
    [basename] => Baby_Neptune1.vob
    [extension] => vob
    [filename] => Baby_Neptune1
)
[DEBUG] Input: Baby_Neptune1.vob
[DEBUG] Output: Baby_Neptune1.divx

[DRYRUN] mencoder "/data/encoder/batch/Baby_Neptune1.vob" -ffourcc DX50 -oac lavc -ovc lavc -lavcopts mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:acodec=ac3:abitrate=192:vcodec=mpeg4:autoaspect:vbitrate=1200:vpass=1 -vf pp=ci -o "/data/encoder/batch/Baby_Neptune1.divx"
[DRYRUN] mencoder "/data/encoder/batch/Baby_Neptune1.vob" -ffourcc DX50 -oac lavc -ovc lavc -lavcopts mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:acodec=ac3:abitrate=192:vcodec=mpeg4:autoaspect:vbitrate=1200:vpass=2 -vf pp=ci -o "/data/encoder/batch/Baby_Neptune1.divx"