[MEncoder-users] new doom9 codec comparission (submission)

Corey Hickey bugfood-ml at fatooh.org
Fri Dec 9 21:35:29 CET 2005


Hello,

After much testing and deliberation, I present to you the best encoding
and decoding options I can come up with at this time. Please let me know
if you have any trouble; I'll try to stay in contact as much as possible
via email.


Part 1: general

The mencoder binaries you usually use will suffice:
http://www.aziendeassociate.it/cd.asp?dir=/mplayer

I have tested with what is currently the latest build, dated 2005-11-23.

For playback, use ffdshow. I have tested with this build:
http://cutka.szm.sk/ffdshow-20051129.exe

Media Player Classic build 6487 works for me:
http://prdownloads.sourceforge.net/guliverkli/mpc2kxp6487.7z?download

I notice that in the faq for your 2004 comparison, you specify that
noise added in postprocessing is disallowed. Please let me know if that
is not still the case; I can provide parameters for adding a bit of
noise that slightly improves perceptual quality.

The video bitrates in the following commands are based on the email you
sent me earlier; feel free to tweak them as needed to suit whichever
container you mux into.


Part 2: FFmpeg MPEG-4

This set of options to mencoder are tuned for quality, not speed, in
almost every way. The only quality-oriented option left out is qns=2;
this has a noticeable effect, but most of the benefits are concealed by
postprocessing and in this case it isn't worth the drop in performance.

I suspect you will want to use your MeGUI frontend, so I'll just give
you a relatively compact unix-style command that you can translate
easily. Or, if you prefer, scroll down to part 4 to see a separate
command for each pass.

---
for i in vpass=1:turbo vpass=2 ; do
  mencoder matrix.vob -aid 128 -oac copy \
-vf crop=718:356:0:60,scale=640:272 -sws 9 -ovc lavc \
-lavcopts vcodec=mpeg4:vbitrate=581:mbd=2:mv0:trell:cbp:\
precmp=2:cmp=2:subcmp=2:predia=2:dia=2:preme=2:v4mv:\
last_pred=2:vqcomp=0.6:vmax_b_frames=2:qpel:$i \
-ofps 24000/1001 -o mpeg4.avi
done
---

The only difference between the first and second pass (besides vpass, of
course) is that the first pass uses turbo.

For playback, I suggest using ffdshow's "mplayer" processing method with
"Accurate deblocking" enabled. Leave processing strength at the default.


Part 3: FFmpeg snow

Snow has a lot fewer options to tweak, at this point. All these options
for snow are tuned for quality. See part 4 for a separated set of commands.

---
for i in vpass=1:vqscale=2.15 vpass=2:vbitrate=581 ; do
  mencoder matrix.vob -aid 128 -oac copy \
-vf crop=718:356:0:60,scale=640:272 -sws 9 -ovc lavc \
-lavcopts vcodec=snow:vstrict=-2:cmp=1:subcmp=1:mbcmp=1:\
qpel:vqcomp=0.6:$i -ofps 24000/1001 -o snow.avi
done
---

The first pass is done with a constant quantizer that approximates the
bitrate used in the second pass.

For playback, no postprocessing is needed.

I haven't had any success with getting Media Player Classic to play
MP4Box-muxed MP4 files with snow video. In the event your favorite AVI
muxer doesn't understand snow either, you can use the following mencoder
command:

mencoder snow.avi -audiofile audio.mp3 -mc 0 -noskip \
-ovc copy -oac copy -o snow-final.avi

Again, feel free to adjust the bitrate of the second pass to suit the
container. You don't need to mess with vqscale for such small adjustments.


Part 4: separated commands

Just in case these are easier for you to interpret. My mail program is
going to break them up into several lines, so put everything between the
"---"s together.

MPEG-4 pass 1:
---
mencoder matrix.vob -aid 128 -oac copy -vf
crop=718:356:0:60,scale=640:272 -sws 9 -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=581:mbd=2:mv0:trell:cbp:precmp=2:cmp=2:subcmp=2:predia=2:dia=2:preme=2:v4mv:last_pred=2:vqcomp=0.6:vmax_b_frames=2:qpel:vpass=1:turbo
-ofps 24000/1001 -o mpeg4.avi
---

MPEG-4 pass 2:
---
mencoder matrix.vob -aid 128 -oac copy -vf
crop=718:356:0:60,scale=640:272 -sws 9 -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=581:mbd=2:mv0:trell:cbp:precmp=2:cmp=2:subcmp=2:predia=2:dia=2:preme=2:v4mv:last_pred=2:vqcomp=0.6:vmax_b_frames=2:qpel:vpass=2
-ofps 24000/1001 -o mpeg4.avi
---

snow pass 1:
---
mencoder matrix.vob -aid 128 -oac copy -vf
crop=718:356:0:60,scale=640:272 -sws 9 -ovc lavc -lavcopts
vcodec=snow:vstrict=-2:cmp=1:subcmp=1:mbcmp=1:qpel:vqcomp=0.6:vpass=1:vqscale=2.15
-ofps 24000/1001 -o snow.avi
---

snow pass 2:
---
mencoder matrix.vob -aid 128 -oac copy -vf
crop=718:356:0:60,scale=640:272 -sws 9 -ovc lavc -lavcopts
vcodec=snow:vstrict=-2:cmp=1:subcmp=1:mbcmp=1:qpel:vqcomp=0.6:vpass=2:vbitrate=581
-ofps 24000/1001 -o snow.avi
---


Part 5: thanks

The following people helped me out on the MPlayer mailing lists:
Michael Niedermayer
Dominik 'Rathann' Mierzejewski
Guillaume POIRIER
Rich Felker
Hans-Carl Oberdalhoff
Martin Collins
Matthias Wieser
Jan Knutar
RC
Stefan Gürtler
Vladimir Mosgalin

Also, many thanks are due to all the MPlayer and FFmpeg authors,
especially Michael Niedermayer, who wrote a large portion of the
encoding parts of both programs and fixed a few bugs I threw at him in
the course of this evaluation.

-Corey Hickey




More information about the MEncoder-users mailing list