[MPlayer-DOCS] [PATCH] Choosing the video codec
Guillaume Poirier
docmaintainerwannabe at laposte.net
Mon Dec 26 15:30:22 CET 2005
Hello folks!
Here is a new section that I plan to add to MEncoder's doc that
addresses one of the FAQ on the ML.
Please have a look, give some feedbacks and fix if I'm being unclear
Guillaume
<sect2 id="menc-feat-dvd-mpeg4-codec">
<title>Choosing the video codec</title>
<para>
Choosing the video codec to use depends on several factors, some of
which widely depends on personal tastes and technical constraints.
</para>
<itemizedlist>
<listitem><para>
<emphasis role="bold">Compression efficiency</emphasis>:
It's quite easy to understand that newer generation of codecs are made
to yield better picture quality than previous generations.
Therefore, you can't be wrong choosing MPEG-4 AVC codecs like
<systemitem class="library">x264</systemitem> instead of MPEG-4 codecs
such as <systemitem class="library">libavcodec</systemitem> or
<systemitem class="library">XviD</systemitem>
(To get a better grasp of what are the fundamental differences between
MPEG-4 ASP and MPEG-4 AVC, you should definitely read the entry
"<ulink url="http://guru.multimedia.cx/?p=10">15 reasons why MPEG4
sucks</ulink>"
of Michael Niedermayer's blog).
Likewise, you should get better quality using MPEG-4 ASP instead
of MPEG-2 codecs.
<para>
However, newer codecs which are in heavy development can suffer from
some bugs which have not been spotted at the time you used that codec,
ruining your video encode. That's unfortunately sometimes the price to
pay for bleeding edge technologies.
</para>
<para>
What's more, newer codecs means in general that you'd need some training
time to get used to their set of options so that you know what to tune
depending on what kind of picture quality you're after.
</para>
</para></listitem>
<listitem><para>
<emphasis role="bold">Hardware compatibility</emphasis>:
Standalone video players are usually quite behind what is going on
in video codec.
That means that much only MPEG-2 and MPEG-4 ASP supported
(beware: usually, not all MPEG-4 ASP features are supported).
Please refer to the technical specs of your player for more informations.
</para></listitem>
<listitem><para>
<emphasis role="bold">Best quality per fps</emphasis>:
Codecs that have been around for some times (such as
<systemitem class="library">libavcodec</systemitem> and
<systemitem class="library">XviD</systemitem>) are usually heavily
optimized using all kinds of smart algorithm and SIMD assembly code.
That's why they tend to yield the best quality per fps.
However, they may have some very advanced options that, if enabled,
will make the encode really slow for marginal gains.
</para>
<para>
If your are after blazing speed you should stick around the default
settings of the video codec (which doesn't mean you should not play
around with some of the options which are told about in other sections
of this guide).
</para>
<para>
You may also consider choosing a codec that can do multi-threaded
processing.
<systemitem class="library">libavcodec</systemitem> does allow that,
but at the price of picture quality for some low speed gains.
<systemitem class="library">XviD</systemitem> has some experimental
patches available to boost encoding speed by about 50-60% in typical
cases with low picture degradation.
<systemitem class="library">x264</systemitem> also allows multi-threaded
encoding, which currently speeds-up encoding by 30-35% while lowering
PSNR by about 0.05dB.
</para></listitem>
<listitem><para>
<emphasis role="bold">Personal tastes</emphasis>:
This is were it gets almost irrational: For the same reason that some
hanged on to DivX3 for years when newer codecs were already doing wonders,
some folks will prefer <systemitem class="library">libavcodec</systemitem>
over <systemitem class="library">XviD</systemitem> or
<systemitem class="library">x264</systemitem>.
<para>
Make your own judgment, and don't always listen to what some people will
tell you to do or think: the best codec is the one you master the best,
and the one that looks better to your eyes!
</para>
</para></listitem>
</itemizedlist>
Please refer to the section
<link linkend="menc-feat-selecting-codec">selecting codecs and
container formats</link>
to get a list of supported codecs.
</para>
</sect2>
More information about the MPlayer-DOCS
mailing list