aboutsummaryrefslogtreecommitdiffhomepage
path: root/DOCS/xml/en/encoding-guide.xml
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS/xml/en/encoding-guide.xml')
-rw-r--r--DOCS/xml/en/encoding-guide.xml5545
1 files changed, 1 insertions, 5544 deletions
diff --git a/DOCS/xml/en/encoding-guide.xml b/DOCS/xml/en/encoding-guide.xml
index 9309df9df7..d458f31b1c 100644
--- a/DOCS/xml/en/encoding-guide.xml
+++ b/DOCS/xml/en/encoding-guide.xml
@@ -3,5550 +3,7 @@
<chapter id="encoding-guide">
<title>Encoding with <application>MEncoder</application></title>
-<sect1 id="menc-feat-dvd-mpeg4">
-<title>Making a high quality MPEG-4 ("DivX")
- rip of a DVD movie</title>
-
-<para>
-One frequently asked question is "How do I make the highest quality rip
-for a given size?". Another question is "How do I make the highest
-quality DVD rip possible? I do not care about file size, I just want the best
-quality."
-</para>
-
-<para>
-The latter question is perhaps at least somewhat wrongly posed. After all, if
-you do not care about file size, why not simply copy the entire MPEG-2 video
-stream from the the DVD? Sure, your AVI will end up being 5GB, give
-or take, but if you want the best quality and do not care about size,
-this is certainly your best option.
-</para>
-
-<para>
-In fact, the reason you want to transcode a DVD into MPEG-4 is
-specifically because you <emphasis role="bold">do</emphasis> care about
-file size.
-</para>
-
-<para>
-It is difficult to offer a cookbook recipe on how to create a very high
-quality DVD rip. There are several factors to consider, and you should
-understand these details or else you are likely to end up disappointed
-with your results. Below we will investigate some of these issues, and
-then have a look at an example. We assume you are using
-<systemitem class="library">libavcodec</systemitem> to encode the video,
-although the theory applies to other codecs as well.
-</para>
-
-<para>
-If this seems to be too much for you, you should probably use one of the
-many fine frontends that are listed in the
-<ulink url="http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends">MEncoder section</ulink>
-of our related projects page.
-That way, you should be able to achieve high quality rips without too much
-thinking, because most of those tools are designed to take clever decisions
-for you.
-</para>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-preparing-encode">
-<title>Preparing to encode: Identifying source material and framerate</title>
-
-<para>
-Before you even think about encoding a movie, you need to take
-several preliminary steps.
-</para>
-
-<para>
-The first and most important step before you encode should be
-determining what type of content you are dealing with.
-If your source material comes from DVD or broadcast/cable/satellite
-TV, it will be stored in one of two formats: NTSC for North
-America and Japan, PAL for Europe, etc.
-It is important to realize, however, that this is just the formatting for
-presentation on a television, and often does
-<emphasis role="bold">not</emphasis> correspond to the
-original format of the movie.
-Experience shows that NTSC material is a lot more difficult to encode,
-because there more elements to identify in the source.
-In order to produce a suitable encode, you need to know the original
-format.
-Failure to take this into account will result in various flaws in your
-encode, including ugly combing (interlacing) artifacts and duplicated
-or even lost frames.
-Besides being ugly, the artifacts also harm coding efficiency:
-You will get worse quality per unit bitrate.
-</para>
-
-
-<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps">
-<title>Identifying source framerate</title>
-
-<para>
-Here is a list of common types of source material, where you are
-likely to find them, and their properties:
-</para>
-
-<itemizedlist>
-<listitem><para>
- <emphasis role="bold">Standard Film</emphasis>: Produced for
- theatrical display at 24fps.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">PAL video</emphasis>: Recorded with a PAL
- video camera at 50 fields per second.
- A field consists of just the odd- or even-numbered lines of a
- frame.
- Television was designed to refresh these in alternation as a
- cheap form of analog compression.
- The human eye supposedly compensates for this, but once you
- understand interlacing you will learn to see it on TV too and
- never enjoy TV again.
- Two fields do <emphasis role="bold">not</emphasis> make a
- complete frame, because they are captured 1/50 of a second apart
- in time, and thus they do not line up unless there is no motion.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">NTSC Video</emphasis>: Recorded with an
- NTSC video camera at 60000/1001 fields per second, or 60 fields per
- second in the pre-color era.
- Otherwise similar to PAL.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Animation</emphasis>: Usually drawn at
- 24fps, but also comes in mixed-framerate varieties.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Computer Graphics (CG)</emphasis>: Can be
- any framerate, but some are more common than others; 24 and
- 30 frames per second are typical for NTSC, and 25fps is typical
- for PAL.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Old Film</emphasis>: Various lower
- framerates.
-</para></listitem>
-</itemizedlist>
-</sect3>
-
-
-<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material">
-<title>Identifying source material</title>
-
-<para>
-Movies consisting of frames are referred to as progressive,
-while those consisting of independent fields are called
-either interlaced or video - though this latter term is
-ambiguous.
-</para>
-
-<para>
-To further complicate matters, some movies will be a mix of
-several of the above.
-</para>
-
-<para>
-The most important distinction to make between all of these
-formats is that some are frame-based, while others are
-field-based.
-<emphasis role="bold">Whenever</emphasis> a movie is prepared
-for display on television (including DVD), it is converted to a
-field-based format.
-The various methods by which this can be done are collectively
-referred to as "telecine", of which the infamous NTSC
-"3:2 pulldown" is one variety.
-Unless the original material was also field-based (and the same
-fieldrate), you are getting the movie in a format other than the
-original.
-</para>
-
-<itemizedlist>
-<title>There are several common types of pulldown:</title>
-<listitem><para>
- <emphasis role="bold">PAL 2:2 pulldown</emphasis>: The nicest of
- them all.
- Each frame is shown for the duration of two fields, by extracting the
- even and odd lines and showing them in alternation.
- If the original material is 24fps, this process speeds up the
- movie by 4%.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown</emphasis>:
- Every 12th frame is shown for the duration of three fields, instead of
- just two.
- This avoids the 4% speedup issue, but makes the process much
- more difficult to reverse.
- It is usually seen in musical productions where adjusting the
- speed by 4% would seriously damage the musical score.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Frames are
- shown alternately for the duration of 3 fields or 2 fields.
- This gives a fieldrate 2.5 times the original framerate.
- The result is also slowed down very slightly from 60 fields per
- second to 60000/1001 fields per second to maintain NTSC fieldrate.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Used for
- showing 30fps material on NTSC.
- Nice, just like 2:2 PAL pulldown.
-</para></listitem>
-</itemizedlist>
-
-<para>
-There are also methods for converting between NTSC and PAL video,
-but such topics are beyond the scope of this guide.
-If you encounter such a movie and want to encode it, your best
-bet is to find a copy in the original format.
-Conversion between these two formats is highly destructive and
-cannot be reversed cleanly, so your encode will greatly suffer
-if it is made from a converted source.
-</para>
-
-<para>
-When video is stored on DVD, consecutive pairs of fields are
-grouped as a frame, even though they are not intended to be shown
-at the same moment in time.
-The MPEG-2 standard used on DVD and digital TV provides a
-way both to encode the original progressive frames and to store
-the number of fields for which a frame should be shown in the
-header of that frame.
-If this method has been used, the movie will often be described
-as "soft-telecined", since the process only directs the
-DVD player to apply pulldown to the movie rather than altering
-the movie itself.
-This case is highly preferable since it can easily be reversed
-(actually ignored) by the encoder, and since it preserves maximal
-quality.
-However, many DVD and broadcast production studios do not use
-proper encoding techniques but instead produce movies with
-"hard telecine", where fields are actually duplicated in the
-encoded MPEG-2.
-</para>
-
-<para>
-The procedures for dealing with these cases will be covered
-<link linkend="menc-feat-telecine">later in this guide</link>.
-For now, we leave you with some guides to identifying which type
-of material you are dealing with:
-</para>
-
-<itemizedlist>
-<title>NTSC regions:</title>
-<listitem><para>
- If <application>MPlayer</application> prints that the framerate
- has changed to 24000/1001 when watching your movie, and never changes
- back, it is almost certainly progressive content that has been
- "soft telecined".
-</para></listitem>
-<listitem><para>
- If <application>MPlayer</application> shows the framerate
- switching back and forth between 24000/1001 and 30000/1001, and you see
- "combing" at times, then there are several possibilities.
- The 24000/1001 fps segments are almost certainly progressive
- content, "soft telecined", but the 30000/1001 fps parts could be
- either hard-telecined 24000/1001 fps content or 60000/1001 fields per second
- NTSC video.
- Use the same guidelines as the following two cases to determine which.
-</para></listitem>
-<listitem><para>
- If <application>MPlayer</application> never shows the framerate
- changing, and every single frame with motion appears combed, your
- movie is NTSC video at 60000/1001 fields per second.
-</para></listitem>
-<listitem><para>
- If <application>MPlayer</application> never shows the framerate
- changing, and two frames out of every five appear combed, your
- movie is "hard telecined" 24000/1001fps content.
-</para></listitem>
-</itemizedlist>
-
-<itemizedlist>
-<title>PAL regions:</title>
-<listitem><para>
- If you never see any combing, your movie is 2:2 pulldown.
-</para></listitem>
-<listitem><para>
- If you see combing alternating in and out every half second,
- then your movie is 2:2:2:2:2:2:2:2:2:2:2:3 pulldown.
-</para></listitem>
-<listitem><para>
- If you always see combing during motion, then your movie is PAL
- video at 50 fields per second.
-</para></listitem>
-</itemizedlist>
-
-<note><title>Hint:</title>
-<para>
- <application>MPlayer</application> can slow down movie playback
- with the -speed option or play it frame-by-frame.
- Try using <option>-speed</option> 0.2 to watch the movie very
- slowly or press the "<keycap>.</keycap>" key repeatedly to play one frame at
- a time and identify the pattern, if you cannot see it at full speed.
-</para>
-</note>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-2pass">
-<title>Constant quantizer vs. multipass</title>
-
-<para>
-It is possible to encode your movie at a wide range of qualities.
-With modern video encoders and a bit of pre-codec compression
-(downscaling and denoising), it is possible to achieve very good
-quality at 700 MB, for a 90-110 minute widescreen movie.
-Furthermore, all but the longest movies can be encoded with near-perfect
-quality at 1400 MB.
-</para>
-
-<para>
-There are three approaches to encoding the video: constant bitrate
-(CBR), constant quantizer, and multipass (ABR, or average bitrate).
-</para>
-
-<para>
-The complexity of the frames of a movie, and thus the number of bits
-required to compress them, can vary greatly from one scene to another.
-Modern video encoders can adjust to these needs as they go and vary
-the bitrate.
-In simple modes such as CBR, however, the encoders do not know the
-bitrate needs of future scenes and so cannot exceed the requested
-average bitrate for long stretches of time.
-More advanced modes, such as multipass encode, can take into account
-the statistics from previous passes; this fixes the problem mentioned
-above.
-</para>
-
-<note><title>Note:</title>
-<para>
-Most codecs which support ABR encode only support two pass encode
-while some others such as <systemitem class="library">x264</systemitem>,
-<systemitem class="library">Xvid</systemitem>
-and <systemitem class="library">libavcodec</systemitem> support
-multipass, which slightly improves quality at each pass,
-yet this improvement is no longer measurable nor noticeable after the
-4th or so pass.
-Therefore, in this section, two pass and multipass will be used
-interchangeably.
-</para>
-</note>
-
-<para>
-In each of these modes, the video codec (such as
-<systemitem class="library">libavcodec</systemitem>)
-breaks the video frame into 16x16 pixel macroblocks and then applies a
-quantizer to each macroblock. The lower the quantizer, the better the
-quality and higher the bitrate.
-The method the movie encoder uses to determine
-which quantizer to use for a given macroblock varies and is highly
-tunable. (This is an extreme over-simplification of the actual
-process, but the basic concept is useful to understand.)
-</para>
-
-<para>
-When you specify a constant bitrate, the video codec will encode the video,
-discarding
-detail as much as necessary and as little as possible in order to remain
-lower than the given bitrate. If you truly do not care about file size,
-you could as well use CBR and specify a bitrate of infinity. (In
-practice, this means a value high enough so that it poses no limit, like
-10000Kbit.) With no real restriction on bitrate, the result is that
-the codec will use the lowest
-possible quantizer for each macroblock (as specified by
-<option>vqmin</option> for
-<systemitem class="library">libavcodec</systemitem>, which is 2 by default).
-As soon as you specify a
-low enough bitrate that the codec
-is forced to use a higher quantizer, then you are almost certainly ruining
-the quality of your video.
-In order to avoid that, you should probably downscale your video, according
-to the method described later on in this guide.
-In general, you should avoid CBR altogether if you care about quality.
-</para>
-
-<para>
-With constant quantizer, the codec uses the same quantizer, as
-specified by the <option>vqscale</option> option (for
-<systemitem class="library">libavcodec</systemitem>), on every macroblock.
-If you want the highest quality rip possible, again ignoring bitrate,
-you can use <option>vqscale=2</option>.
-This will yield the same bitrate and PSNR (peak signal-to-noise ratio)
-as CBR with
-<option>vbitrate</option>=infinity and the default <option>vqmin</option>
-of 2.
-</para>
-
-<para>
-The problem with constant quantizing is that it uses the given quantizer
-whether the macroblock needs it or not. That is, it might be possible
-to use a higher quantizer on a macroblock without sacrificing visual
-quality. Why waste the bits on an unnecessarily low quantizer? Your
-CPU has as many cycles as there is time, but there is only so many bits
-on your hard disk.
-</para>
-
-<para>
-With a two pass encode, the first pass will rip the movie as though it
-were CBR, but it will keep a log of properties for each frame. This
-data is then used during the second pass in order to make intelligent
-decisions about which quantizers to use. During fast action or high
-detail scenes, higher quantizers will likely be used, and during
-slow moving or low detail scenes, lower quantizers will be used.
-Normally, the amount of motion is much more important than the
-amount of detail.
-</para>
-
-<para>
-If you use <option>vqscale=2</option>, then you are wasting bits. If you
-use <option>vqscale=3</option>, then you are not getting the highest
-quality rip. Suppose you rip a DVD at <option>vqscale=3</option>, and
-the result is 1800Kbit. If you do a two pass encode with
-<option>vbitrate=1800</option>, the resulting video will have
-<emphasis role="bold">higher quality</emphasis> for the
-<emphasis role="bold">same bitrate</emphasis>.
-</para>
-
-<para>
-Since you are now convinced that two pass is the way to go, the real
-question now is what bitrate to use? The answer is that there is no
-single answer. Ideally you want to choose a bitrate that yields the
-best balance between quality and file size. This is going to vary
-depending on the source video.
-</para>
-
-<para>
-If size does not matter, a good starting point for a very high quality
-rip is about 2000Kbit plus or minus 200Kbit.
-For fast action or high detail source video, or if you just have a very
-critical eye, you might decide on 2400 or 2600.
-For some DVDs, you might not notice a difference at 1400Kbit. It is a
-good idea to experiment with scenes at different bitrates to get a feel.
-</para>
-
-<para>
-If you aim at a certain size, you will have to somehow calculate the bitrate.
-But before that, you need to know how much space you should reserve for the
-audio track(s), so you should
-<link linkend="menc-feat-dvd-mpeg4-audio">rip those</link> first.
-You can compute the bitrate with the following equation:
-<systemitem>bitrate = (target_size_in_Mbytes - sound_size_in_Mbytes) *
-1024 * 1024 / length_in_secs * 8 / 1000</systemitem>
-For instance, to squeeze a two-hour movie onto a 702MB CD, with 60MB
-of audio track, the video bitrate will have to be:
-<systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000
-= 740kbps</systemitem>
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-constraints">
-<title>Constraints for efficient encoding</title>
-
-<para>
-Due to the nature of MPEG-type compression, there are various
-constraints you should follow for maximal quality.
-MPEG splits the video up into 16x16 squares called macroblocks,
-each composed of 4 8x8 blocks of luma (intensity) information and two
-half-resolution 8x8 chroma (color) blocks (one for red-cyan axis and
-the other for the blue-yellow axis).
-Even if your movie width and height are not multiples of 16, the
-encoder will use enough 16x16 macroblocks to cover the whole picture
-area, and the extra space will go to waste.
-So in the interests of maximizing quality at a fixed file size, it is
-a bad idea to use dimensions that are not multiples of 16.
-</para>
-
-<para>
-Most DVDs also have some degree of black borders at the edges. Leaving
-these in place will hurt quality <emphasis role="bold">a lot</emphasis>
-in several ways.
-</para>
-
-<orderedlist>
-<listitem>
- <para>
- MPEG-type compression is highly dependent on frequency domain
- transformations, in particular the Discrete Cosine Transform (DCT),
- which is similar to the Fourier transform. This sort of encoding is
- efficient for representing patterns and smooth transitions, but it
- has a hard time with sharp edges. In order to encode them it must
- use many more bits, or else an artifact known as ringing will
- appear.
- </para>
-
- <para>
- The frequency transform (DCT) takes place separately on each
- macroblock (actually each block), so this problem only applies when
- the sharp edge is inside a block. If your black borders begin
- exactly at multiple-of-16 pixel boundaries, this is not a problem.
- However, the black borders on DVDs rarely come nicely aligned, so
- in practice you will always need to crop to avoid this penalty.
- </para>
-</listitem>
-</orderedlist>
-
-<para>
-In addition to frequency domain transforms, MPEG-type compression uses
-motion vectors to represent the change from one frame to the next.
-Motion vectors naturally work much less efficiently for new content
-coming in from the edges of the picture, because it is not present in
-the previous frame. As long as the picture extends all the way to the
-edge of the encoded region, motion vectors have no problem with
-content moving out the edges of the picture. However, in the presence
-of black borders, there can be trouble:
-</para>
-
-<orderedlist continuation="continues">
-<listitem>
- <para>
- For each macroblock, MPEG-type compression stores a vector
- identifying which part of the previous frame should be copied into
- this macroblock as a base for predicting the next frame. Only the
- remaining differences need to be encoded. If a macroblock spans the
- edge of the picture and contains part of the black border, then
- motion vectors from other parts of the picture will overwrite the
- black border. This means that lots of bits must be spent either
- re-blackening the border that was overwritten, or (more likely) a
- motion vector will not be used at all and all the changes in this
- macroblock will have to be coded explicitly. Either way, encoding
- efficiency is greatly reduced.
- </para>
-
- <para>
- Again, this problem only applies if black borders do not line up on
- multiple-of-16 boundaries.
- </para>
-</listitem>
-
-<listitem>
- <para>
- Finally, suppose we have a macroblock in the interior of the
- picture, and an object is moving into this block from near the edge
- of the image. MPEG-type coding cannot say "copy the part that is
- inside the picture but not the black border." So the black border
- will get copied inside too, and lots of bits will have to be spent
- encoding the part of the picture that is supposed to be there.
- </para>
-
- <para>
- If the picture runs all the way to the edge of the encoded area,
- MPEG has special optimizations to repeatedly copy the pixels at the
- edge of the picture when a motion vector comes from outside the
- encoded area. This feature becomes useless when the movie has black
- borders. Unlike problems 1 and 2, aligning the borders at multiples
- of 16 does not help here.
- </para>
-</listitem>
-
-<listitem><para>
- Despite the borders being entirely black and never changing, there
- is at least a minimal amount of overhead involved in having more
- macroblocks.
-</para></listitem>
-</orderedlist>
-
-<para>
-For all of these reasons, it is recommended to fully crop black
-borders. Further, if there is an area of noise/distortion at the edge
-of the picture, cropping this will improve encoding efficiency as
-well. Videophile purists who want to preserve the original as close as
-possible may object to this cropping, but unless you plan to encode at
-constant quantizer, the quality you gain from cropping will
-considerably exceed the amount of information lost at the edges.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-crop">
-<title>Cropping and Scaling</title>
-
-<para>
-Recall from the previous section that the final picture size you
-encode should be a multiple of 16 (in both width and height).
-This can be achieved by cropping, scaling, or a combination of both.
-</para>
-
-<para>
-When cropping, there are a few guidelines that must be followed to
-avoid damaging your movie.
-The normal YUV format, 4:2:0, stores chroma (color) information
-subsampled, i.e. chroma is only sampled half as often in each
-direction as luma (intensity) information.
-Observe this diagram, where L indicates luma sampling points and C
-chroma.
-</para>
-
-<informaltable>
-<?dbhtml table-width="40%" ?>
-<?dbfo table-width="40%" ?>
-<tgroup cols="8" align="center">
-<colspec colnum="1" colname="col1"/>
-<colspec colnum="2" colname="col2"/>
-<colspec colnum="3" colname="col3"/>
-<colspec colnum="4" colname="col4"/>
-<colspec colnum="5" colname="col5"/>
-<colspec colnum="6" colname="col6"/>
-<colspec colnum="7" colname="col7"/>
-<colspec colnum="8" colname="col8"/>
-<spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
-<spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
-<spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
-<spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
- <tbody>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- </tbody>
-</tgroup>
-</informaltable>
-
-<para>
-As you can see, rows and columns of the image naturally come in pairs.
-Thus your crop offsets and dimensions <emphasis>must</emphasis> be
-even numbers.
-If they are not, the chroma will no longer line up correctly with the
-luma.
-In theory, it is possible to crop with odd offsets, but it requires
-resampling the chroma which is potentially a lossy operation and not
-supported by the crop filter.
-</para>
-
-<para>
-Further, interlaced video is sampled as follows:
-</para>
-
-<informaltable>
-<?dbhtml table-width="80%" ?>
-<?dbfo table-width="80%" ?>
-<tgroup cols="16" align="center">
-<colspec colnum="1" colname="col1"/>
-<colspec colnum="2" colname="col2"/>
-<colspec colnum="3" colname="col3"/>
-<colspec colnum="4" colname="col4"/>
-<colspec colnum="5" colname="col5"/>
-<colspec colnum="6" colname="col6"/>
-<colspec colnum="7" colname="col7"/>
-<colspec colnum="8" colname="col8"/>
-<colspec colnum="9" colname="col9"/>
-<colspec colnum="10" colname="col10"/>
-<colspec colnum="11" colname="col11"/>
-<colspec colnum="12" colname="col12"/>
-<colspec colnum="13" colname="col13"/>
-<colspec colnum="14" colname="col14"/>
-<colspec colnum="15" colname="col15"/>
-<colspec colnum="16" colname="col16"/>
-<spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
-<spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
-<spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
-<spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
-<spanspec spanname="spa9-10" namest="col9" nameend="col10"/>
-<spanspec spanname="spa11-12" namest="col11" nameend="col12"/>
-<spanspec spanname="spa13-14" namest="col13" nameend="col14"/>
-<spanspec spanname="spa15-16" namest="col15" nameend="col16"/>
- <tbody>
- <row>
- <entry namest="col1" nameend="col8">Top field</entry>
- <entry namest="col9" nameend="col16">Bottom field</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="spa9-10">C</entry>
- <entry spanname="spa11-12">C</entry>
- <entry spanname="spa13-14">C</entry>
- <entry spanname="spa15-16">C</entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="spa9-10">C</entry>
- <entry spanname="spa11-12">C</entry>
- <entry spanname="spa13-14">C</entry>
- <entry spanname="spa15-16">C</entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- </tbody>
-</tgroup>
-</informaltable>
-
-<para>
-As you can see, the pattern does not repeat until after 4 lines.
-So for interlaced video, your y-offset and height for cropping must
-be multiples of 4.
-</para>
-
-<para>
-Native DVD resolution is 720x480 for NTSC, and 720x576 for PAL, but
-there is an aspect flag that specifies whether it is full-screen (4:3) or
-wide-screen (16:9). Many (if not most) widescreen DVDs are not strictly
-16:9, and will be either 1.85:1 or 2.35:1 (cinescope). This means that
-there will be black bands in the video that will need to be cropped out.
-</para>
-
-<para>
-<application>MPlayer</application> provides a crop detection filter that
-will determine the crop rectangle (<option>-vf cropdetect</option>).
-Run <application>MPlayer</application> with
-<option>-vf cropdetect</option> and it will print out the crop
-settings to remove the borders.
-You should let the movie run long enough that the whole picture
-area is used, in order to get accurate crop values.
-</para>
-
-<para>
-Then, test the values you get with <application>MPlayer</application>,
-using the command line which was printed by
-<option>cropdetect</option>, and adjust the rectangle as needed.
-The <option>rectangle</option> filter can help by allowing you to
-interactively position the crop rectangle over your movie.
-Remember to follow the above divisibility guidelines so that you
-do not misalign the chroma planes.
-</para>
-
-<para>
-In certain cases, scaling may be undesirable.
-Scaling in the vertical direction is difficult with interlaced
-video, and if you wish to preserve the interlacing, you should
-usually refrain from scaling.
-If you will not be scaling but you still want to use multiple-of-16
-dimensions, you will have to overcrop.
-Do not undercrop, since black borders are very bad for encoding!
-</para>
-
-<para>
-Because MPEG-4 uses 16x16 macroblocks, you will want to make sure that each
-dimension of the video you are encoding is a multiple of 16 or else you
-will be degrading quality, especially at lower bitrates. You can do this
-by rounding the width and height of the crop rectangle down to the nearest
-multiple of 16.
-As stated earlier, when cropping, you will want to increase the Y offset by
-half the difference of the old and the new height so that the resulting
-video is taken from the center of the frame. And because of the way DVD
-video is sampled, make sure the offset is an even number. (In fact, as a
-rule, never use odd values for any parameter when you are cropping and
-scaling video.) If you are not comfortable throwing a few extra pixels
-away, you might prefer to scale the video instead. We will look
-at this in our example below.
-You can actually let the <option>cropdetect</option> filter do all of the
-above for you, as it has an optional <option>round</option> parameter that
-is equal to 16 by default.
-</para>
-
-<para>
-Also, be careful about "half black" pixels at the edges. Make sure you
-crop these out too, or else you will be wasting bits there that
-are better spent elsewhere.
-</para>
-
-<para>
-After all is said and done, you will probably end up with video whose pixels
-are not quite 1.85:1 or 2.35:1, but rather something close to that. You
-could calculate the new aspect ratio manually, but
-<application>MEncoder</application> offers an option for <systemitem
-class="library">libavcodec</systemitem> called <option>autoaspect</option>
-that will do this for you. Absolutely do not scale this video up in order to
-square the pixels unless you like to waste your hard disk space. Scaling
-should be done on playback, and the player will use the aspect stored in
-the AVI to determine the correct resolution.
-Unfortunately, not all players enforce this auto-scaling information,
-therefore you may still want to rescale.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate">
-<title>Choosing resolution and bitrate</title>
-
-<para>
-If you will not be encoding in constant quantizer mode, you need to
-select a bitrate.
-The concept of bitrate is quite simple.
-It is the (average) number of bits that will be consumed to store your
-movie, per second.
-Normally bitrate is measured in kilobits (1000 bits) per second.
-The size of your movie on disk is the bitrate times the length of the
-movie in time, plus a small amount of "overhead" (see the section on
-<link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">the AVI container</link>
-for instance).
-Other parameters such as scaling, cropping, etc. will
-<emphasis role="bold">not</emphasis> alter the file size unless you
-change the bitrate as well!
-</para>
-
-<para>
-Bitrate does <emphasis role="bold">not</emphasis> scale proportionally
-to resolution.
-That is to say, a 320x240 file at 200 kbit/sec will not be the same
-quality as the same movie at 640x480 and 800 kbit/sec!
-There are two reasons for this:
-<orderedlist>
-<listitem><para>
- <emphasis role="bold">Perceptual</emphasis>: You notice MPEG
- artifacts more if they are scaled up bigger!
- Artifacts appear on the scale of blocks (8x8).
- Your eye will not see errors in 4800 small blocks as easily as it
- sees errors in 1200 large blocks (assuming you will be scaling both
- to fullscreen).
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Theoretical</emphasis>: When you scale down
- an image but still use the same size (8x8) blocks for the frequency
- space transform, you move more data to the high frequency bands.
- Roughly speaking, each pixel contains more of the detail than it
- did before.
- So even though your scaled-down picture contains 1/4 the information
- in the spacial directions, it could still contain a large portion
- of the information in the frequency domain (assuming that the high
- frequencies were underutilized in the original 640x480 image).
-</para></listitem>
-</orderedlist>
-</para>
-
-<para>
-Past guides have recommended choosing a bitrate and resolution based
-on a "bits per pixel" approach, but this is usually not valid due to
-the above reasons.
-A better estimate seems to be that bitrates scale proportional to the
-square root of resolution, so that 320x240 and 400 kbit/sec would be
-comparable to 640x480 at 800 kbit/sec.
-However this has not been verified with theoretical or empirical
-rigor.
-Further, given that movies vary greatly with regard to noise, detail,
-degree of motion, etc., it is futile to make general recommendations
-for bits per length-of-diagonal (the analog of bits per pixel,
-using the square root).
-</para>
-<para>
-So far we have discussed the difficulty of choosing a bitrate and
-resolution.
-</para>
-
-
-<sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute">
-<title>Computing the resolution</title>
-
-<para>
-The following steps will guide you in computing the resolution of your
-encode without distorting the video too much, by taking into account several
-types of information about the source video.
-First, you should compute the encoded aspect ratio:
-<systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem>
-
-<itemizedlist>
-<title>where:</title>
-<listitem><para>
- Wc and Hc are the width and height of the cropped video,
-</para></listitem>
-<listitem><para>
- ARa is the displayed aspect ratio, which usually is 4/3 or 16/9,
-</para></listitem>
-<listitem><para>
- PRdvd is the pixel ratio of the DVD which is equal to 1.25=(720/576) for PAL
- DVDs and 1.5=(720/480) for NTSC DVDs.
-</para></listitem>
-</itemizedlist>
-</para>
-
-<para>
-Then, you can compute the X and Y resolution, according to a certain
-Compression Quality (CQ) factor:
-<systemitem>ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem>
-and
-<systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem>
-</para>
-
-<para>
-Okay, but what is the CQ?
-The CQ represents the number of bits per pixel and per frame of the encode.
-Roughly speaking, the greater the CQ, the less the likelihood to see
-encoding artifacts.
-However, if you have a target size for your movie (1 or 2 CDs for instance),
-there is a limited total number of bits that you can spend; therefore it is
-necessary to find a good tradeoff between compressibility and quality.
-</para>
-
-<para>
-The CQ depends on the bitrate, the video codec efficiency and the
-movie resolution.
-In order to raise the CQ, typically you would downscale the movie given that the
-bitrate is computed in function of the target size and the length of the
-movie, which are constant.
-With MPEG-4 ASP codecs such as <systemitem class="library">Xvid</systemitem>
-and <systemitem class="library">libavcodec</systemitem>, a CQ below 0.18
-usually results in a pretty blocky picture, because there
-are not enough bits to code the information of each macroblock. (MPEG4, like
-many other codecs, groups pixels by blocks of several pixels to compress the
-image; if there are not enough bits, the edges of those blocks are
-visible.)
-It is therefore wise to take a CQ ranging from 0.20 to 0.22 for a 1 CD rip,
-and 0.26-0.28 for 2 CDs rip with standard encoding options.
-More advanced encoding options such as those listed here for
-<link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link>
-and
-<link linkend="menc-feat-xvid-example-settings"><systemitem class="library">Xvid</systemitem></link>
-should make it possible to get the same quality with CQ ranging from
-0.18 to 0.20 for a 1 CD rip, and 0.24 to 0.26 for a 2 CD rip.
-With MPEG-4 AVC codecs such as <systemitem class="library">x264</systemitem>,
-you can use a CQ ranging from 0.14 to 0.16 with standard encoding options,
-and should be able to go as low as 0.10 to 0.12 with
-<link linkend="menc-feat-x264-example-settings"><systemitem class="library">x264</systemitem>'s advanced encoding settings</link>.
-</para>
-
-<para>
-Please take note that the CQ is just an indicative figure, as depending on
-the encoded content, a CQ of 0.18 may look just fine for a Bergman, contrary
-to a movie such as The Matrix, which contains many high-motion scenes.
-On the other hand, it is worthless to raise CQ higher than 0.30 as you would
-be wasting bits without any noticeable quality gain.
-Also note that as mentioned earlier in this guide, low resolution videos
-need a bigger CQ (compared to, for instance, DVD resolution) to look good.
-</para>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-filtering">
-<title>Filtering</title>
-
-<para>
-Learning how to use <application>MEncoder</application>'s video filters
-is essential to producing good encodes.
-All video processing is performed through the filters -- cropping,
-scaling, color adjustment, noise removal, sharpening, deinterlacing,
-telecine, inverse telecine, and deblocking, just to name a few.
-Along with the vast number of supported input formats, the variety of
-filters available in <application>MEncoder</application> is one of its
-main advantages over other similar programs.
-</para>
-
-<para>
-Filters are loaded in a chain using the -vf option:
-
-<screen>-vf filter1=options,filter2=options,...</screen>
-
-Most filters take several numeric options separated by colons, but
-the syntax for options varies from filter to filter, so read the man
-page for details on the filters you wish to use.
-</para>
-
-<para>
-Filters operate on the video in the order they are loaded.
-For example, the following chain:
-
-<screen>-vf crop=688:464:12:4,scale=640:464</screen>
-
-will first crop the 688x464 region of the picture with upper-left
-corner at (12,4), and then scale the result down to 640x464.
-</para>
-
-<para>
-Certain filters need to be loaded at or near the beginning of the
-filter chain, in order to take advantage of information from the
-video decoder that will be lost or invalidated by other filters.
-The principal examples are <option>pp</option> (postprocessing, only
-when it is performing deblock or dering operations),
-<option>spp</option> (another postprocessor to remove MPEG artifacts),
-<option>pullup</option> (inverse telecine), and
-<option>softpulldown</option> (for converting soft telecine to hard telecine).
-</para>
-
-<para>
-In general, you want to do as little filtering as possible to the movie
-in order to remain close to the original DVD source. Cropping is often
-necessary (as described above), but avoid to scale the video. Although
-scaling down is sometimes preferred to using higher quantizers, we want
-to avoid both these things: remember that we decided from the start to
-trade bits for quality.
-</para>
-
-<para>
-Also, do not adjust gamma, contrast, brightness, etc. What looks good
-on your display may not look good on others. These adjustments should
-be done on playback only.
-</para>
-
-<para>
-One thing you might want to do, however, is pass the video through a
-very light denoise filter, such as <option>-vf hqdn3d=2:1:2</option>.
-Again, it is a matter of putting those bits to better use: why waste them
-encoding noise when you can just add that noise back in during playback?
-Increasing the parameters for <option>hqdn3d</option> will further
-improve compressibility, but if you increase the values too much, you
-risk degrading the image visibly. The suggested values above
-(<option>2:1:2</option>) are quite conservative; you should feel free to
-experiment with higher values and observe the results for yourself.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-interlacing">
-<title>Interlacing and Telecine</title>
-
-<para>
-Almost all movies are shot at 24 fps. Because NTSC is 30000/1001 fps, some
-processing must be done to this 24 fps video to make it run at the correct
-NTSC framerate. The process is called 3:2 pulldown, commonly referred to
-as telecine (because pulldown is often applied during the telecine
-process), and, naively described, it works by slowing the film down to
-24000/1001 fps, and repeating every fourth frame.
-</para>
-
-<para>
-No special processing, however, is done to the video for PAL DVDs, which
-run at 25 fps. (Technically, PAL can be telecined, called 2:2 pulldown,
-but this does not become an issue in practice.) The 24 fps film is simply
-played back at 25 fps. The result is that the movie runs slightly faster,
-but unless you are an alien, you probably will not notice the difference.
-Most PAL DVDs have pitch-corrected audio, so when they are played back at
-25 fps things will sound right, even though the audio track (and hence the
-whole movie) has a running time that is 4% less than NTSC DVDs.
-</para>
-
-<para>
-Because the video in a PAL DVD has not been altered, you need not worry
-much about framerate. The source is 25 fps, and your rip will be 25
-fps. However, if you are ripping an NTSC DVD movie, you may need to
-apply inverse telecine.
-</para>
-
-<para>
-For movies shot at 24 fps, the video on the NTSC DVD is either telecined
-30000/1001, or else it is progressive 24000/1001 fps and intended to be
-telecined on-the-fly by a DVD player. On the other hand, TV series are usually
-only interlaced, not telecined. This is not a hard rule: some TV series
-are interlaced (such as Buffy the Vampire Slayer) whereas some are a
-mixture of progressive and interlaced (such as Angel, or 24).
-</para>
-
-<para>
-It is highly recommended that you read the section on
-<link linkend="menc-feat-telecine">How to deal with telecine and interlacing in NTSC DVDs</link>
-to learn how to handle the different possibilities.
-</para>
-
-<para>
-However, if you are mostly just ripping movies, likely you are either
-dealing with 24 fps progressive or telecined video, in which case you can
-use the <option>pullup</option> filter <option>-vf
-pullup,softskip</option>.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced">
-<title>Encoding interlaced video</title>
-
-<para>
-If the movie you want to encode is interlaced (NTSC video or
-PAL video), you will need to choose whether you want to
-deinterlace or not.
-While deinterlacing will make your movie usable on progressive
-scan displays such a computer monitors and projectors, it comes
-at a cost: The fieldrate of 50 or 60000/1001 fields per second
-is halved to 25 or 30000/1001 frames per second, and roughly half of
-the information in your movie will be lost during scenes with
-significant motion.
-</para>
-
-<para>
-Therefore, if you are encoding for high quality archival purposes,
-it is recommended not to deinterlace.
-You can always deinterlace the movie at playback time when
-displaying it on progressive scan devices.
-The power of currently available computers forces players to use a
-deinterlacing filter, which results in a slight degradation in
-image quality.
-But future players will be able to mimic the interlaced display of
-a TV, deinterlacing to full fieldrate and interpolating 50 or
-60000/1001 entire frames per second from the interlaced video.
-</para>
-
-<para>
-Special care must be taken when working with interlaced video:
-</para>
-
-<orderedlist>
-<listitem><para>
- Crop height and y-offset must be multiples of 4.
-</para></listitem>
-<listitem><para>
- Any vertical scaling must be performed in interlaced mode.
-</para></listitem>
-<listitem><para>
- Postprocessing and denoising filters may not work as expected
- unless you take special care to operate them a field at a time,
- and they may damage the video if used incorrectly.
-</para></listitem>
-</orderedlist>
-
-<para>
-With these things in mind, here is our first example:
-<screen>
-mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \
- vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
-</screen>
-Note the <option>ilme</option> and <option>ildct</option> options.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-av-sync">
-<title>Notes on Audio/Video synchronization</title>
-
-<para>
-<application>MEncoder</application>'s audio/video synchronization
-algorithms were designed with the intention of recovering files with
-broken sync.
-However, in some cases they can cause unnecessary skipping and duplication of
-frames, and possibly slight A/V desync, when used with proper input
-(of course, A/V sync issues apply only if you process or copy the
-audio track while transcoding the video, which is strongly encouraged).
-Therefore, you may have to switch to basic A/V sync with
-the <option>-mc 0</option> option, or put this in your
-<systemitem>~/.mplayer/mencoder</systemitem> config file, as long as
-you are only working with good sources (DVD, TV capture, high quality
-MPEG-4 rips, etc) and not broken ASF/RM/MOV files.
-</para>
-
-<para>
-If you want to further guard against strange frame skips and
-duplication, you can use both <option>-mc 0</option> and
-<option>-noskip</option>.
-This will prevent <emphasis>all</emphasis> A/V sync, and copy frames
-one-to-one, so you cannot use it if you will be using any filters that
-unpredictably add or drop frames, or if your input file has variable
-framerate!
-Therefore, using <option>-noskip</option> is not in general recommended.
-</para>
-
-<para>
-The so-called "three-pass" audio encoding which
-<application>MEncoder</application> supports has been reported to cause A/V
-desync.
-This will definitely happen if it is used in conjunction with certain
-filters, therefore, it is now recommended <emphasis>not</emphasis> to
-use three-pass audio mode.
-This feature is only left for compatibility purposes and for expert
-users who understand when it is safe to use and when it is not.
-If you have never heard of three-pass mode before, forget that we
-even mentioned it!
-</para>
-
-<para>
-There have also been reports of A/V desync when encoding from stdin
-with <application>MEncoder</application>.
-Do not do this! Always use a file or CD/DVD/etc device as input.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-codec">
-<title>Choosing the video codec</title>
-
-<para>
-Which video codec is best to choose depends on several factors,
-like size, quality, streamability, usability and popularity, some of
-which widely depend on personal taste and technical constraints.
-</para>
-<itemizedlist>
-<listitem>
- <para>
- <emphasis role="bold">Compression efficiency</emphasis>:
- It is quite easy to understand that most newer-generation codecs are
- made to increase quality and compression.
- Therefore, the authors of this guide and many other people suggest that
- you cannot go wrong
- <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'><para>
- Be careful, however: Decoding DVD-resolution MPEG-4 AVC videos
- requires a fast machine (i.e. a Pentium 4 over 1.5GHz or a Pentium M
- over 1GHz).
- </para></footnote>
- when choosing MPEG-4 AVC codecs like
- <systemitem class="library">x264</systemitem> instead of MPEG-4 ASP codecs
- such as <systemitem class="library">libavcodec</systemitem> MPEG-4 or
- <systemitem class="library">Xvid</systemitem>.
- (Advanced codec developers may be interested in reading Michael
- Niedermayer's opinion on
- "<ulink url="http://guru.multimedia.cx/?p=10">why MPEG4-ASP sucks</ulink>".)
- Likewise, you should get better quality using MPEG-4 ASP than you
- would with MPEG-2 codecs.
- </para>
-
- <para>
- However, newer codecs which are in heavy development can suffer from
- bugs which have not yet been noticed and which can ruin an encode.
- This is simply the tradeoff for using bleeding-edge technology.
- </para>
-
- <para>
- What is more, beginning to use a new codec requires that you spend some
- time becoming familiar with its options, so that you know what
- to adjust to achieve a desired picture quality.
- </para>
-</listitem>
-
-<listitem><para>
- <emphasis role="bold">Hardware compatibility</emphasis>:
- It usually takes a long time for standalone video players to begin to
- include support for the latest video codecs.
- As a result, most only support MPEG-1 (like VCD, XVCD and KVCD), MPEG-2
- (like DVD, SVCD and KVCD) and MPEG-4 ASP (like DivX,
- <systemitem class="library">libavcodec</systemitem>'s LMP4 and
- <systemitem class="library">Xvid</systemitem>)
- (Beware: Usually, not all MPEG-4 ASP features are supported).
- Please refer to the technical specs of your player (if they are available),
- or google around for more information.
-</para></listitem>
-
-<listitem>
- <para>
- <emphasis role="bold">Best quality per encoding time</emphasis>:
- Codecs that have been around for some time (such as
- <systemitem class="library">libavcodec</systemitem> MPEG-4 and
- <systemitem class="library">Xvid</systemitem>) are usually heavily
- optimized with all kinds of smart algorithms and SIMD assembly code.
- That is why they tend to yield the best quality per encoding time ratio.
- However, they may have some very advanced options that, if enabled,
- will make the encode really slow for marginal gains.
- </para>
-
- <para>
- If you are after blazing speed you should stick around the default
- settings of the video codec (although you should still try the other
- options which are mentioned in other sections of this guide).
- </para>
-
- <para>
- You may also consider choosing a codec which can do multi-threaded
- processing, though this is only useful for users of machines with
- several CPUs.
- <systemitem class="library">libavcodec</systemitem> MPEG-4 does
- allow that, but speed gains are limited, and there is a slight
- negative effect on picture quality.
- <systemitem class="library">Xvid</systemitem>'s multi-threaded encoding,
- activated by the <option>threads</option> option, can be used to
- boost encoding speed &mdash; by about 40-60% in typical cases &mdash;
- with little if any picture degradation.
- <systemitem class="library">x264</systemitem> also allows multi-threaded
- encoding, which currently speeds up encoding by 94% per CPU core while
- lowering PSNR between 0.005dB and 0.01dB on a typical setup.
- </para>
-</listitem>
-
-<listitem>
- <para>
- <emphasis role="bold">Personal taste</emphasis>:
- This is where it gets almost irrational: For the same reason that some
- hung on to DivX&nbsp;3 for years when newer codecs were already doing wonders,
- some folks will prefer <systemitem class="library">Xvid</systemitem>
- or <systemitem class="library">libavcodec</systemitem> MPEG-4 over
- <systemitem class="library">x264</systemitem>.
- </para>
- <para>
- You should make your own judgement; do not take advice from people who
- swear by one codec.
- Take a few sample clips from raw sources and compare different
- encoding options and codecs to find one that suits you best.
- The best codec is the one you master, and the one that looks
- best to your eyes on your display
- <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'><para>
- The same encode may not look the same on someone else's monitor or
- when played back by a different decoder, so future-proof your encodes by
- playing them back on different setups.
- </para></footnote>!
- </para>
-</listitem>
-</itemizedlist>
-
-<para>
-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>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-audio">
-<title>Audio</title>
-
-<para>
-Audio is a much simpler problem to solve: if you care about quality, just
-leave it as is.
-Even AC-3 5.1 streams are at most 448Kbit/s, and they are worth every bit.
-You might be tempted to transcode the audio to high quality Vorbis, but
-just because you do not have an A/V receiver for AC-3 pass-through today
-does not mean you will not have one tomorrow. Future-proof your DVD rips by
-preserving the AC-3 stream.
-You can keep the AC-3 stream either by copying it directly into the video
-stream <link linkend="menc-feat-mpeg4">during the encoding</link>.
-You can also extract the AC-3 stream in order to mux it into containers such
-as NUT or Matroska.
-<screen>
-mplayer <replaceable>source_file.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>sound.ac3</replaceable>
-</screen>
-will dump into the file <replaceable>sound.ac3</replaceable> the
-audio track number 129 from the file
-<replaceable>source_file.vob</replaceable> (NB: DVD VOB files
-usually use a different audio numbering,
-which means that the VOB audio track 129 is the 2nd audio track of the file).
-</para>
-
-<para>
-But sometimes you truly have no choice but to further compress the
-sound so that more bits can be spent on the video.
-Most people choose to compress audio with either MP3 or Vorbis audio codecs.
-While the latter is a very space-efficient codec, MP3 is better supported
-by hardware players, although this trend is changing.
-</para>
-
-<para>
-Do <emphasis>not</emphasis> use <option>-nosound</option> when encoding
-a file with audio, even if you will be encoding and muxing audio
-separately later.
-Though it may work in ideal cases, using <option>-nosound</option> is
-likely to hide some problems in your encoding command line setting.
-In other words, having a soundtrack during your encode assures you that,
-provided you do not see messages such as
-<quote>Too many audio packets in the buffer</quote>, you will be able
-to get proper sync.
-</para>
-
-<para>
-You need to have <application>MEncoder</application> process the sound.
-You can for example copy the original soundtrack during the encode with
-<option>-oac copy</option> or convert it to a "light" 4 kHz mono WAV
-PCM with <option>-oac pcm -channels 1 -srate 4000</option>.
-Otherwise, in some cases, it will generate a video file that will not sync
-with the audio.
-Such cases are when the number of video frames in the source file does
-not match up to the total length of audio frames or whenever there
-are discontinuities/splices where there are missing or extra audio frames.
-The correct way to handle this kind of problem is to insert silence or
-cut audio at these points.
-However <application>MPlayer</application> cannot do that, so if you
-demux the AC-3 audio and encode it with a separate app (or dump it to PCM with
-<application>MPlayer</application>), the splices will be left incorrect
-and the only way to correct them is to drop/duplicate video frames at the
-splice.
-As long as <application>MEncoder</application> sees the audio when it is
-encoding the video, it can do this dropping/duping (which is usually OK
-since it takes place at full black/scene change), but if
-<application>MEncoder</application> cannot see the audio, it will just
-process all frames as-is and they will not fit the final audio stream when
-you for example merge your audio and video track into a Matroska file.
-</para>
-
-<para>
-First of all, you will have to convert the DVD sound into a WAV file that the
-audio codec can use as input.
-For example:
-<screen>
-mplayer <replaceable>source_file.vob</replaceable> -ao pcm:file=<replaceable>destination_sound.wav</replaceable> \
- -vc dummy -aid 1 -vo null
-</screen>
-will dump the second audio track from the file
-<replaceable>source_file.vob</replaceable> into the file
-<replaceable>destination_sound.wav</replaceable>.
-You may want to normalize the sound before encoding, as DVD audio tracks
-are commonly recorded at low volumes.
-You can use the tool <application>normalize</application> for instance,
-which is available in most distributions.
-If you are using Windows, a tool such as <application>BeSweet</application>
-can do the same job.
-You will compress in either Vorbis or MP3.
-For example:
-<screen>oggenc -q1 <replaceable>destination_sound.wav</replaceable></screen>
-will encode <replaceable>destination_sound.wav</replaceable> with
-the encoding quality 1, which is roughly equivalent to 80Kb/s, and
-is the minimum quality at which you should encode if you care about
-quality.
-Please note that <application>MEncoder</application> currently cannot
-mux Vorbis audio tracks
-into the output file because it only supports AVI and MPEG
-containers as an output, each of which may lead to audio/video
-playback synchronization problems with some players when the AVI file
-contain VBR audio streams such as Vorbis.
-Do not worry, this document will show you how you can do that with third
-party programs.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-muxing">
-<title>Muxing</title>
-
-<para>
-Now that you have encoded your video, you will most likely want
-to mux it with one or more audio tracks into a movie container, such
-as AVI, MPEG, Matroska or NUT.
-<application>MEncoder</application> is currently only able to natively output
-audio and video into MPEG and AVI container formats.
-for example:
-<screen>
-mencoder -oac copy -ovc copy -o <replaceable>output_movie.avi</replaceable> \
- -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable>
-</screen>
-This would merge the video file <replaceable>input_video.avi</replaceable>
-and the audio file <replaceable>input_audio.mp2</replaceable>
-into the AVI file <replaceable>output_movie.avi</replaceable>.
-This command works with MPEG-1 layer I, II and III (more commonly known
-as MP3) audio, WAV and a few other audio formats too.
-</para>
-
-<para>
-<application>MEncoder</application> features experimental support for
-<systemitem class="library">libavformat</systemitem>, which is a
-library from the FFmpeg project that supports muxing and demuxing
-a variety of containers.
-For example:
-<screen>
-mencoder -oac copy -ovc copy -o <replaceable>output_movie.asf</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> \
- <replaceable>input_video.avi</replaceable> -of lavf -lavfopts format=asf
-</screen>
-This will do the same thing as the previous example, except that
-the output container will be ASF.
-Please note that this support is highly experimental (but getting
-better every day), and will only work if you compiled
-<application>MPlayer</application> with the support for
-<systemitem class="library">libavformat</systemitem> enabled (which
-means that a pre-packaged binary version will not work in most cases).
-</para>
-
-
-<sect3 id="menc-feat-dvd-mpeg4-muxing-filter-issues">
-<title>Improving muxing and A/V sync reliability</title>
-
-<para>
-You may experience some serious A/V sync problems while trying to mux
-your video and some audio tracks, where no matter how you adjust the
-audio delay, you will never get proper sync.
-That may happen when you use some video filters that will drop or
-duplicate some frames, like the inverse telecine filters.
-It is strongly encouraged to append the <option>harddup</option> video
-filter at the end of the filter chain to avoid this kind of problem.
-</para>
-
-<para>
-Without <option>harddup</option>, if <application>MEncoder</application>
-wants to duplicate a frame, it relies on the muxer to put a mark on the
-container so that the last frame will be displayed again to maintain
-sync while writing no actual frame.
-With <option>harddup</option>, <application>MEncoder</application>
-will instead just push the last frame displayed again into the filter
-chain.
-This means that the encoder receives the <emphasis>exact</emphasis>
-same frame twice, and compresses it.
-This will result in a slightly bigger file, but will not cause problems
-when demuxing or remuxing into other container formats.
-</para>
-
-<para>
-You may also have no choice but to use <option>harddup</option> with
-container formats that are not too tightly linked with
-<application>MEncoder</application> such as the ones supported through
-<systemitem class="library">libavformat</systemitem>, which may not
-support frame duplication at the container level.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations">
-<title>Limitations of the AVI container</title>
-
-<para>
-Although it is the most widely-supported container format after MPEG-1,
-AVI also has some major drawbacks.
-Perhaps the most obvious is the overhead.
-For each chunk of the AVI file, 24 bytes are wasted on headers and index.
-This translates into a little over 5 MB per hour, or 1-2.5%
-overhead for a 700 MB movie. This may not seem like much, but it could
-mean the difference between being able to use 700 kbit/sec video or
-714 kbit/sec, and every bit of quality counts.
-</para>
-
-<para>
-In addition this gross inefficiency, AVI also has the following major
-limitations:
-</para>
-
-<orderedlist>
-<listitem><para>
- Only fixed-fps content can be stored. This is particularly limiting
- if the original material you want to encode is mixed content, for
- example a mix of NTSC video and film material.
- Actually there are hacks that can be used to store mixed-framerate
- content in AVI, but they increase the (already huge) overhead
- fivefold or more and so are not practical.
-</para></listitem>
-<listitem><para>
- Audio in AVI files must be either constant-bitrate (CBR) or
- constant-framesize (i.e. all frames decode to the same number of
- samples).
- Unfortunately, the most efficient codec, Vorbis, does not meet
- either of these requirements.
- Therefore, if you plan to store your movie in AVI, you will have to
- use a less efficient codec such as MP3 or AC-3.
-</para></listitem>
-</orderedlist>
-
-<para>
-Having said all that, <application>MEncoder</application> does not
-currently support variable-fps output or Vorbis encoding.
-Therefore, you may not see these as limitations if
-<application>MEncoder</application> is the
-only tool you will be using to produce your encodes.
-However, it is possible to use <application>MEncoder</application>
-only for video encoding, and then use external tools to encode
-audio and mux it into another container format.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-dvd-mpeg4-muxing-matroska">
-<title>Muxing into the Matroska container</title>
-
-<para>
-Matroska is a free, open standard container format, aiming
-to offer a lot of advanced features, which older containers
-like AVI cannot handle.
-For example, Matroska supports variable bitrate audio content
-(VBR), variable framerates (VFR), chapters, file attachments,
-error detection code (EDC) and modern A/V Codecs like "Advanced Audio
-Coding" (AAC), "Vorbis" or "MPEG-4 AVC" (H.264), next to nothing
-handled by AVI.
-</para>
-
-<para>
-The tools required to create Matroska files are collectively called
-<application>mkvtoolnix</application>, and are available for most
-Unix platforms as well as <application>Windows</application>.
-Because Matroska is an open standard you may find other
-tools that suit you better, but since mkvtoolnix is the most
-common, and is supported by the Matroska team itself, we will
-only cover its usage.
-</para>
-
-<para>
-Probably the easiest way to get started with Matroska is to use
-<application>MMG</application>, the graphical frontend shipped with
-<application>mkvtoolnix</application>, and follow the
-<ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guide to mkvmerge GUI (mmg)</ulink>
-</para>
-
-<para>
-You may also mux audio and video files using the command line:
-<screen>
-mkvmerge -o <replaceable>output.mkv</replaceable> <replaceable>input_video.avi</replaceable> <replaceable>input_audio1.mp3</replaceable> <replaceable>input_audio2.ac3</replaceable>
-</screen>
-This would merge the video file <replaceable>input_video.avi</replaceable>
-and the two audio files <replaceable>input_audio1.mp3</replaceable>
-and <replaceable>input_audio2.ac3</replaceable> into the Matroska
-file <replaceable>output.mkv</replaceable>.
-Matroska, as mentioned earlier, is able to do much more than that, like
-multiple audio tracks (including fine-tuning of audio/video
-synchronization), chapters, subtitles, splitting, etc...
-Please refer to the documentation of those applications for
-more details.
-</para>
-</sect3>
-</sect2>
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="menc-feat-telecine">
-<title>How to deal with telecine and interlacing within NTSC DVDs</title>
-
-<sect2 id="menc-feat-telecine-intro">
-<title>Introduction</title>
-
-<formalpara>
-<title>What is telecine?</title>
-<para>
-If you do not understand much of what is written in this document, read the
-<ulink url="http://en.wikipedia.org/wiki/Telecine">Wikipedia entry on telecine</ulink>.
-It is an understandable and reasonably comprehensive
-description of what telecine is.
-</para></formalpara>
-
-<formalpara>
-<title>A note about the numbers.</title>
-<para>
-Many documents, including the article linked above, refer to the fields
-per second value of NTSC video as 59.94 and the corresponding frames
-per second values as 29.97 (for telecined and interlaced) and 23.976
-(for progressive). For simplicity, some documents even round these
-numbers to 60, 30, and 24.
-</para></formalpara>
-
-<para>
-Strictly speaking, all those numbers are approximations. Black and
-white NTSC video was exactly 60 fields per second, but 60000/1001
-was later chosen to accommodate color data while remaining compatible
-with contemporary black and white televisions. Digital NTSC video
-(such as on a DVD) is also 60000/1001 fields per second. From this,
-interlaced and telecined video are derived to be 30000/1001 frames
-per second; progressive video is 24000/1001 frames per second.
-</para>
-
-<para>
-Older versions of the <application>MEncoder</application> documentation
-and many archived mailing list posts refer to 59.94, 29.97, and 23.976.
-All <application>MEncoder</application> documentation has been updated
-to use the fractional values, and you should use them too.
-</para>
-
-<para>
-<option>-ofps 23.976</option> is incorrect.
-<option>-ofps 24000/1001</option> should be used instead.
-</para>
-
-<formalpara>
-<title>How telecine is used.</title>
-<para>
-All video intended to be displayed on an NTSC
-television set must be 60000/1001 fields per second. Made-for-TV movies
-and shows are often filmed directly at 60000/1001 fields per second, but
-the majority of cinema is filmed at 24 or 24000/1001 frames per
-second. When cinematic movie DVDs are mastered, the video is then
-converted for television using a process called telecine.
-</para></formalpara>
-
-<para>
-On a DVD, the video is never actually stored as 60000/1001 fields per
-second. For video that was originally 60000/1001, each pair of fields is
-combined to form a frame, resulting in 30000/1001 frames per
-second. Hardware DVD players then read a flag embedded in the video
-stream to determine whether the odd- or even-numbered lines should
-form the first field.
-</para>
-
-<para>
-Usually, 24000/1001 frames per second content stays as it is when
-encoded for a DVD, and the DVD player must perform telecining
-on-the-fly. Sometimes, however, the video is telecined
-<emphasis>before</emphasis> being stored on the DVD; even though it
-was originally 24000/1001 frames per second, it becomes 60000/1001 fields per
-second. When it is stored on the DVD, pairs of fields are combined to form
-30000/1001 frames per second.
-</para>
-
-<para>
-When looking at individual frames formed from 60000/1001 fields per
-second video, telecined or otherwise, interlacing is clearly visible
-wherever there is any motion, because one field (say, the
-even-numbered lines) represents a moment in time 1/(60000/1001)
-seconds later than the other. Playing interlaced video on a computer
-looks ugly both because the monitor is higher resolution and because
-the video is shown frame-after-frame instead of field-after-field.
-</para>
-
-<itemizedlist>
-<title>Notes:</title>
-<listitem><para>
- This section only applies to NTSC DVDs, and not PAL.
-</para></listitem>
-<listitem><para>
- The example <application>MEncoder</application> lines throughout the
- document are <emphasis role="bold">not</emphasis> intended for
- actual use. They are simply the bare minimum required to encode the
- pertaining video category. How to make good DVD rips or fine-tune
- <systemitem class="library">libavcodec</systemitem> for maximal
- quality is not within the scope of this section; refer to other
- sections within the <link linkend="encoding-guide">MEncoder encoding
- guide</link>.
-</para></listitem>
-<listitem><para>
- There are a couple footnotes specific to this guide, linked like this:
- <link linkend="menc-feat-telecine-footnotes">[1]</link>
-</para></listitem>
-</itemizedlist>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-telecine-ident">
-<title>How to tell what type of video you have</title>
-
-<sect3 id="menc-feat-telecine-ident-progressive">
-<title>Progressive</title>
-
-<para>
-Progressive video was originally filmed at 24000/1001 fps, and stored
-on the DVD without alteration.
-</para>
-
-<para>
-When you play a progressive DVD in <application>MPlayer</application>,
-<application>MPlayer</application> will print the following line as
-soon as the movie begins to play:
-<screen>
-demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
-</screen>
-From this point forward, demux_mpg should never say it finds
-"30000/1001 fps NTSC content."
-</para>
-
-<para>
-When you watch progressive video, you should never see any
-interlacing. Beware, however, because sometimes there is a tiny bit
-of telecine mixed in where you would not expect. I have encountered TV
-show DVDs that have one second of telecine at every scene change, or
-at seemingly random places. I once watched a DVD that had a
-progressive first half, and the second half was telecined. If you
-want to be <emphasis>really</emphasis> thorough, you can scan the
-entire movie:
-<screen>mplayer dvd://1 -nosound -vo null -benchmark</screen>
-Using <option>-benchmark</option> makes
-<application>MPlayer</application> play the movie as quickly as it
-possibly can; still, depending on your hardware, it can take a
-while. Every time demux_mpg reports a framerate change, the line
-immediately above will show you the time at which the change
-occurred.
-</para>
-
-<para>
-Sometimes progressive video on DVDs is referred to as
-"soft-telecine" because it is intended to
-be telecined by the DVD player.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-ident-telecined">
-<title>Telecined</title>
-
-<para>
-Telecined video was originally filmed at 24000/1001, but was telecined
-<emphasis>before</emphasis> it was written to the DVD.
-</para>
-
-<para>
-<application>MPlayer</application> does not (ever) report any
-framerate changes when it plays telecined video.
-</para>
-
-<para>
-Watching a telecined video, you will see interlacing artifacts that
-seem to "blink": they repeatedly appear and disappear.
-You can look closely at this by
-<orderedlist>
-<listitem><screen>mplayer dvd://1</screen></listitem>
-<listitem><para>
- Seek to a part with motion.
-</para></listitem>
-<listitem><para>
- Use the <keycap>.</keycap> key to step forward one frame at a time.
-</para></listitem>
-<listitem><para>
- Look at the pattern of interlaced-looking and progressive-looking
- frames. If the pattern you see is PPPII,PPPII,PPPII,... then the
- video is telecined. If you see some other pattern, then the video
- may have been telecined using some non-standard method;
- <application>MEncoder</application> cannot losslessly convert
- non-standard telecine to progressive. If you do not see any
- pattern at all, then it is most likely interlaced.
-</para></listitem>
-</orderedlist>
-</para>
-
-<para>
-Sometimes telecined video on DVDs is referred to as
-"hard-telecine". Since hard-telecine is already 60000/1001 fields
-per second, the DVD player plays the video without any manipulation.
-</para>
-
-<para>
-Another way to tell if your source is telecined or not is to play
-the source with the <option>-vf pullup</option> and <option>-v</option>
-command line options to see how <option>pullup</option> matches frames.
-If the source is telecined, you should see on the console a 3:2 pattern
-with <systemitem>0+.1.+2</systemitem> and <systemitem>0++1</systemitem>
-alternating.
-This technique has the advantage that you do not need to watch the
-source to identify it, which could be useful if you wish to automate
-the encoding procedure, or to carry out said procedure remotely via
-a slow connection.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-ident-interlaced">
-<title>Interlaced</title>
-
-<para>
-Interlaced video was originally filmed at 60000/1001 fields per second,
-and stored on the DVD as 30000/1001 frames per second. The interlacing effect
-(often called "combing") is a result of combining pairs of
-fields into frames. Each field is supposed to be 1/(60000/1001) seconds apart,
-and when they are displayed simultaneously the difference is apparent.
-</para>
-
-<para>
-As with telecined video, <application>MPlayer</application> should
-not ever report any framerate changes when playing interlaced content.
-</para>
-
-<para>
-When you view an interlaced video closely by frame-stepping with the
-<keycap>.</keycap> key, you will see that every single frame is interlaced.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-ident-mixedpt">
-<title>Mixed progressive and telecine</title>
-
-<para>
-All of a "mixed progressive and telecine" video was originally
-24000/1001 frames per second, but some parts of it ended up being telecined.
-</para>
-
-<para>
-When <application>MPlayer</application> plays this category, it will
-(often repeatedly) switch back and forth between "30000/1001 fps NTSC"
-and "24000/1001 fps progressive NTSC". Watch the bottom of
-<application>MPlayer</application>'s output to see these messages.
-</para>
-
-<para>
-You should check the "30000/1001 fps NTSC" sections to make sure
-they are actually telecine, and not just interlaced.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-ident-mixedpi">
-<title>Mixed progressive and interlaced</title>
-
-<para>
-In "mixed progressive and interlaced" content, progressive
-and interlaced video have been spliced together.
-</para>
-
-<para>
-This category looks just like "mixed progressive and telecine",
-until you examine the 30000/1001 fps sections and see that they do not have the
-telecine pattern.
-</para>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-telecine-encode">
-<title>How to encode each category</title>
-<para>
-As I mentioned in the beginning, example <application>MEncoder</application>
-lines below are <emphasis role="bold">not</emphasis> meant to actually be used;
-they only demonstrate the minimum parameters to properly encode each category.
-</para>
-
-
-<sect3 id="menc-feat-telecine-encode-progressive">
-<title>Progressive</title>
-<para>
-Progressive video requires no special filtering to encode. The only
-parameter you need to be sure to use is <option>-ofps 24000/1001</option>.
-Otherwise, <application>MEncoder</application>
-will try to encode at 30000/1001 fps and will duplicate frames.
-</para>
-
-<para>
-<screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen>
-</para>
-
-<para>
-It is often the case, however, that a video that looks progressive
-actually has very short parts of telecine mixed in. Unless you are
-sure, it is safest to treat the video as
-<link linkend="menc-feat-telecine-encode-mixedpt">mixed progressive and telecine</link>.
-The performance loss is small
-<link linkend="menc-feat-telecine-footnotes">[3]</link>.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-encode-telecined">
-<title>Telecined</title>
-
-<para>
-Telecine can be reversed to retrieve the original 24000/1001 content,
-using a process called inverse-telecine.
-<application>MPlayer</application> contains several filters to
-accomplish this; the best filter, <option>pullup</option>, is described
-in the <link linkend="menc-feat-telecine-encode-mixedpt">mixed
-progressive and telecine</link> section.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-encode-interlaced">
-<title>Interlaced</title>
-
-<para>
-For most practical cases it is not possible to retrieve a complete
-progressive video from interlaced content. The only way to do so
-without losing half of the vertical resolution is to double the
-framerate and try to "guess" what ought to make up the
-corresponding lines for each field (this has drawbacks - see method 3).
-</para>
-
-<orderedlist>
-<listitem><para>
- Encode the video in interlaced form. Normally, interlacing wreaks
- havoc with the encoder's ability to compress well, but
- <systemitem class="library">libavcodec</systemitem> has two
- parameters specifically for dealing with storing interlaced video a
- bit better: <option>ildct</option> and <option>ilme</option>. Also,
- using <option>mbd=2</option> is strongly recommended
- <link linkend="menc-feat-telecine-footnotes">[2] </link> because it
- will encode macroblocks as non-interlaced in places where there is
- no motion. Note that <option>-ofps</option> is NOT needed here.
- <screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen>
-</para></listitem>
-<listitem><para>
- Use a deinterlacing filter before encoding. There are several of
- these filters available to choose from, each with its own advantages
- and disadvantages. Consult <option>mplayer -pphelp</option> and
- <option>mplayer -vf help</option> to see what is available
- (grep for "deint"), read Michael Niedermayer's
- <ulink url="http://guru.multimedia.cx/deinterlacing-filters/">Deinterlacing filters comparison</ulink>,
- and search the
- <ulink url="http://www.mplayerhq.hu/design7/mailing_lists.html">
- MPlayer mailing lists</ulink> to find many discussions about the
- various filters.
- Again, the framerate is not changing, so no
- <option>-ofps</option>. Also, deinterlacing should be done after
- cropping <link linkend="menc-feat-telecine-footnotes">[1]</link> and
- before scaling.
- <screen>mencoder dvd://1 -oac copy -vf yadif -ovc lavc</screen>
-</para></listitem>
-<listitem><para>
- Unfortunately, this option is buggy with
- <application>MEncoder</application>; it ought to work well with
- <application>MEncoder G2</application>, but that is not here yet. You
- might experience crashes. Anyway, the purpose of <option> -vf
- tfields</option> is to create a full frame out of each field, which
- makes the framerate 60000/1001. The advantage of this approach is that no
- data is ever lost; however, since each frame comes from only one
- field, the missing lines have to be interpolated somehow. There are
- no very good methods of generating the missing data, and so the
- result will look a bit similar to when using some deinterlacing
- filters. Generating the missing lines creates other issues, as well,
- simply because the amount of data doubles. So, higher encoding
- bitrates are required to maintain quality, and more CPU power is
- used for both encoding and decoding. tfields has several different
- options for how to create the missing lines of each frame. If you
- use this method, then Reference the manual, and chose whichever
- option looks best for your material. Note that when using
- <option>tfields</option> you
- <emphasis role="bold">have to</emphasis> specify both
- <option>-fps</option> and <option>-ofps</option> to be twice the
- framerate of your original source.
- <screen>
-mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
- -fps 60000/1001 -ofps 60000/1001<!--
- --></screen>
-</para></listitem>
-<listitem><para>
- If you plan on downscaling dramatically, you can extract and encode
- only one of the two fields. Of course, you will lose half the vertical
- resolution, but if you plan on downscaling to at most 1/2 of the
- original, the loss will not matter much. The result will be a
- progressive 30000/1001 frames per second file. The procedure is to use
- <option>-vf field</option>, then crop
- <link linkend="menc-feat-telecine-footnotes">[1]</link> and scale
- appropriately. Remember that you will have to adjust the scale to
- compensate for the vertical resolution being halved.
- <screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen>
-</para></listitem>
-</orderedlist>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-encode-mixedpt">
-<title>Mixed progressive and telecine</title>
-
-<para>
-In order to turn mixed progressive and telecine video into entirely
-progressive video, the telecined parts have to be
-inverse-telecined. There are three ways to accomplish this,
-described below. Note that you should
-<emphasis role="bold">always</emphasis> inverse-telecine before any
-rescaling; unless you really know what you are doing,
-inverse-telecine before cropping, too
-<link linkend="menc-feat-telecine-footnotes">[1]</link>.
-<option>-ofps 24000/1001</option> is needed here because the output video
-will be 24000/1001 frames per second.
-</para>
-
-<itemizedlist>
-<listitem><para>
- <option>-vf pullup</option> is designed to inverse-telecine
- telecined material while leaving progressive data alone. In order to
- work properly, <option>pullup</option> <emphasis role="bold">must</emphasis>
- be followed by the <option>softskip</option> filter or
- else <application>MEncoder</application> will crash.
- <option>pullup</option> is, however, the cleanest and most
- accurate method available for encoding both telecine and
- "mixed progressive and telecine".
- <screen>
-mencoder dvd://1 -oac copy -vf pullup,softskip
- -ovc lavc -ofps 24000/1001<!--
- --></screen>
-</para></listitem>
-<listitem><para>
- <option>-vf filmdint</option> is similar to
- <option>-vf pullup</option>: both filters attempt to match a pair of
- fields to form a complete frame. <option>filmdint</option> will
- deinterlace individual fields that it cannot match, however, whereas
- <option>pullup</option> will simply drop them. Also, the two filters
- have separate detection code, and <option>filmdint</option> may tend to match fields a
- bit less often. Which filter works better may depend on the input
- video and personal taste; feel free to experiment with fine-tuning
- the filters' options if you encounter problems with either one (see
- the man page for details). For most well-mastered input video,
- however, both filters work quite well, so either one is a safe choice
- to start with.
- <screen>
-mencoder dvd://1 -oac copy -vf filmdint -ovc lavc -ofps 24000/1001<!--
- --></screen>
-</para></listitem>
-<listitem><para>
- An older method
- is to, rather than inverse-telecine the telecined parts, telecine
- the non-telecined parts and then inverse-telecine the whole
- video. Sound confusing? softpulldown is a filter that goes through
- a video and makes the entire file telecined. If we follow
- softpulldown with either <option>detc</option> or
- <option>ivtc</option>, the final result will be entirely
- progressive. <option>-ofps 24000/1001</option> is needed.
- <screen>
-mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
- </screen>
-</para></listitem>
-
-</itemizedlist>
-</sect3>
-
-
-<sect3 id="menc-feat-telecine-encode-mixedpi">
-<title>Mixed progressive and interlaced</title>
-
-<para>
-There are two options for dealing with this category, each of
-which is a compromise. You should decide based on the
-duration/location of each type.
-</para>
-
-<itemizedlist>
-<listitem>
- <para>
- Treat it as progressive. The interlaced parts will look interlaced,
- and some of the interlaced fields will have to be dropped, resulting
- in a bit of uneven jumpiness. You can use a postprocessing filter if
- you want to, but it may slightly degrade the progressive parts.
- </para>
-
- <para>
- This option should definitely not be used if you want to eventually
- display the video on an interlaced device (with a TV card, for
- example). If you have interlaced frames in a 24000/1001 frames per
- second video, they will be telecined along with the progressive
- frames. Half of the interlaced "frames" will be displayed for three
- fields' duration (3/(60000/1001) seconds), resulting in a flicking
- "jump back in time" effect that looks quite bad. If you
- even attempt this, you <emphasis role="bold">must</emphasis> use a
- deinterlacing filter like <option>lb</option> or
- <option>l5</option>.
- </para>
-
- <para>
- It may also be a bad idea for progressive display, too. It will drop
- pairs of consecutive interlaced fields, resulting in a discontinuity
- that can be more visible than with the second method, which shows
- some progressive frames twice. 30000/1001 frames per second interlaced
- video is already a bit choppy because it really should be shown at
- 60000/1001 fields per second, so the duplicate frames do not stand out as
- much.
- </para>
-
- <para>
- Either way, it is best to consider your content and how you intend to
- display it. If your video is 90% progressive and you never intend to
- show it on a TV, you should favor a progressive approach. If it is
- only half progressive, you probably want to encode it as if it is all
- interlaced.
- </para>
-</listitem>
-
-<listitem><para>
- Treat it as interlaced. Some frames of the progressive parts will
- need to be duplicated, resulting in uneven jumpiness. Again,
- deinterlacing filters may slightly degrade the progressive parts.
-</para></listitem>
-</itemizedlist>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-telecine-footnotes">
-<title>Footnotes</title>
-
-<orderedlist>
-<listitem>
- <formalpara>
- <title>About cropping:</title>
- <para>
- Video data on DVDs are stored in a format called YUV 4:2:0. In YUV
- video, luma ("brightness") and chroma ("color")
- are stored separately. Because the human eye is somewhat less
- sensitive to color than it is to brightness, in a YUV 4:2:0 picture
- there is only one chroma pixel for every four luma pixels. In a
- progressive picture, each square of four luma pixels (two on each
- side) has one common chroma pixel. You must crop progressive YUV
- 4:2:0 to even resolutions, and use even offsets. For example,
- <option>crop=716:380:2:26</option> is OK but
- <option>crop=716:380:3:26 </option> is not.
- </para>
- </formalpara>
-
- <para>
- When you are dealing with interlaced YUV 4:2:0, the situation is a
- bit more complicated. Instead of every four luma pixels in the
- <emphasis>frame</emphasis> sharing a chroma pixel, every four luma
- pixels in each <emphasis> field</emphasis> share a chroma
- pixel. When fields are interlaced to form a frame, each scanline is
- one pixel high. Now, instead of all four luma pixels being in a
- square, there are two pixels side-by-side, and the other two pixels
- are side-by-side two scanlines down. The two luma pixels in the
- intermediate scanline are from the other field, and so share a
- different chroma pixel with two luma pixels two scanlines away. All
- this confusion makes it necessary to have vertical crop dimensions
- and offsets be multiples of four. Horizontal can stay even.
- </para>
-
- <para>
- For telecined video, I recommend that cropping take place after
- inverse telecining. Once the video is progressive you only need to
- crop by even numbers. If you really want to gain the slight speedup
- that cropping first may offer, you must crop vertically by multiples
- of four or else the inverse-telecine filter will not have proper data.
- </para>
-
- <para>
- For interlaced (not telecined) video, you must always crop
- vertically by multiples of four unless you use <option>-vf
- field</option> before cropping.
- </para>
-</listitem>
-
-<listitem><formalpara>
- <title>About encoding parameters and quality:</title>
- <para>
- Just because I recommend <option>mbd=2</option> here does not mean it
- should not be used elsewhere. Along with <option>trell</option>,
- <option>mbd=2</option> is one of the two
- <systemitem class="library">libavcodec</systemitem> options that
- increases quality the most, and you should always use at least those
- two unless the drop in encoding speed is prohibitive (e.g. realtime
- encoding). There are many other options to
- <systemitem class="library">libavcodec</systemitem> that increase
- encoding quality (and decrease encoding speed) but that is beyond
- the scope of this document.
- </para>
-</formalpara></listitem>
-
-<listitem><formalpara>
- <title>About the performance of pullup:</title>
- <para>
- It is safe to use <option>pullup</option> (along with <option>softskip
- </option>) on progressive video, and is usually a good idea unless
- the source has been definitively verified to be entirely progressive.
- The performance loss is small for most cases. On a bare-minimum encode,
- <option>pullup</option> causes <application>MEncoder</application> to
- be 50% slower. Adding sound processing and advanced <option>lavcopts
- </option> overshadows that difference, bringing the performance
- decrease of using <option>pullup</option> down to 2%.
- </para>
-</formalpara></listitem>
-</orderedlist>
-</sect2>
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="menc-feat-enc-libavcodec">
-<title>Encoding with the <systemitem class="library">libavcodec</systemitem>
- codec family</title>
-
-<para>
-<systemitem class="library">libavcodec</systemitem>
-provides simple encoding to a lot of interesting video and audio formats.
-You can encode to the following codecs (more or less up to date):
-</para>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-enc-libavcodec-video-codecs">
-<title><systemitem class="library">libavcodec</systemitem>'s
- video codecs</title>
-
-<para>
-<informaltable frame="all">
-<tgroup cols="2">
-<thead>
- <row><entry>Video codec name</entry><entry>Description</entry></row>
-</thead>
-<tbody>
-<row>
- <entry>mjpeg</entry>
- <entry>Motion JPEG</entry>
-</row>
-<row>
- <entry>ljpeg</entry>
- <entry>lossless JPEG</entry>
-</row>
-<row>
- <entry>jpegls</entry>
- <entry>JPEG LS</entry>
-</row>
-<row>
- <entry>targa</entry>
- <entry>Targa image</entry>
-</row>
-<row>
- <entry>gif</entry>
- <entry>GIF image</entry>
-</row>
-<row>
- <entry>bmp</entry>
- <entry>BMP image</entry>
-</row>
-<row>
- <entry>png</entry>
- <entry>PNG image</entry>
-</row>
-<row>
- <entry>h261</entry>
- <entry>H.261</entry>
-</row>
-<row>
- <entry>h263</entry>
- <entry>H.263 </entry>
-</row>
-<row>
- <entry>h263p</entry>
- <entry>H.263+</entry>
-</row>
-<row>
- <entry>mpeg4</entry>
- <entry>ISO standard MPEG-4 (DivX, Xvid compatible)</entry>
-</row>
-<row>
- <entry>msmpeg4</entry>
- <entry>pre-standard MPEG-4 variant by MS, v3 (AKA DivX3)</entry>
-</row>
-<row>
- <entry>msmpeg4v2</entry>
- <entry>pre-standard MPEG-4 by MS, v2 (used in old ASF files)</entry>
-</row>
-<row>
- <entry>wmv1</entry>
- <entry>Windows Media Video, version 1 (AKA WMV7)</entry>
-</row>
-<row>
- <entry>wmv2</entry>
- <entry>Windows Media Video, version 2 (AKA WMV8)</entry>
-</row>
-<row>
- <entry>rv10</entry>
- <entry>RealVideo 1.0</entry>
-</row>
-<row>
- <entry>rv20</entry>
- <entry>RealVideo 2.0</entry>
-</row>
-<row>
- <entry>mpeg1video</entry>
- <entry>MPEG-1 video</entry>
-</row>
-<row>
- <entry>mpeg2video</entry>
- <entry>MPEG-2 video</entry>
-</row>
-<row>
- <entry>huffyuv</entry>
- <entry>lossless compression</entry>
-</row>
-<row>
- <entry>ffvhuff</entry>
- <entry>FFmpeg modified huffyuv lossless</entry>
-</row>
-<row>
- <entry>asv1</entry>
- <entry>ASUS Video v1</entry>
-</row>
-<row>
- <entry>asv2</entry>
- <entry>ASUS Video v2</entry>
-</row>
-<row>
- <entry>ffv1</entry>
- <entry>FFmpeg's lossless video codec</entry>
-</row>
-<row>
- <entry>svq1</entry>
- <entry>Sorenson video 1</entry>
-</row>
-<row>
- <entry>flv</entry>
- <entry>Sorenson H.263 used in Flash Video</entry>
-</row>
-<row>
- <entry>flashsv</entry>
- <entry>Flash Screen Video</entry>
-</row>
-<row>
- <entry>dvvideo</entry>
- <entry>Sony Digital Video</entry>
-</row>
-<row>
- <entry>snow</entry>
- <entry>FFmpeg's experimental wavelet-based codec</entry>
-</row>
-<row>
- <entry>zmbv</entry>
- <entry>Zip Motion Blocks Video</entry>
-</row>
-<row>
- <entry>dnxhd</entry>
- <entry>AVID DNxHD</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-
-The first column contains the codec names that should be passed after the
-<literal>vcodec</literal> config,
-like: <option>-lavcopts vcodec=msmpeg4</option>
-</para>
-
-<informalexample><para>
-An example with MJPEG compression:
-<screen>
-mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -ovc lavc -lavcopts vcodec=mjpeg -oac copy
-</screen>
-</para></informalexample>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-enc-libavcodec-audio-codecs">
-<title><systemitem class="library">libavcodec</systemitem>'s
- audio codecs</title>
-
-<para>
-<informaltable frame="all">
-<tgroup cols="2">
-<thead>
-<row><entry>Audio codec name</entry><entry>Description</entry></row>
-</thead>
-<tbody>
-<row>
- <entry>ac3</entry>
- <entry>Dolby Digital (AC-3)</entry>
-</row>
-<row>
- <entry>adpcm_*</entry>
- <entry>Adaptive PCM formats - see supplementary table</entry>
-</row>
-<row>
- <entry>flac</entry>
- <entry>Free Lossless Audio Codec (FLAC)</entry>
-</row>
-<row>
- <entry>g726</entry>
- <entry>G.726 ADPCM</entry>
-</row>
-<row>
- <entry>libfaac</entry>
- <entry>Advanced Audio Coding (AAC) - using FAAC</entry>
-</row>
-<row>
- <entry>libgsm</entry>
- <entry>ETSI GSM 06.10 full rate</entry>
-</row>
-<row>
- <entry>libgsm_ms</entry>
- <entry>Microsoft GSM</entry>
-</row>
-<row>
- <entry>libmp3lame</entry>
- <entry>MPEG-1 audio layer 3 (MP3) - using LAME</entry>
-</row>
-<row>
- <entry>mp2</entry>
- <entry>MPEG-1 audio layer 2 (MP2)</entry>
-</row>
-<row>
- <entry>pcm_*</entry>
- <entry>PCM formats - see supplementary table</entry>
-</row>
-<row>
- <entry>roq_dpcm</entry>
- <entry>Id Software RoQ DPCM</entry>
-</row>
-<row>
- <entry>sonic</entry>
- <entry>experimental FFmpeg lossy codec</entry>
-</row>
-<row>
- <entry>sonicls</entry>
- <entry>experimental FFmpeg lossless codec</entry>
-</row>
-<row>
- <entry>vorbis</entry>
- <entry>Vorbis</entry>
-</row>
-<row>
- <entry>wmav1</entry>
- <entry>Windows Media Audio v1</entry>
-</row>
-<row>
- <entry>wmav2</entry>
- <entry>Windows Media Audio v2</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-
-The first column contains the codec names that should be passed after the
-<literal>acodec</literal> option, like: <option>-lavcopts acodec=ac3</option>
-</para>
-
-<informalexample><para>
-An example with AC-3 compression:
-<screen>
-mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -oac lavc -lavcopts acodec=ac3 -ovc copy
-</screen>
-</para></informalexample>
-
-<para>
-Contrary to <systemitem class="library">libavcodec</systemitem>'s video
-codecs, its audio codecs do not make a wise usage of the bits they are
-given as they lack some minimal psychoacoustic model (if at all)
-which most other codec implementations feature.
-However, note that all these audio codecs are very fast and work
-out-of-the-box everywhere <application>MEncoder</application> has been
-compiled with <systemitem class="library">libavcodec</systemitem> (which
-is the case most of time), and do not depend on external libraries.
-</para>
-
-<sect3 id="menc-feat-enc-libavcodec-audio-codecs-pcmadpcm">
-<title>PCM/ADPCM format supplementary table</title>
-
-<para>
-<informaltable frame="all">
-<tgroup cols="2">
-<thead>
-<row><entry>PCM/ADPCM codec name</entry><entry>Description</entry></row>
-</thead>
-<tbody>
-<row>
- <entry>pcm_s32le</entry>
- <entry>signed 32-bit little-endian</entry>
-</row>
-<row>
- <entry>pcm_s32be</entry>
- <entry>signed 32-bit big-endian</entry>
-</row>
-<row>
- <entry>pcm_u32le</entry>
- <entry>unsigned 32-bit little-endian</entry>
-</row>
-<row>
- <entry>pcm_u32be</entry>
- <entry>unsigned 32-bit big-endian</entry>
-</row>
-<row>
- <entry>pcm_s24le</entry>
- <entry>signed 24-bit little-endian</entry>
-</row>
-<row>
- <entry>pcm_s24be</entry>
- <entry>signed 24-bit big-endian</entry>
-</row>
-<row>
- <entry>pcm_u24le</entry>
- <entry>unsigned 24-bit little-endian</entry>
-</row>
-<row>
- <entry>pcm_u24be</entry>
- <entry>unsigned 24-bit big-endian</entry>
-</row>
-<row>
- <entry>pcm_s16le</entry>
- <entry>signed 16-bit little-endian</entry>
-</row>
-<row>
- <entry>pcm_s16be</entry>
- <entry>signed 16-bit big-endian</entry>
-</row>
-<row>
- <entry>pcm_u16le</entry>
- <entry>unsigned 16-bit little-endian</entry>
-</row>
-<row>
- <entry>pcm_u16be</entry>
- <entry>unsigned 16-bit big-endian</entry>
-</row>
-<row>
- <entry>pcm_s8</entry>
- <entry>signed 8-bit</entry>
-</row>
-<row>
- <entry>pcm_u8</entry>
- <entry>unsigned 8-bit</entry>
-</row>
-<row>
- <entry>pcm_alaw</entry>
- <entry>G.711 A-LAW </entry>
-</row>
-<row>
- <entry>pcm_mulaw</entry>
- <entry>G.711 &mu;-LAW</entry>
-</row>
-<row>
- <entry>pcm_s24daud</entry>
- <entry>signed 24-bit D-Cinema Audio format</entry>
-</row>
-<row>
- <entry>pcm_zork</entry>
- <entry>Activision Zork Nemesis</entry>
-</row>
-<row>
- <entry>adpcm_ima_qt</entry>
- <entry>Apple QuickTime</entry>
-</row>
-<row>
- <entry>adpcm_ima_wav</entry>
- <entry>Microsoft/IBM WAVE</entry>
-</row>
-<row>
- <entry>adpcm_ima_dk3</entry>
- <entry>Duck DK3</entry>
-</row>
-<row>
- <entry>adpcm_ima_dk4</entry>
- <entry>Duck DK4</entry>
-</row>
-<row>
- <entry>adpcm_ima_ws</entry>
- <entry>Westwood Studios</entry>
-</row>
-<row>
- <entry>adpcm_ima_smjpeg</entry>
- <entry>SDL Motion JPEG</entry>
-</row>
-<row>
- <entry>adpcm_ms</entry>
- <entry>Microsoft</entry>
-</row>
-<row>
- <entry>adpcm_4xm</entry>
- <entry>4X Technologies</entry>
-</row>
-<row>
- <entry>adpcm_xa</entry>
- <entry>Phillips Yellow Book CD-ROM eXtended Architecture</entry>
-</row>
-<row>
- <entry>adpcm_ea</entry>
- <entry>Electronic Arts</entry>
-</row>
-<row>
- <entry>adpcm_ct</entry>
- <entry>Creative 16->4-bit</entry>
-</row>
-<row>
- <entry>adpcm_swf</entry>
- <entry>Adobe Shockwave Flash</entry>
-</row>
-<row>
- <entry>adpcm_yamaha</entry>
- <entry>Yamaha</entry>
-</row>
-<row>
- <entry>adpcm_sbpro_4</entry>
- <entry>Creative VOC SoundBlaster Pro 8->4-bit</entry>
-</row>
-<row>
- <entry>adpcm_sbpro_3</entry>
- <entry>Creative VOC SoundBlaster Pro 8->2.6-bit</entry>
-</row>
-<row>
- <entry>adpcm_sbpro_2</entry>
- <entry>Creative VOC SoundBlaster Pro 8->2-bit</entry>
-</row>
-<row>
- <entry>adpcm_thp</entry>
- <entry>Nintendo GameCube FMV THP</entry>
-</row>
-<row>
- <entry>adpcm_adx</entry>
- <entry>Sega/CRI ADX</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</para>
-</sect3>
-
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options">
-<title>Encoding options of libavcodec</title>
-
-<para>
-Ideally, you would probably want to be able to just tell the encoder to switch
-into "high quality" mode and move on.
-That would probably be nice, but unfortunately hard to implement as different
-encoding options yield different quality results depending on the source
-material. That is because compression depends on the visual properties of the
-video in question.
-For example, Anime and live action have very different properties and
-thus require different options to obtain optimum encoding.
-The good news is that some options should never be left out, like
-<option>mbd=2</option>, <option>trell</option>, and <option>v4mv</option>.
-See below for a detailed description of common encoding options.
-</para>
-
-<itemizedlist>
-<title>Options to adjust:</title>
-<listitem><para>
- <emphasis role="bold">vmax_b_frames</emphasis>: 1 or 2 is good, depending on
- the movie.
- Note that if you need to have your encode be decodable by DivX5, you
- need to activate closed GOP support, using
- <systemitem class="library">libavcodec</systemitem>'s <option>cgop</option>
- option, but you need to deactivate scene detection, which
- is not a good idea as it will hurt encode efficiency a bit.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vb_strategy=1</emphasis>: helps in high-motion scenes.
- On some videos, vmax_b_frames may hurt quality, but vmax_b_frames=2 along
- with vb_strategy=1 helps.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">dia</emphasis>: motion search range. Bigger is better
- and slower.
- Negative values are a completely different scale.
- Good values are -1 for a fast encode, or 2-4 for slower.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">predia</emphasis>: motion search pre-pass.
- Not as important as dia. Good values are 1 (default) to 4. Requires preme=2
- to really be useful.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Comparison function for
- motion estimation.
- Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate
- distortion).
- 0 is fastest, and sufficient for precmp.
- For cmp and subcmp, 2 is good for Anime, and 3 is good for live action.
- 6 may or may not be slightly better, but is slow.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">last_pred</emphasis>: Number of motion predictors to
- take from the previous frame.
- 1-3 or so help at little speed cost.
- Higher values are slow for no extra gain.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">cbp, mv0</emphasis>: Controls the selection of
- macroblocks. Small speed cost for small quality gain.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">qprd</emphasis>: adaptive quantization based on the
- macroblock's complexity.
- May help or hurt depending on the video and other options.
- This can cause artifacts unless you set vqmax to some reasonably small value
- (6 is good, maybe as low as 4); vqmin=1 should also help.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">qns</emphasis>: very slow, especially when combined
- with qprd.
- This option will make the encoder minimize noise due to compression
- artifacts instead of making the encoded video strictly match the source.
- Do not use this unless you have already tweaked everything else as far as it
- will go and the results still are not good enough.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vqcomp</emphasis>: Tweak ratecontrol.
- What values are good depends on the movie.
- You can safely leave this alone if you want.
- Reducing vqcomp puts more bits on low-complexity scenes, increasing it puts
- them on high-complexity scenes (default: 0.5, range: 0-1. recommended range:
- 0.5-0.7).
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vlelim, vcelim</emphasis>: Sets the single coefficient
- elimination threshold for luminance and chroma planes.
- These are encoded separately in all MPEG-like algorithms.
- The idea behind these options is to use some good heuristics to determine
- when the change in a block is less than the threshold you specify, and in
- such a case, to just encode the block as "no change".
- This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9
- seem to be good for live movies, but seem not to help with Anime;
- when encoding animation, you should probably leave them unchanged.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">qpel</emphasis>: Quarter pixel motion estimation.
- MPEG-4 uses half pixel precision for its motion search by default,
- therefore this option comes with an overhead as more information will be
- stored in the encoded file.
- The compression gain/loss depends on the movie, but it is usually not very
- effective on Anime.
- qpel always incurs a significant cost in CPU decode time (+25% in
- practice).
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">psnr</emphasis>: does not affect the actual encoding,
- but writes a log file giving the type/size/quality of each frame, and
- prints a summary of PSNR (Peak Signal to Noise Ratio) at the end.
-</para></listitem>
-</itemizedlist>
-
-<itemizedlist>
-<title>Options not recommended to play with:</title>
-<listitem><para>
- <emphasis role="bold">vme</emphasis>: The default is best.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisual adaptive
- quantization.
- You do not want to play with those options if you care about quality.
- Reasonable values may be effective in your case, but be warned this is very
- subjective.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">scplx_mask</emphasis>: Tries to prevent blocky
- artifacts, but postprocessing is better.
-</para></listitem>
-</itemizedlist>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-mpeg4-lavc-example-settings">
-<title>Encoding setting examples</title>
-
-<para>
-The following settings are examples of different encoding
-option combinations that affect the speed vs quality tradeoff
-at the same target bitrate.
-</para>
-
-<para>
-All the encoding settings were tested on a 720x448 @30000/1001 fps
-video sample, the target bitrate was 900kbps, and the machine was an
-AMD-64 3400+ at 2400 MHz in 64 bits mode.
-Each encoding setting features the measured encoding speed (in
-frames per second) and the PSNR loss (in dB) compared to the "very
-high quality" setting.
-Please understand that depending on your source, your machine type
-and development advancements, you may get very different results.
-</para>
-
-<para>
-<informaltable frame="all">
-<tgroup cols="4">
-<thead>
-<row>
- <entry>Description</entry>
- <entry>Encoding options</entry>
- <entry>speed (in fps)</entry>
- <entry>Relative PSNR loss (in dB)</entry>
-</row>
-</thead>
-<tbody>
-<row>
- <entry>Very high quality</entry>
- <entry><option>vcodec=mpeg4: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</option></entry>
- <entry>6fps</entry>
- <entry>0dB</entry>
-</row>
-<row>
- <entry>High quality</entry>
- <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry>
- <entry>15fps</entry>
- <entry>-0.5dB</entry>
-</row>
-<row>
- <entry>Fast</entry>
- <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry>
- <entry>42fps</entry>
- <entry>-0.74dB</entry>
-</row>
-<row>
- <entry>Realtime</entry>
- <entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry>
- <entry>54fps</entry>
- <entry>-1.21dB</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="custommatrices">
-<title>Custom inter/intra matrices</title>
-
-<para>
-With this feature of
-<systemitem class="library">libavcodec</systemitem>
-you are able to set custom inter (I-frames/keyframes) and intra
-(P-frames/predicted frames) matrices. It is supported by many of the codecs:
-<systemitem>mpeg1video</systemitem> and <systemitem>mpeg2video</systemitem>
-are reported as working.
-</para>
-
-<para>
-A typical usage of this feature is to set the matrices preferred by the
-<ulink url="http://www.kvcd.net/">KVCD</ulink> specifications.
-</para>
-
-<para>
-The <emphasis role="bold">KVCD "Notch" Quantization Matrix:</emphasis>
-</para>
-
-<para>
-Intra:
-<screen>
- 8 9 12 22 26 27 29 34
- 9 10 14 26 27 29 34 37
-12 14 18 27 29 34 37 38
-22 26 27 31 36 37 38 40
-26 27 29 36 39 38 40 48
-27 29 34 37 38 40 48 58
-29 34 37 38 40 48 58 69
-34 37 38 40 48 58 69 79
-</screen>
-
-Inter:
-<screen>
-16 18 20 22 24 26 28 30
-18 20 22 24 26 28 30 32
-20 22 24 26 28 30 32 34
-22 24 26 30 32 32 34 36
-24 26 28 32 34 34 36 38
-26 28 30 32 34 36 38 40
-28 30 32 34 36 38 42 42
-30 32 34 36 38 40 42 44
-</screen>
-</para>
-
-<para>
-Usage:
-<screen>
-mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc \
- -lavcopts inter_matrix=...:intra_matrix=...
-</screen>
-</para>
-
-<para>
-<screen>
-mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts \
-vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,\
-12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,\
-29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79\
-:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,\
-28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,\
-36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
-</screen>
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-example">
-<title>Example</title>
-
-<para>
-So, you have just bought your shiny new copy of Harry Potter and the Chamber
-of Secrets (widescreen edition, of course), and you want to rip this DVD
-so that you can add it to your Home Theatre PC. This is a region 1 DVD,
-so it is NTSC. The example below will still apply to PAL, except you will
-omit <option>-ofps 24000/1001</option> (because the output framerate is the
-same as the input framerate), and of course the crop dimensions will be
-different.
-</para>
-
-<para>
-After running <option>mplayer dvd://1</option>, we follow the process
-detailed in the section <link linkend="menc-feat-telecine">How to deal
-with telecine and interlacing in NTSC DVDs</link> and discover that it is
-24000/1001 fps progressive video, which means that we need not use an inverse
-telecine filter, such as <option>pullup</option> or
-<option>filmdint</option>.
-</para>
-
-<para id="menc-feat-dvd-mpeg4-example-crop">
-Next, we want to determine the appropriate crop rectangle, so we use the
-cropdetect filter:
-<screen>mplayer dvd://1 -vf cropdetect</screen>
-Make sure you seek to a fully filled frame (such as a bright scene,
-past the opening credits and logos), and
-you will see in <application>MPlayer</application>'s console output:
-<screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen>
-We then play the movie back with this filter to test its correctness:
-<screen>mplayer dvd://1 -vf crop=720:362:0:58</screen>
-And we see that it looks perfectly fine. Next, we ensure the width and
-height are a multiple of 16. The width is fine, however the height is
-not. Since we did not fail 7th grade math, we know that the nearest
-multiple of 16 lower than 362 is 352.
-</para>
-
-<para>
-We could just use <option>crop=720:352:0:58</option>, but it would be nice
-to take a little off the top and a little off the bottom so that we
-retain the center. We have shrunk the height by 10 pixels, but we do not
-want to increase the y-offset by 5-pixels since that is an odd number and
-will adversely affect quality. Instead, we will increase the y-offset by
-4 pixels:
-<screen>mplayer dvd://1 -vf crop=720:352:0:62</screen>
-Another reason to shave pixels from both the top and the bottom is that we
-ensure we have eliminated any half-black pixels if they exist. Note that if
-your video is telecined, make sure the <option>pullup</option> filter (or
-whichever inverse telecine filter you decide to use) appears in the filter
-chain before you crop. If it is interlaced, deinterlace before cropping.
-(If you choose to preserve the interlaced video, then make sure your
-vertical crop offset is a multiple of 4.)
-</para>
-
-<para>
-If you are really concerned about losing those 10 pixels, you might
-prefer instead to scale the dimensions down to the nearest multiple of 16.
-The filter chain would look like:
-<screen>-vf crop=720:362:0:58,scale=720:352</screen>
-Scaling the video down like this will mean that some small amount of
-detail is lost, though it probably will not be perceptible. Scaling up will
-result in lower quality (unless you increase the bitrate). Cropping
-discards those pixels altogether. It is a tradeoff that you will want to
-consider for each circumstance. For example, if the DVD video was made
-for television, you might want to avoid vertical scaling, since the line
-sampling corresponds to the way the content was originally recorded.
-</para>
-
-<para>
-On inspection, we see that our movie has a fair bit of action and high
-amounts of detail, so we pick 2400Kbit for our bitrate.
-</para>
-
-<para>
-We are now ready to do the two pass encode. Pass one:
-<screen>
-mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
- -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=1 \
- -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
-</screen>
-And pass two is the same, except that we specify <option>vpass=2</option>:
-<screen>
-mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
- -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=2 \
- -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
-</screen>
-</para>
-
-<para>
-The options <option>v4mv:mbd=2:trell</option> will greatly increase the
-quality at the expense of encoding time. There is little reason to leave
-these options out when the primary goal is quality. The options
-<option>cmp=3:subcmp=3</option> select a comparison function that
-yields higher quality than the defaults. You might try experimenting with
-this parameter (refer to the man page for the possible values) as
-different functions can have a large impact on quality depending on the
-source material. For example, if you find
-<systemitem class="library">libavcodec</systemitem> produces too much
-blocky artifacts, you could try selecting the experimental NSSE as
-comparison function via <option>*cmp=10</option>.
-</para>
-
-<para>
-For this movie, the resulting AVI will be 138 minutes long and nearly
-3GB. And because you said that file size does not matter, this is a
-perfectly acceptable size. However, if you had wanted it smaller, you
-could try a lower bitrate. Increasing bitrates have diminishing
-returns, so while we might clearly see an improvement from 1800Kbit to
-2000Kbit, it might not be so noticeable above 2000Kbit. Feel
-free to experiment until you are happy.
-</para>
-
-<para>
-Because we passed the source video through a denoise filter, you may want
-to add some of it back during playback. This, along with the
-<option>spp</option> post-processing filter, drastically improves the
-perception of quality and helps eliminate blocky artifacts in the video.
-With <application>MPlayer</application>'s <option>autoq</option> option,
-you can vary the amount of post-processing done by the spp filter
-depending on available CPU. Also, at this point, you may want to apply
-gamma and/or color correction to best suit your display. For example:
-<screen>
-mplayer <replaceable>Harry_Potter_2.avi</replaceable> -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
-</screen>
-</para>
-</sect2>
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="menc-feat-xvid">
-<title>Encoding with the <systemitem class="library">Xvid</systemitem>
- codec</title>
-
-<para>
-<systemitem class="library">Xvid</systemitem> is a free library for
-encoding MPEG-4 ASP video streams.
-Before starting to encode, you need to <link linkend="xvid">
-set up <application>MEncoder</application> to support it</link>.
-</para>
-
-<para>
-This guide mainly aims at featuring the same kind of information
-as x264's encoding guide.
-Therefore, please begin by reading
-<link linkend="menc-feat-x264-encoding-options-intro">the first part</link>
-of that guide.
-</para>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-xvid-intro">
-<title>What options should I use to get the best results?</title>
-
-<para>
-Please begin by reviewing the
-<systemitem class="library">Xvid</systemitem> section of
-<application>MPlayer</application>'s man page.
-This section is intended to be a supplement to the man page.
-</para>
-
-<para>
-The Xvid default settings are already a good tradeoff between
-speed and quality, therefore you can safely stick to them if
-the following section puzzles you.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-xvid-encoding-options">
-<title>Encoding options of <systemitem class="library">Xvid</systemitem></title>
-
-<itemizedlist>
-<listitem><para>
- <emphasis role="bold">vhq</emphasis>
- This setting affects the macroblock decision algorithm, where the
- higher the setting, the wiser the decision.
- The default setting may be safely used for every encode, while
- higher settings always help PSNR but are significantly slower.
- Please note that a better PSNR does not necessarily mean
- that the picture will look better, but tells you that it is
- closer to the original.
- Turning it off will noticeably speed up encoding; if speed is
- critical for you, the tradeoff may be worth it.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">bvhq</emphasis>
- This does the same job as vhq, but does it on B-frames.
- It has a negligible impact on speed, and slightly improves quality
- (around +0.1dB PSNR).
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">max_bframes</emphasis>
- A higher number of consecutive allowed B-frames usually improves
- compressibility, although it may also lead to more blocking artifacts.
- The default setting is a good tradeoff between compressibility and
- quality, but you may increase it up to 3 if you are bitrate-starved.
- You may also decrease it to 1 or 0 if you are aiming at perfect
- quality, though in that case you should make sure your
- target bitrate is high enough to ensure that the encoder does not
- have to increase quantizers to reach it.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">bf_threshold</emphasis>
- This controls the B-frame sensitivity of the encoder, where a higher
- value leads to more B-frames being used (and vice versa).
- This setting is to be used together with <option>max_bframes</option>;
- if you are bitrate-starved, you should increase both
- <option>max_bframes</option> and <option>bf_threshold</option>,
- while you may increase <option>max_bframes</option> and reduce
- <option>bf_threshold</option> so that the encoder may use more
- B-frames in places that only <emphasis role="bold">really</emphasis>
- need them.
- A low number of <option>max_bframes</option> and a high value of
- <option>bf_threshold</option> is probably not a wise choice as it
- will force the encoder to put B-frames in places that would not
- benefit from them, therefore reducing visual quality.
- However, if you need to be compatible with standalone players that
- only support old DivX profiles (which only supports up to 1
- consecutive B-frame), this would be your only way to
- increase compressibility through using B-frames.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">trellis</emphasis>
- Optimizes the quantization process to get an optimal tradeoff
- between PSNR and bitrate, which allows significant bit saving.
- These bits will in return be spent elsewhere on the video,
- raising overall visual quality.
- You should always leave it on as its impact on quality is huge.
- Even if you are looking for speed, do not disable it until you
- have turned down <option>vhq</option> and all other more
- CPU-hungry options to the minimum.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">hq_ac</emphasis>
- Activates a better coefficient cost estimation method, which slightly
- reduces file size by around 0.15 to 0.19% (which corresponds to less
- than 0.01dB PSNR increase), while having a negligible impact on speed.
- It is therefore recommended to always leave it on.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">cartoon</emphasis>
- Designed to better encode cartoon content, and has no impact on
- speed as it just tunes the mode decision heuristics for this type
- of content.
-</para></listitem>
-<listitem>
- <para>
- <emphasis role="bold">me_quality</emphasis>
- This setting is to control the precision of the motion estimation.
- The higher <option>me_quality</option>, the more
- precise the estimation of the original motion will be, and the
- better the resulting clip will capture the original motion.
- </para>
- <para>
- The default setting is best in all cases;
- thus it is not recommended to turn it down unless you are
- really looking for speed, as all the bits saved by a good motion
- estimation would be spent elsewhere, raising overall quality.
- Therefore, do not go any lower than 5, and even that only as a last
- resort.
- </para>
-</listitem>
-<listitem><para>
- <emphasis role="bold">chroma_me</emphasis>
- Improves motion estimation by also taking the chroma (color)
- information into account, whereas <option>me_quality</option>
- alone only uses luma (grayscale).
- This slows down encoding by 5-10% but improves visual quality
- quite a bit by reducing blocking effects and reduces file size by
- around 1.3%.
- If you are looking for speed, you should disable this option before
- starting to consider reducing <option>me_quality</option>.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">chroma_opt</emphasis>
- Is intended to increase chroma image quality around pure
- white/black edges, rather than improving compression.
- This can help to reduce the "red stairs" effect.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">lumi_mask</emphasis>
- Tries to give less bitrate to part of the picture that the
- human eye cannot see very well, which should allow the encoder
- to spend the saved bits on more important parts of the picture.
- The quality of the encode yielded by this option highly depends
- on personal preferences and on the type and monitor settings
- used to watch it (typically, it will not look as good if it is
- bright or if it is a TFT monitor).
-</para></listitem>
-<listitem>
- <para>
- <emphasis role="bold">qpel</emphasis>
- Raise the number of candidate motion vectors by increasing
- the precision of the motion estimation from halfpel to
- quarterpel.
- The idea is to find better motion vectors which will in return
- reduce bitrate (hence increasing quality).
- However, motion vectors with quarterpel precision require a
- few extra bits to code, but the candidate vectors do not always
- give (much) better results.
- Quite often, the codec still spends bits on the extra precision,
- but little or no extra quality is gained in return.
- Unfortunately, there is no way to foresee the possible gains of
- <option>qpel</option>, so you need to actually encode with and
- without it to know for sure.
- </para>
- <para>
- <option>qpel</option> can be almost double encoding time, and
- requires as much as 25% more processing power to decode.
- It is not supported by all standalone players.
- </para>
-</listitem>
-<listitem><para>
- <emphasis role="bold">gmc</emphasis>
- Tries to save bits on panning scenes by using a single motion
- vector for the whole frame.
- This almost always raises PSNR, but significantly slows down
- encoding (as well as decoding).
- Therefore, you should only use it when you have turned
- <option>vhq</option> to the maximum.
- <systemitem class="library">Xvid</systemitem>'s GMC is more
- sophisticated than DivX's, but is only supported by few
- standalone players.
-</para></listitem>
-</itemizedlist>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-xvid-encoding-profiles">
-<title>Encoding profiles</title>
-
-<para>
-Xvid supports encoding profiles through the <option>profile</option> option,
-which are used to impose restrictions on the properties of the Xvid video
-stream such that it will be playable on anything which supports the
-chosen profile.
-The restrictions relate to resolutions, bitrates and certain MPEG-4
-features.
-The following table shows what each profile supports.
-</para>
-
-<informaltable>
-<tgroup cols="16" align="center">
-<colspec colnum="1" colname="col1"/>
-<colspec colnum="2" colname="col2"/>
-<colspec colnum="3" colname="col3"/>
-<colspec colnum="4" colname="col4"/>
-<colspec colnum="5" colname="col5"/>
-<colspec colnum="6" colname="col6"/>
-<colspec colnum="7" colname="col7"/>
-<colspec colnum="8" colname="col8"/>
-<colspec colnum="9" colname="col9"/>
-<colspec colnum="10" colname="col10"/>
-<colspec colnum="11" colname="col11"/>
-<colspec colnum="12" colname="col12"/>
-<colspec colnum="13" colname="col13"/>
-<colspec colnum="14" colname="col14"/>
-<colspec colnum="15" colname="col15"/>
-<colspec colnum="16" colname="col16"/>
-<colspec colnum="17" colname="col17"/>
-<spanspec spanname="spa2-5" namest="col2" nameend="col5"/>
-<spanspec spanname="spa6-11" namest="col6" nameend="col11"/>
-<spanspec spanname="spa12-17" namest="col12" nameend="col17"/>
-<tbody>
-<row>
- <entry></entry>
- <entry spanname="spa2-5">Simple</entry>
- <entry spanname="spa6-11">Advanced Simple</entry>
- <entry spanname="spa12-17">DivX</entry>
-</row>
-<row>
- <entry>Profile name</entry>
- <entry>0</entry>
- <entry>1</entry>
- <entry>2</entry>
- <entry>3</entry>
- <entry>0</entry>
- <entry>1</entry>
- <entry>2</entry>
- <entry>3</entry>
- <entry>4</entry>
- <entry>5</entry>
- <entry>Handheld</entry>
- <entry>Portable NTSC</entry>
- <entry>Portable PAL</entry>
- <entry>Home Theater NTSC</entry>
- <entry>Home Theater PAL</entry>
- <entry>HDTV</entry>
-</row>
-<row>
- <entry>Width [pixels]</entry>
- <entry>176</entry>
- <entry>176</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>176</entry>
- <entry>176</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>720</entry>
- <entry>176</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>720</entry>
- <entry>720</entry>
- <entry>1280</entry>
-</row>
-<row>
- <entry>Height [pixels]</entry>
- <entry>144</entry>
- <entry>144</entry>
- <entry>288</entry>
- <entry>288</entry>
- <entry>144</entry>
- <entry>144</entry>
- <entry>288</entry>
- <entry>288</entry>
- <entry>576</entry>
- <entry>576</entry>
- <entry>144</entry>
- <entry>240</entry>
- <entry>288</entry>
- <entry>480</entry>
- <entry>576</entry>
- <entry>720</entry>
-</row>
-<row>
- <entry>Frame rate [fps]</entry>
- <entry>15</entry>
- <entry>15</entry>
- <entry>15</entry>
- <entry>15</entry>
- <entry>30</entry>
- <entry>30</entry>
- <entry>15</entry>
- <entry>30</entry>
- <entry>30</entry>
- <entry>30</entry>
- <entry>15</entry>
- <entry>30</entry>
- <entry>25</entry>
- <entry>30</entry>
- <entry>25</entry>
- <entry>30</entry>
-</row>
-<row>
- <entry>Max average bitrate [kbps]</entry>
- <entry>64</entry>
- <entry>64</entry>
- <entry>128</entry>
- <entry>384</entry>
- <entry>128</entry>
- <entry>128</entry>
- <entry>384</entry>
- <entry>768</entry>
- <entry>3000</entry>
- <entry>8000</entry>
- <entry>537.6</entry>
- <entry>4854</entry>
- <entry>4854</entry>
- <entry>4854</entry>
- <entry>4854</entry>
- <entry>9708.4</entry>
-</row>
-<row>
- <entry>Peak average bitrate over 3 secs [kbps]</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>800</entry>
- <entry>8000</entry>
- <entry>8000</entry>
- <entry>8000</entry>
- <entry>8000</entry>
- <entry>16000</entry>
-</row>
-<row>
- <entry>Max. B-frames</entry>
- <entry>0</entry>
- <entry>0</entry>
- <entry>0</entry>
- <entry>0</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>0</entry>
- <entry>1</entry>
- <entry>1</entry>
- <entry>1</entry>
- <entry>1</entry>
- <entry>2</entry>
-</row>
-<row>
- <entry>MPEG quantization</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
-</row>
-<row>
- <entry>Adaptive quantization</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
-</row>
-<row>
- <entry>Interlaced encoding</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
-</row>
-<row>
- <entry>Quarterpixel</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
-</row>
-<row>
- <entry>Global motion compensation</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-xvid-example-settings">
-<title>Encoding setting examples</title>
-
-<para>
-The following settings are examples of different encoding
-option combinations that affect the speed vs quality tradeoff
-at the same target bitrate.
-</para>
-
-<para>
-All the encoding settings were tested on a 720x448 @30000/1001 fps
-video sample, the target bitrate was 900kbps, and the machine was an
-AMD-64 3400+ at 2400 MHz in 64 bits mode.
-Each encoding setting features the measured encoding speed (in
-frames per second) and the PSNR loss (in dB) compared to the "very
-high quality" setting.
-Please understand that depending on your source, your machine type
-and development advancements, you may get very different results.
-</para>
-
-<informaltable frame="all">
-<tgroup cols="4">
-<thead>
-<row><entry>Description</entry><entry>Encoding options</entry><entry>speed (in fps)</entry><entry>Relative PSNR loss (in dB)</entry></row>
-</thead>
-<tbody>
-<row>
- <entry>Very high quality</entry>
- <entry><option>chroma_opt:vhq=4:bvhq=1:quant_type=mpeg</option></entry>
- <entry>16fps</entry>
- <entry>0dB</entry>
-</row>
-<row>
- <entry>High quality</entry>
- <entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry>
- <entry>18fps</entry>
- <entry>-0.1dB</entry>
-</row>
-<row>
- <entry>Fast</entry>
- <entry><option>turbo:vhq=0</option></entry>
- <entry>28fps</entry>
- <entry>-0.69dB</entry>
-</row>
-<row>
- <entry>Realtime</entry>
- <entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry>
- <entry>38fps</entry>
- <entry>-1.48dB</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</sect2>
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="menc-feat-x264">
-<title>Encoding with the
- <systemitem class="library">x264</systemitem> codec</title>
-
-<para>
-<systemitem class="library">x264</systemitem> is a free library for
-encoding H.264/AVC video streams.
-Before starting to encode, you need to
-<link linkend="x264">set up <application>MEncoder</application> to support it</link>.
-</para>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-x264-encoding-options">
-<title>Encoding options of x264</title>
-
-<para>
-Please begin by reviewing the
-<systemitem class="library">x264</systemitem> section of
-<application>MPlayer</application>'s man page.
-This section is intended to be a supplement to the man page.
-Here you will find quick hints about which options are most
-likely to interest most people. The man page is more terse,
-but also more exhaustive, and it sometimes offers much better
-technical detail.
-</para>
-
-
-<sect3 id="menc-feat-x264-encoding-options-intro">
-<title>Introduction</title>
-
-<para>
-This guide considers two major categories of encoding options:
-</para>
-
-<orderedlist>
-<listitem><para>
- Options which mainly trade off encoding time vs. quality
-</para></listitem>
-<listitem><para>
- Options which may be useful for fulfilling various personal
- preferences and special requirements
-</para></listitem>
-</orderedlist>
-
-<para>
-Ultimately, only you can decide which options are best for your
-purposes. The decision for the first class of options is the simplest:
-you only have to decide whether you think the quality differences
-justify the speed differences. For the second class of options,
-preferences may be far more subjective, and more factors may be
-involved. Note that some of the "personal preferences and special
-requirements" options can still have large impacts on speed or quality,
-but that is not what they are primarily useful for. A couple of the
-"personal preference" options may even cause changes that look better
-to some people, but look worse to others.
-</para>
-
-<para>
-Before continuing, you need to understand that this guide uses only one
-quality metric: global PSNR.
-For a brief explanation of what PSNR is, see
-<ulink url="http://en.wikipedia.org/wiki/PSNR">the Wikipedia article on PSNR</ulink>.
-Global PSNR is the last PSNR number reported when you include
-the <option>psnr</option> option in <option>x264encopts</option>.
-Any time you read a claim about PSNR, one of the assumptions
-behind the claim is that equal bitrates are used.
-</para>
-
-<para>
-Nearly all of this guide's comments assume you are using two pass.
-When comparing options, there are two major reasons for using
-two pass encoding.
-First, using two pass often gains around 1dB PSNR, which is a
-very big difference.
-Secondly, testing options by doing direct quality comparisons
-with one pass encodes introduces a major confounding
-factor: bitrate often varies significantly with each encode.
-It is not always easy to tell whether quality changes are due
-mainly to changed options, or if they mostly reflect essentially
-random differences in the achieved bitrate.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-x264-encoding-options-speedvquality">
-<title>Options which primarily affect speed and quality</title>
-
-<itemizedlist>
-<listitem>
- <para>
- <emphasis role="bold">subq</emphasis>:
- Of the options which allow you to trade off speed for quality,
- <option>subq</option> and <option>frameref</option> (see below) are usually
- by far the most important.
- If you are interested in tweaking either speed or quality, these
- are the first options you should consider.
- On the speed dimension, the <option>frameref</option> and
- <option>subq</option> options interact with each other fairly
- strongly.
- Experience shows that, with one reference frame,
- <option>subq=5</option> (the default setting) takes about 35% more time than
- <option>subq=1</option>.
- With 6 reference frames, the penalty grows to over 60%.
- <option>subq</option>'s effect on PSNR seems fairly constant
- regardless of the number of reference frames.
- Typically, <option>subq=5</option> achieves 0.2-0.5 dB higher global
- PSNR in comparison <option>subq=1</option>.
- This is usually enough to be visible.
- </para>
- <para>
- <option>subq=6</option> is slower and yields better quality at a reasonable
- cost.
- In comparison to <option>subq=5</option>, it usually gains 0.1-0.4 dB
- global PSNR with speed costs varying from 25%-100%.
- Unlike other levels of <option>subq</option>, the behavior of
- <option>subq=6</option> does not depend much on <option>frameref</option>
- and <option>me</option>. Instead, the effectiveness of <option>subq=6
- </option> depends mostly upon the number of B-frames used. In normal
- usage, this means <option>subq=6</option> has a large impact on both speed
- and quality in complex, high motion scenes, but it may not have much effect
- in low-motion scenes. Note that it is still recommended to always set
- <option>bframes</option> to something other than zero (see below).
- </para>
- <para>
- <option>subq=7</option> is the slowest, highest quality mode.
- In comparison to <option>subq=6</option>, it usually gains 0.01-0.05 dB
- global PSNR with speed costs varying from 15%-33%.
- Since the tradeoff encoding time vs. quality is quite low, you should
- only use it if you are after every bit saving and if encoding time is
- not an issue.
- </para>
-</listitem>
-<listitem>
- <para>
- <emphasis role="bold">frameref</emphasis>:
- <option>frameref</option> is set to 1 by default, but this
- should not be taken to imply that it is reasonable to set it to 1.
- Merely raising <option>frameref</option> to 2 gains around
- 0.15dB PSNR with a 5-10% speed penalty; this seems like a good tradeoff.
- <option>frameref=3</option> gains around 0.25dB PSNR over
- <option>frameref=1</option>, which should be a visible difference.
- <option>frameref=3</option> is around 15% slower than
- <option>frameref=1</option>.
- Unfortunately, diminishing returns set in rapidly.
- <option>frameref=6</option> can be expected to gain only
- 0.05-0.1 dB over <option>frameref=3</option> at an additional
- 15% speed penalty.
- Above <option>frameref=6</option>, the quality gains are
- usually very small (although you should keep in mind throughout
- this whole discussion that it can vary quite a lot depending on your source).
- In a fairly typical case, <option>frameref=12</option>
- will improve global PSNR by a tiny 0.02dB over
- <option>frameref=6</option>, at a speed cost of 15%-20%.
- At such high <option>frameref</option> values, the only really
- good thing that can be said is that increasing it even further will
- almost certainly never <emphasis role="bold">harm</emphasis>
- PSNR, but the additional quality benefits are barely even
- measurable, let alone perceptible.
- </para>
- <note><title>Note:</title>
- <para>
- Raising <option>frameref</option> to unnecessarily high values
- <emphasis role="bold">can</emphasis> and
- <emphasis role="bold">usually does</emphasis>
- hurt coding efficiency if you turn CABAC off.
- With CABAC on (the default behavior), the possibility of setting
- <option>frameref</option> "too high" currently seems too remote
- to even worry about, and in the future, optimizations may remove
- the possibility altogether.
- </para></note>
- <para>
- If you care about speed, a reasonable compromise is to use low
- <option>subq</option> and <option>frameref</option> values on
- the first pass, and then raise them on the second pass.
- Typically, this has a negligible negative effect on the final
- quality: You will probably lose well under 0.1dB PSNR, which
- should be much too small of a difference to see.
- However, different values of <option>frameref</option> can
- occasionally affect frame type decision.
- Most likely, these are rare outlying cases, but if you want to
- be pretty sure, consider whether your video has either
- fullscreen repetitive flashing patterns or very large temporary
- occlusions which might force an I-frame.
- Adjust the first-pass <option>frameref</option> so it is large
- enough to contain the duration of the flashing cycle (or occlusion).
- For example, if the scene flashes back and forth between two images
- over a duration of three frames, set the first pass
- <option>frameref</option> to 3 or higher.
- This issue is probably extremely rare in live action video material,
- but it does sometimes come up in video game captures.
- </para>
-</listitem>
-<listitem>
- <para>
- <emphasis role="bold">me</emphasis>:
- This option is for choosing the motion estimation search method.
- Altering this option provides a straightforward quality-vs-speed
- tradeoff. <option>me=dia</option> is only a few percent faster than
- the default search, at a cost of under 0.1dB global PSNR. The
- default setting (<option>me=hex</option>) is a reasonable tradeoff
- between speed and quality. <option>me=umh</option> gains a little under
- 0.1dB global PSNR, with a speed penalty that varies depending on
- <option>frameref</option>. At high values of
- <option>frameref</option> (e.g. 12 or so), <option>me=umh</option>
- is about 40% slower than the default <option> me=hex</option>. With
- <option>frameref=3</option>, the speed penalty incurred drops to
- 25%-30%.
- </para>
- <para>
- <option>me=esa</option> uses an exhaustive search that is too slow for
- practical use.
- </para>
-</listitem>
-<listitem><para>
- <emphasis role="bold">partitions=all</emphasis>:
- This option enables the use of 8x4, 4x8 and 4x4 subpartitions in
- predicted macroblocks (in addition to the default partitions).
- Enabling it results in a fairly consistent
- 10%-15% loss of speed. This option is rather useless in source
- containing only low motion, however in some high-motion source,
- particularly source with lots of small moving objects, gains of
- about 0.1dB can be expected.
-</para></listitem>
-<listitem>
- <para>
- <emphasis role="bold">bframes</emphasis>:
- If you are used to encoding with other codecs, you may have found
- that B-frames are not always useful.
- In H.264, this has changed: there are new techniques and block
- types that are possible in B-frames.
- Usually, even a naive B-frame choice algorithm can have a
- significant PSNR benefit.
- It is interesting to note that using B-frames usually speeds up
- the second pass somewhat, and may also speed up a single
- pass encode if adaptive B-frame decision is turned off.
- </para>
- <para>
- With adaptive B-frame decision turned off
- (<option>x264encopts</option>'s <option>nob_adapt</option>),
- the optimal value for this setting is usually no more than
- <option>bframes=1</option>, or else high-motion scenes can suffer.
- With adaptive B-frame decision on (the default behavior), it is
- safe to use higher values; the encoder will reduce the use of
- B-frames in scenes where they would hurt compression.
- The encoder rarely chooses to use more than 3 or 4 B-frames;
- setting this option any higher will have little effect.
- </para>
-</listitem>
-<listitem>
- <para>
- <emphasis role="bold">b_adapt</emphasis>:
- Note: This is on by default.
- </para>
- <para>
- With this option enabled, the encoder will use a reasonably fast
- decision process to reduce the number of B-frames used in scenes that
- might not benefit from them as much.
- You can use <option>b_bias</option> to tweak how B-frame-happy
- the encoder is.
- The speed penalty of adaptive B-frames is currently rather modest,
- but so is the potential quality gain.
- It usually does not hurt, however.
- Note that this only affects speed and frame type decision on the
- first pass.
- <option>b_adapt</option> and <option>b_bias</option> have no
- effect on subsequent passes.
- </para>
-</listitem>
-<listitem><para>
- <emphasis role="bold">b_pyramid</emphasis>:
- You might as well enable this option if you are using >=2 B-frames;
- as the man page says, you get a little quality improvement at no
- speed cost.
- Note that these videos cannot be read by libavcodec-based decoders
- older than about March 5, 2005.
-</para></listitem>
-<listitem>
- <para>
- <emphasis role="bold">weight_b</emphasis>:
- In typical cases, there is not much gain with this option.
- However, in crossfades or fade-to-black scenes, weighted
- prediction gives rather large bitrate savings.
- In MPEG-4 ASP, a fade-to-black is usually best coded as a series
- of expensive I-frames; using weighted prediction in B-frames
- makes it possible to turn at least some of these into much smaller
- B-frames.
- Encoding time cost is minimal, as no extra decisions need to be made.
- Also, contrary to what some people seem to guess, the decoder
- CPU requirements are not much affected by weighted prediction,
- all else being equal.
- </para>
- <para>
- Unfortunately, the current adaptive B-frame decision algorithm
- has a strong tendency to avoid B-frames during fades.
- Until this changes, it may be a good idea to add
- <option>nob_adapt</option> to your x264encopts, if you expect
- fades to have a large effect in your particular video
- clip.
- </para>
-</listitem>
-<listitem id="menc-feat-x264-encoding-options-speedvquality-threads">
- <para>
- <emphasis role="bold">threads</emphasis>:
- This option allows to spawn threads to encode in parallel on multiple CPUs.
- You can manually select the number of threads to be created or, better, set
- <option>threads=auto</option> and let
- <systemitem class="library">x264</systemitem> detect how many CPUs are
- available and pick an appropriate number of threads.
- If you have a multi-processor machine, you should really consider using it
- as it can to increase encoding speed linearly with the number of CPU cores
- (about 94% per CPU core), with very little quality reduction (about 0.005dB
- for dual processor, about 0.01dB for a quad processor machine).
- </para>
-</listitem>
-</itemizedlist>
-</sect3>
-
-
-<sect3 id="menc-feat-x264-encoding-options-misc-preferences">
-<title>Options pertaining to miscellaneous preferences</title>
-
-<itemizedlist>
-<listitem>
- <para>
- <emphasis role="bold">Two pass encoding</emphasis>:
- Above, it was suggested to always use two pass encoding, but there
- are still reasons for not using it. For instance, if you are capturing
- live TV and encoding in realtime, you are forced to use single-pass.
- Also, one pass is obviously faster than two passes; if you use the
- exact same set of options on both passes, two pass encoding is almost
- twice as slow.
- </para>
- <para>
- Still, there are very good reasons for using two pass encoding. For
- one thing, single pass ratecontrol is not psychic, and it often makes
- unreasonable choices because it cannot see the big picture. For example,
- suppose you have a two minute long video consisting of two distinct
- halves. The first half is a very high-motion scene lasting 60 seconds
- which, in isolation, requires about 2500kbps in order to look decent.
- Immediately following it is a much less demanding 60-second scene
- that looks good at 300kbps. Suppose you ask for 1400kbps on the theory
- that this is enough to accommodate both scenes. Single pass ratecontrol
- will make a couple of "mistakes" in such a case. First of all, it
- will target 1400kbps in both segments. The first segment may end up
- heavily overquantized, causing it to look unacceptably and unreasonably
- blocky. The second segment will be heavily underquantized; it may look
- perfect, but the bitrate cost of that perfection will be completely
- unreasonable. What is even harder to avoid is the problem at the
- transition between the two scenes. The first seconds of the low motion
- half will be hugely over-quantized, because the ratecontrol is still
- expecting the kind of bitrate requirements it met in the first half
- of the video. This "error period" of heavily over-quantized low motion
- will look jarringly bad, and will actually use less than the 300kbps
- it would have taken to make it look decent. There are ways to
- mitigate the pitfalls of single-pass encoding, but they may tend to
- increase bitrate misprediction.
- </para>
- <para>
- Multipass ratecontrol can offer huge advantages over a single pass.
- Using the statistics gathered from the first pass encode, the encoder
- can estimate, with reasonable accuracy, the "cost" (in bits) of
- encoding any given frame, at any given quantizer. This allows for
- a much more rational, better planned allocation of bits between the
- expensive (high-motion) and cheap (low-motion) scenes. See
- <option>qcomp</option> below for some ideas on how to tweak this
- allocation to your liking.
- </para>
- <para>
- Moreover, two passes need not take twice as long as one pass. You can
- tweak the options in the first pass for higher speed and lower quality.
- If you choose your options well, you can get a very fast first pass.
- The resulting quality in the second pass will be slightly lower because size
- prediction is less accurate, but the quality difference is normally much
- too small to be visible. Try, for example, adding
- <option>subq=1:frameref=1</option> to the first pass
- <option>x264encopts</option>. Then, on the second pass, use slower,
- higher-quality options:
- <option>subq=6:frameref=15:partitions=all:me=umh</option>
- </para>
-</listitem>
-<listitem><para>
- <emphasis role="bold">Three pass encoding</emphasis>?
- x264 offers the ability to make an arbitrary number of consecutive
- passes. If you specify <option>pass=1</option> on the first pass,
- then use <option>pass=3</option> on a subsequent pass, the subsequent
- pass will both read the statistics from the previous pass, and write
- its own statistics. An additional pass following this one will have
- a very good base from which to make highly accurate predictions of
- frame sizes at a chosen quantizer. In practice, the overall quality
- gain from this is usually close to zero, and quite possibly a third
- pass will result in slightly worse global PSNR than the pass before
- it. In typical usage, three passes help if you get either bad bitrate
- prediction or bad looking scene transitions when using only two passes.
- This is somewhat likely to happen on extremely short clips. There are
- also a few special cases in which three (or more) passes are handy
- for advanced users, but for brevity, this guide omits discussing those
- special cases.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">qcomp</emphasis>:
- <option>qcomp</option> trades off the number of bits allocated
- to "expensive" high-motion versus "cheap" low-motion frames. At
- one extreme, <option>qcomp=0</option> aims for true constant
- bitrate. Typically this would make high-motion scenes look completely
- awful, while low-motion scenes would probably look absolutely
- perfect, but would also use many times more bitrate than they
- would need in order to look merely excellent. At the other extreme,
- <option>qcomp=1</option> achieves nearly constant quantization parameter
- (QP). Constant QP does not look bad, but most people think it is more
- reasonable to shave some bitrate off of the extremely expensive scenes
- (where the loss of quality is not as noticeable) and reallocate it to
- the scenes that are easier to encode at excellent quality.
- <option>qcomp</option> is set to 0.6 by default, which may be slightly
- low for many peoples' taste (0.7-0.8 are also commonly used).
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">keyint</emphasis>:
- <option>keyint</option> is solely for trading off file seekability against
- coding efficiency. By default, <option>keyint</option> is set to 250. In
- 25fps material, this guarantees the ability to seek to within 10 seconds
- precision. If you think it would be important and useful to be able to
- seek within 5 seconds of precision, set <option>keyint=125</option>;
- this will hurt quality/bitrate slightly. If you care only about quality
- and not about seekability, you can set it to much higher values
- (understanding that there are diminishing returns which may become
- vanishingly low, or even zero). The video stream will still have seekable
- points as long as there are some scene changes.
-</para></listitem>
-<listitem>
- <para>
- <emphasis role="bold">deblock</emphasis>:
- This topic is going to be a bit controversial.
- </para>
- <para>
- H.264 defines a simple deblocking procedure on I-blocks that uses
- pre-set strengths and thresholds depending on the QP of the block
- in question.
- By default, high QP blocks are filtered heavily, and low QP blocks
- are not deblocked at all.
- The pre-set strengths defined by the standard are well-chosen and
- the odds are very good that they are PSNR-optimal for whatever
- video you are trying to encode.
- The <option>deblock</option> allow you to specify offsets to the preset
- deblocking thresholds.
- </para>
- <para>
- Many people seem to think it is a good idea to lower the deblocking
- filter strength by large amounts (say, -3).
- This is however almost never a good idea, and in most cases,
- people who are doing this do not understand very well how
- deblocking works by default.
- </para>
- <para>
- The first and most important thing to know about the in-loop
- deblocking filter is that the default thresholds are almost always
- PSNR-optimal.
- In the rare cases that they are not optimal, the ideal offset is
- plus or minus 1.
- Adjusting deblocking parameters by a larger amount is almost
- guaranteed to hurt PSNR.
- Strengthening the filter will smear more details; weakening the
- filter will increase the appearance of blockiness.
- </para>
- <para>
- It is definitely a bad idea to lower the deblocking thresholds if
- your source is mainly low in spacial complexity (i.e., not a lot
- of detail or noise).
- The in-loop filter does a rather excellent job of concealing
- the artifacts that occur.
- If the source is high in spacial complexity, however, artifacts
- are less noticeable.
- This is because the ringing tends to look like detail or noise.
- Human visual perception easily notices when detail is removed,
- but it does not so easily notice when the noise is wrongly
- represented.
- When it comes to subjective quality, noise and detail are somewhat
- interchangeable.
- By lowering the deblocking filter strength, you are most likely
- increasing error by adding ringing artifacts, but the eye does
- not notice because it confuses the artifacts with detail.
- </para>
- <para>
- This <emphasis role="bold">still</emphasis> does not justify
- lowering the deblocking filter strength, however.
- You can generally get better quality noise from postprocessing.
- If your H.264 encodes look too blurry or smeared, try playing with
- <option>-vf noise</option> when you play your encoded movie.
- <option>-vf noise=8a:4a</option> should conceal most mild
- artifacts.
- It will almost certainly look better than the results you
- would have gotten just by fiddling with the deblocking filter.
- </para>
-</listitem>
-</itemizedlist>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-x264-example-settings">
-<title>Encoding setting examples</title>
-
-<para>
-The following settings are examples of different encoding
-option combinations that affect the speed vs quality tradeoff
-at the same target bitrate.
-</para>
-
-<para>
-All the encoding settings were tested on a 720x448 @30000/1001 fps
-video sample, the target bitrate was 900kbps, and the machine was an
-AMD-64 3400+ at 2400 MHz in 64 bits mode.
-Each encoding setting features the measured encoding speed (in
-frames per second) and the PSNR loss (in dB) compared to the "very
-high quality" setting.
-Please understand that depending on your source, your machine type
-and development advancements, you may get very different results.
-</para>
-
-<informaltable frame="all">
-<tgroup cols="4">
-<thead>
-<row>
- <entry>Description</entry>
- <entry>Encoding options</entry>
- <entry>speed (in fps)</entry>
- <entry>Relative PSNR loss (in dB)</entry>
-</row>
-</thead>
-<tbody>
-<row>
- <entry>Very high quality</entry>
- <entry><option>subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b</option></entry>
- <entry>6fps</entry>
- <entry>0dB</entry>
-</row>
-<row>
- <entry>High quality</entry>
- <entry><option>subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b</option></entry>
- <entry>13fps</entry>
- <entry>-0.89dB</entry>
-</row>
-<row>
- <entry>Fast</entry>
- <entry><option>subq=4:bframes=2:b_pyramid:weight_b</option></entry>
- <entry>17fps</entry>
- <entry>-1.48dB</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</sect2>
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="menc-feat-video-for-windows">
-<title>
- Encoding with the <systemitem class="library">Video For Windows</systemitem>
- codec family
-</title>
-
-<para>
-Video for Windows provides simple encoding by means of binary video codecs.
-You can encode with the following codecs (if you have more, please tell us!)
-</para>
-
-<para>
-Note that support for this is very experimental and some codecs may not work
-correctly. Some codecs will only work in certain colorspaces, try
-<option>-vf format=bgr24</option> and <option>-vf format=yuy2</option>
-if a codec fails or gives wrong output.
-</para>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-enc-vfw-video-codecs">
-<title>Video for Windows supported codecs</title>
-
-<para>
-<informaltable frame="all">
-<tgroup cols="4">
-<thead>
-<row>
- <entry>Video codec file name</entry>
- <entry>Description (FourCC)</entry>
- <entry>md5sum</entry>
- <entry>Comment</entry>
-</row>
-</thead>
-<tbody>
-<row>
- <entry>aslcodec_vfw.dll</entry>
- <entry>Alparysoft lossless codec vfw (ASLC)</entry>
- <entry>608af234a6ea4d90cdc7246af5f3f29a</entry>
- <entry></entry>
-</row>
-<row>
- <entry>avimszh.dll</entry>
- <entry>AVImszh (MSZH)</entry>
- <entry>253118fe1eedea04a95ed6e5f4c28878</entry>
- <entry>needs <option>-vf format</option></entry>
-</row>
-<row>
- <entry>avizlib.dll</entry>
- <entry>AVIzlib (ZLIB)</entry>
- <entry>2f1cc76bbcf6d77d40d0e23392fa8eda</entry>
- <entry></entry>
-</row>
-<row>
- <entry>divx.dll</entry>
- <entry>DivX4Windows-VFW</entry>
- <entry>acf35b2fc004a89c829531555d73f1e6</entry>
- <entry></entry>
-</row>
-<row>
- <entry>huffyuv.dll</entry>
- <entry>HuffYUV (lossless) (HFYU)</entry>
- <entry>b74695b50230be4a6ef2c4293a58ac3b</entry>
- <entry></entry>
-</row>
-<row>
- <entry>iccvid.dll</entry>
- <entry>Cinepak Video (cvid)</entry>
- <entry>cb3b7ee47ba7dbb3d23d34e274895133</entry>
- <entry></entry>
-</row>
-<row>
- <entry>icmw_32.dll</entry>
- <entry>Motion Wavelets (MWV1)</entry>
- <entry>c9618a8fc73ce219ba918e3e09e227f2</entry>
- <entry></entry>
-</row>
-<row>
- <entry>jp2avi.dll</entry>
- <entry>ImagePower MJPEG2000 (IPJ2)</entry>
- <entry>d860a11766da0d0ea064672c6833768b</entry>
- <entry><option>-vf flip</option></entry>
-</row>
-<row>
- <entry>m3jp2k32.dll</entry>
- <entry>Morgan MJPEG2000 (MJ2C)</entry>
- <entry>f3c174edcbaef7cb947d6357cdfde7ff</entry>
- <entry></entry>
-</row>
-<row>
- <entry>m3jpeg32.dll</entry>
- <entry>Morgan Motion JPEG Codec (MJPEG)</entry>
- <entry>1cd13fff5960aa2aae43790242c323b1</entry>
- <entry></entry>
-</row>
-<row>
- <entry>mpg4c32.dll</entry>
- <entry>Microsoft MPEG-4 v1/v2</entry>
- <entry>b5791ea23f33010d37ab8314681f1256</entry>
- <entry></entry>
-</row>
-<row>
- <entry>tsccvid.dll</entry>
- <entry>TechSmith Camtasia Screen Codec (TSCC)</entry>
- <entry>8230d8560c41d444f249802a2700d1d5</entry>
- <entry>shareware error on windows</entry>
-</row>
-<row>
- <entry>vp31vfw.dll</entry>
- <entry>On2 Open Source VP3 Codec (VP31)</entry>
- <entry>845f3590ea489e2e45e876ab107ee7d2</entry>
- <entry></entry>
-</row>
-<row>
- <entry>vp4vfw.dll</entry>
- <entry>On2 VP4 Personal Codec (VP40)</entry>
- <entry>fc5480a482ccc594c2898dcc4188b58f</entry>
- <entry></entry>
-</row>
-<row>
- <entry>vp6vfw.dll</entry>
- <entry>On2 VP6 Personal Codec (VP60)</entry>
- <entry>04d635a364243013898fd09484f913fb</entry>
- <entry></entry>
-</row>
-<row>
- <entry>vp7vfw.dll</entry>
- <entry>On2 VP7 Personal Codec (VP70)</entry>
- <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry>
- <entry><option>-ffourcc VP70</option></entry>
-</row>
-<row>
- <entry>ViVD2.dll</entry>
- <entry>SoftMedia ViVD V2 codec VfW (GXVE)</entry>
- <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry>
- <entry></entry>
-</row>
-<row>
- <entry>msulvc06.DLL</entry>
- <entry>MSU Lossless codec (MSUD)</entry>
- <entry>294bf9288f2f127bb86f00bfcc9ccdda</entry>
- <entry>
- Decodable by <application>Window Media Player</application>,
- not <application>MPlayer</application> (yet).
- </entry>
-</row>
-<row>
- <entry>camcodec.dll</entry>
- <entry>CamStudio lossless video codec (CSCD)</entry>
- <entry>0efe97ce08bb0e40162ab15ef3b45615</entry>
- <entry>sf.net/projects/camstudio</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-
-The first column contains the codec names that should be passed after the
-<literal>codec</literal> parameter,
-like: <option>-xvfwopts codec=divx.dll</option>
-The FourCC code used by each codec is given in the parentheses.
-</para>
-
-<informalexample>
-<para>
-An example to convert an ISO DVD trailer to a VP6 flash video file
-using compdata bitrate settings:
-<screen>
-mencoder -dvd-device <replaceable>zeiram.iso</replaceable> dvd://7 -o <replaceable>trailer.flv</replaceable> \
--ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \
--lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \
--of lavf
-</screen>
-</para>
-</informalexample>
-</sect2>
-
-<sect2 id="menc-feat-video-for-windows-bitrate-settings">
-<title>Using vfw2menc to create a codec settings file.</title>
-
-<para>
-To encode with the Video for Windows codecs, you will need to set bitrate
-and other options. This is known to work on x86 on both *NIX and Windows.
-</para>
-<para>
-First you must build the <application>vfw2menc</application> program.
-It is located in the <filename class="directory">TOOLS</filename> subdirectory
-of the MPlayer source tree.
-To build on Linux, this can be done using <application>Wine</application>:
-<screen>winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32</screen>
-
-To build on Windows in <application>MinGW</application> or
-<application>Cygwin</application> use:
-<screen>gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32</screen>
-
-To build on <application>MSVC</application> you will need getopt.
-Getopt can be found in the original <application>vfw2menc</application>
-archive available at:
-The <ulink url="http://oss.netfarm.it/mplayer-win32.php">MPlayer on win32</ulink> project.
-</para>
-<informalexample>
-<para>
-Below is an example with the VP6 codec.
-<screen>
-vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf
-</screen>
-This will open the VP6 codec dialog window.
-Repeat this step for the second pass
-and use <option>-s <replaceable>secondpass.mcf</replaceable></option>.
-</para>
-</informalexample>
-<para>
-Windows users can use
-<option>-xvfwopts codec=vp6vfw.dll:compdata=dialog</option> to have
-the codec dialog display before encoding starts.
-</para>
-</sect2>
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="menc-feat-quicktime-7">
-<title>Using <application>MEncoder</application> to create
-<application>QuickTime</application>-compatible files</title>
-
-
-<sect2 id="menc-feat-quicktime-7-why-use-it">
-<title>Why would one want to produce <application>QuickTime</application>-compatible Files?</title>
-
-<para>
- There are several reasons why producing
- <application>QuickTime</application>-compatible files can be desirable.
-</para>
-<itemizedlist>
-<listitem><para>
- You want any computer illiterate to be able to watch your encode on
- any major platform (Windows, Mac OS X, Unices &hellip;).
-</para></listitem>
-<listitem><para>
- <application>QuickTime</application> is able to take advantage of more
- hardware and software acceleration features of Mac OS X than
- platform-independent players like <application>MPlayer</application>
- or <application>VLC</application>.
- That means that your encodes have a chance to be played smoothly by older
- G4-powered machines.
-</para></listitem>
-<listitem><para>
- <application>QuickTime</application> 7 supports the next-generation codec H.264,
- which yields significantly better picture quality than previous codec
- generations (MPEG-2, MPEG-4 &hellip;).
-</para></listitem>
-</itemizedlist>
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-constraints">
-<title><application>QuickTime</application> 7 limitations</title>
-
-<para>
- <application>QuickTime</application> 7 supports H.264 video and AAC audio,
- but it does not support them muxed in the AVI container format.
- However, you can use <application>MEncoder</application> to encode
- the video and audio, and then use an external program such as
- <application>mp4creator</application> (part of the
- <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>)
- to remux the video and audio tracks into an MP4 container.
-</para>
-
-<para>
- <application>QuickTime</application>'s support for H.264 is limited,
- so you will need to drop some advanced features.
- If you encode your video with features that
- <application>QuickTime</application> 7 does not support,
- <application>QuickTime</application>-based players will show you a pretty
- white screen instead of your expected video.
-</para>
-
-<itemizedlist>
-<listitem><para>
- <emphasis role="bold">B-frames</emphasis>:
- <application>QuickTime</application> 7 supports a maximum of 1 B-frame, i.e.
- <option>-x264encopts bframes=1</option>. This means that
- <option>b_pyramid</option> and <option>weight_b</option> will have no
- effect, since they require <option>bframes</option> to be greater than 1.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Macroblocks</emphasis>:
- <application>QuickTime</application> 7 does not support 8x8 DCT macroblocks.
- This option (<option>8x8dct</option>) is off by default, so just be sure
- not to explicitly enable it. This also means that the <option>i8x8</option>
- option will have no effect, since it requires <option>8x8dct</option>.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Aspect ratio</emphasis>:
- <application>QuickTime</application> 7 does not support SAR (sample
- aspect ratio) information in MPEG-4 files; it assumes that SAR=1. Read
- <link linkend="menc-feat-quicktime-7-scale">the section on scaling</link>
- for a workaround. <application>QuickTime</application> X no longer has this
- limitation.
-</para></listitem>
-</itemizedlist>
-
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-crop">
-<title>Cropping</title>
-<para>
- Suppose you want to rip your freshly bought copy of "The Chronicles of
- Narnia". Your DVD is region 1,
- which means it is NTSC. The example below would still apply to PAL,
- except you would omit <option>-ofps 24000/1001</option> and use slightly
- different <option>crop</option> and <option>scale</option> dimensions.
-</para>
-
-<para>
- After running <option>mplayer dvd://1</option>, you follow the process
- detailed in the section <link linkend="menc-feat-telecine">How to deal
- with telecine and interlacing in NTSC DVDs</link> and discover that it is
- 24000/1001 fps progressive video. This simplifies the process somewhat,
- since you do not need to use an inverse telecine filter such as
- <option>pullup</option> or a deinterlacing filter such as
- <option>yadif</option>.
-</para>
-
-<para>
- Next, you need to crop out the black bars from the top and bottom of the
- video, as detailed in <link linkend="menc-feat-dvd-mpeg4-example-crop">this</link>
- previous section.
-</para>
-
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-scale">
-<title>Scaling</title>
-
-<para>
- The next step is truly heartbreaking.
- <application>QuickTime</application> 7 does not support MPEG-4 videos
- with a sample aspect ratio other than 1, so you will need to upscale
- (which wastes a lot of disk space) or downscale (which loses some
- details of the source) the video to square pixels.
- Either way you do it, this is highly inefficient, but simply cannot
- be avoided if you want your video to be playable by
- <application>QuickTime</application> 7.
- <application>MEncoder</application> can apply the appropriate upscaling
- or downscaling by specifying respectively <option>-vf scale=-10:-1</option>
- or <option>-vf scale=-1:-10</option>.
- This will scale your video to the correct width for the cropped height,
- rounded to the closest multiple of 16 for optimal compression.
- Remember that if you are cropping, you should crop first, then scale:
-
- <screen>-vf crop=720:352:0:62,scale=-10:-1</screen>
-</para>
-
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-avsync">
-<title>A/V sync</title>
-
-<para>
- Because you will be remuxing into a different container, you should
- always use the <option>harddup</option> option to ensure that duplicated
- frames are actually duplicated in the video output. Without this option,
- <application>MEncoder</application> will simply put a marker in the video
- stream that a frame was duplicated, and rely on the client software to
- show the same frame twice. Unfortunately, this "soft duplication" does
- not survive remuxing, so the audio would slowly lose sync with the video.
-</para>
-
-<para>
- The final filter chain looks like this:
- <screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen>
-</para>
-
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-bitrate">
-<title>Bitrate</title>
-
-<para>
- As always, the selection of bitrate is a matter of the technical properties
- of the source, as explained
- <link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">here</link>, as
- well as a matter of taste.
- This movie has a fair bit of action and lots of detail, but H.264 video
- looks good at much lower bitrates than XviD or other MPEG-4 codecs.
- After much experimentation, the author of this guide chose to encode
- this movie at 900kbps, and thought that it looked very good.
- You may decrease bitrate if you need to save more space, or increase
- it if you need to improve quality.
-</para>
-
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-example">
-<title>Encoding example</title>
-
-<para>
- You are now ready to encode the video. Since you care about
- quality, of course you will be doing a two-pass encode. To shave off
- some encoding time, you can specify the <option>turbo</option> option
- on the first pass; this reduces <option>subq</option> and
- <option>frameref</option> to 1. To save some disk space, you can
- use the <option>ss</option> option to strip off the first few seconds
- of the video. (I found that this particular movie has 32 seconds of
- credits and logos.) <option>bframes</option> can be 0 or 1.
- The other options are documented in <link
- linkend="menc-feat-x264-encoding-options-speedvquality">Encoding with
- the <systemitem class="library">x264</systemitem> codec</link> and
- the man page.
-
- <screen>mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
--x264encopts pass=1:turbo:bitrate=900:bframes=1:\
-me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
--vf crop=720:352:0:62,scale=-10:-1,harddup \
--oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
--ofps 24000/1001</screen>
-
- If you have a multi-processor machine, don't miss the opportunity to
- dramatically speed-up encoding by enabling
- <link linkend="menc-feat-x264-encoding-options-speedvquality-threads">
- <systemitem class="library">x264</systemitem>'s multi-threading mode</link>
- by adding <option>threads=auto</option> to your <option>x264encopts</option>
- command-line.
-</para>
-
-<para>
- The second pass is the same, except that you specify the output file
- and set <option>pass=2</option>.
-
- <screen>mencoder dvd://1 <emphasis role="bold">-o narnia.avi</emphasis> -ss 32 -ovc x264 \
--x264encopts <emphasis role="bold">pass=2</emphasis>:turbo:bitrate=900:frameref=5:bframes=1:\
-me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
--vf crop=720:352:0:62,scale=-10:-1,harddup \
--oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
--ofps 24000/1001</screen>
-</para>
-
-<para>
- The resulting AVI should play perfectly in
- <application>MPlayer</application>, but of course
- <application>QuickTime</application> can not play it because it does
- not support H.264 muxed in AVI.
- So the next step is to remux the video into an MP4 container.
-</para>
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-remux">
-<title>Remuxing as MP4</title>
-
-<para>
- There are several ways to remux AVI files to MP4. You can use
- <application>mp4creator</application>, which is part of the
- <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>.
-</para>
-
-<para>
- First, demux the AVI into separate audio and video streams using
- <application>MPlayer</application>.
-
- <screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
-mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen>
-
- The file names are important; <application>mp4creator</application>
- requires that AAC audio streams be named <systemitem>.aac</systemitem>
- and H.264 video streams be named <systemitem>.h264</systemitem>.
-</para>
-
-<para>
- Now use <application>mp4creator</application> to create a new
- MP4 file out of the audio and video streams.
-
- <screen>mp4creator -create=narnia.aac narnia.mp4
-mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4</screen>
-
- Unlike the encoding step, you must specify the framerate as a
- decimal (such as 23.976), not a fraction (such as 24000/1001).
-</para>
-
-<para>
- This <systemitem>narnia.mp4</systemitem> file should now be playable
- with any <application>QuickTime</application> 7 application, such as
- <application>QuickTime Player</application> or
- <application>iTunes</application>. If you are planning to view the
- video in a web browser with the <application>QuickTime</application>
- plugin, you should also hint the movie so that the
- <application>QuickTime</application> plugin can start playing it
- while it is still downloading. <application>mp4creator</application>
- can create these hint tracks:
-
- <screen>mp4creator -hint=1 narnia.mp4
-mp4creator -hint=2 narnia.mp4
-mp4creator -optimize narnia.mp4</screen>
-
- You can check the final result to ensure that the hint tracks were
- created successfully:
-
- <screen>mp4creator -list narnia.mp4</screen>
-
- You should see a list of tracks: 1 audio, 1 video, and 2 hint tracks.
-
-<screen>Track Type Info
-1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
-2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
-3 hint Payload mpeg4-generic for track 1
-4 hint Payload H264 for track 2
-</screen>
-</para>
-
-</sect2>
-
-<sect2 id="menc-feat-quicktime-7-metadata">
-<title>Adding metadata tags</title>
-
-<para>
- If you want to add tags to your video that show up in iTunes, you can use
- <ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink>.
-
- <screen>AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen>
-
- The <option>--metaEnema</option> option removes any existing metadata
- (<application>mp4creator</application> inserts its name in the
- "encoding tool" tag), and <option>--freefree</option> reclaims the
- space from the deleted metadata.
- The <option>--stik</option> option sets the type of video (such as Movie
- or TV Show), which iTunes uses to group related video files.
- The <option>--overWrite</option> option overwrites the original file;
- without it, <application>AtomicParsley</application> creates a new
- auto-named file in the same directory and leaves the original file
- untouched.
-</para>
-
-</sect2>
-
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="menc-feat-vcd-dvd">
-<title>Using <application>MEncoder</application>
- to create VCD/SVCD/DVD-compliant files</title>
-
-<sect2 id="menc-feat-vcd-dvd-constraints">
-<title>Format Constraints</title>
-
-<para>
-<application>MEncoder</application> is capable of creating VCD, SCVD
-and DVD format MPEG files using the
-<systemitem class="library">libavcodec</systemitem> library.
-These files can then be used in conjunction with
-<ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>
-or
-<ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink>
-to create discs that will play on a standard set-top player.
-</para>
-
-<para>
-The DVD, SVCD, and VCD formats are subject to heavy constraints.
-Only a small selection of encoded picture sizes and aspect ratios are
-available.
-If your movie does not already meet these requirements, you may have
-to scale, crop or add black borders to the picture to make it
-compliant.
-</para>
-
-
-<sect3 id="menc-feat-vcd-dvd-constraints-resolution">
-<title>Format Constraints</title>
-
-<informaltable frame="all">
-<tgroup cols="9">
-<thead>
-<row>
- <entry>Format</entry>
- <entry>Resolution</entry>
- <entry>V. Codec</entry>
- <entry>V. Bitrate</entry>
- <entry>Sample Rate</entry>
- <entry>A. Codec</entry>
- <entry>A. Bitrate</entry>
- <entry>FPS</entry>
- <entry>Aspect</entry>
-</row>
-</thead>
-<tbody>
-<row>
- <entry>NTSC DVD</entry>
- <entry>720x480, 704x480, 352x480, 352x240</entry>
- <entry>MPEG-2</entry>
- <entry>9800 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>AC-3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>30000/1001, 24000/1001</entry>
- <entry>4:3, 16:9 (only for 720x480)</entry>
-</row>
-<row>
- <entry>NTSC DVD</entry>
- <entry>352x240<footnote id='fn-rare-resolutions'><para>
- These resolutions are rarely used for DVDs because
- they are fairly low quality.</para></footnote></entry>
- <entry>MPEG-1</entry>
- <entry>1856 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>AC-3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>30000/1001, 24000/1001</entry>
- <entry>4:3, 16:9</entry>
-</row>
-<row>
- <entry>NTSC SVCD</entry>
- <entry>480x480</entry>
- <entry>MPEG-2</entry>
- <entry>2600 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>384 kbps (max)</entry>
- <entry>30000/1001</entry>
- <entry>4:3</entry>
-</row>
-<row>
- <entry>NTSC VCD</entry>
- <entry>352x240</entry>
- <entry>MPEG-1</entry>
- <entry>1150 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>224 kbps</entry>
- <entry>24000/1001, 30000/1001</entry>
- <entry>4:3</entry>
-</row>
-<row>
- <entry>PAL DVD</entry>
- <entry>720x576, 704x576, 352x576, 352x288</entry>
- <entry>MPEG-2</entry>
- <entry>9800 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>MP2,AC-3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>25</entry>
- <entry>4:3, 16:9 (only for 720x576)</entry>
-</row>
-<row>
- <entry>PAL DVD</entry>
- <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry>
- <entry>MPEG-1</entry>
- <entry>1856 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>MP2,AC-3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>25</entry>
- <entry>4:3, 16:9</entry>
-</row>
-<row>
- <entry>PAL SVCD</entry>
- <entry>480x576</entry>
- <entry>MPEG-2</entry>
- <entry>2600 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>384 kbps (max)</entry>
- <entry>25</entry>
- <entry>4:3</entry>
-</row>
-<row>
- <entry>PAL VCD</entry>
- <entry>352x288</entry>
- <entry>MPEG-1</entry>
- <entry>1152 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>224 kbps</entry>
- <entry>25</entry>
- <entry>4:3</entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-
-<para>
-If your movie has 2.35:1 aspect (most recent action movies), you will
-have to add black borders or crop the movie down to 16:9 to make a DVD or VCD.
-If you add black borders, try to align them at 16-pixel boundaries in
-order to minimize the impact on encoding performance.
-Thankfully DVD has sufficiently excessive bitrate that you do not have
-to worry too much about encoding efficiency, but SVCD and VCD are
-highly bitrate-starved and require effort to obtain acceptable quality.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-constraints-gop">
-<title>GOP Size Constraints</title>
-
-<para>
-DVD, VCD, and SVCD also constrain you to relatively low
-GOP (Group of Pictures) sizes.
-For 30 fps material the largest allowed GOP size is 18.
-For 25 or 24 fps, the maximum is 15.
-The GOP size is set using the <option>keyint</option> option.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-constraints-bitrate">
-<title>Bitrate Constraints</title>
-
-<para>
-VCD video is required to be CBR at 1152 kbps.
-This highly limiting constraint also comes along with an extremely low vbv
-buffer size of 327 kilobits.
-SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less
-restrictive vbv buffer size of 917 kilobits is allowed.
-DVD video bitrates may range anywhere up to 9800 kbps (though typical
-bitrates are about half that), and the vbv buffer size is 1835 kilobits.
-</para>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-vcd-dvd-output">
-<title>Output Options</title>
-
-<para>
-<application>MEncoder</application> has options to control the output
-format.
-Using these options we can instruct it to create the correct type of
-file.
-</para>
-
-<para>
-The options for VCD and SVCD are called xvcd and xsvcd, because they
-are extended formats.
-They are not strictly compliant, mainly because the output does not
-contain scan offsets.
-If you need to generate an SVCD image, you should pass the output file to
-<ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>.
-</para>
-
-<para>
-VCD:
-<screen>-of mpeg -mpegopts format=xvcd</screen>
-</para>
-
-<para>
-SVCD:
-<screen>-of mpeg -mpegopts format=xsvcd</screen>
-</para>
-
-<para>
-DVD (with timestamps on every frame, if possible):
-<screen>-of mpeg -mpegopts format=dvd:tsaf</screen>
-</para>
-
-<para>
-DVD with NTSC Pullup:
-<screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen>
-This allows 24000/1001 fps progressive content to be encoded at 30000/1001
-fps whilst maintaining DVD-compliance.
-</para>
-
-
-<sect3 id="menc-feat-vcd-dvd-output-aspect">
-<title>Aspect Ratio</title>
-
-<para>
-The aspect argument of <option>-lavcopts</option> is used to encode
-the aspect ratio of the file.
-During playback the aspect ratio is used to restore the video to the
-correct size.
-</para>
-
-<para>
-16:9 or "Widescreen"
-<screen>-lavcopts aspect=16/9</screen>
-</para>
-
-<para>
-4:3 or "Fullscreen"
-<screen>-lavcopts aspect=4/3</screen>
-</para>
-
-<para>
-2.35:1 or "Cinemascope" NTSC
-<screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen>
-To calculate the correct scaling size, use the expanded NTSC width of
-854/2.35 = 368
-</para>
-
-<para>
-2.35:1 or "Cinemascope" PAL
-<screen>-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9</screen>
-To calculate the correct scaling size, use the expanded PAL width of
-1024/2.35 = 432
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-a-v-sync">
-<title>Maintaining A/V sync</title>
-
-<para>
-In order to maintain audio/video synchronization throughout the encode,
-<application>MEncoder</application> has to drop or duplicate frames.
-This works rather well when muxing into an AVI file, but is almost
-guaranteed to fail to maintain A/V sync with other muxers such as MPEG.
-This is why it is necessary to append the
-<option>harddup</option> video filter at the end of the filter chain
-to avoid this kind of problem.
-You can find more technical information about <option>harddup</option>
-in the section
-<link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Improving muxing and A/V sync reliability</link>
-or in the manual page.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-output-srate">
-<title>Sample Rate Conversion</title>
-
-<para>
-If the audio sample rate in the original file is not the same as
-required by the target format, sample rate conversion is required.
-This is achieved using the <option>-srate</option> option and
-the <option>-af lavcresample</option> audio filter together.
-</para>
-
-<para>
-DVD:
-<screen>-srate 48000 -af lavcresample=48000</screen>
-</para>
-
-<para>
-VCD and SVCD:
-<screen>-srate 44100 -af lavcresample=44100</screen>
-</para>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-vcd-dvd-lavc">
-<title>Using libavcodec for VCD/SVCD/DVD Encoding</title>
-
-<sect3 id="menc-feat-vcd-dvd-lavc-intro">
-<title>Introduction</title>
-
-<para>
-<systemitem class="library">libavcodec</systemitem> can be used to
-create VCD/SVCD/DVD compliant video by using the appropriate options.
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-lavc-options">
-<title>lavcopts</title>
-
-<para>
-This is a list of fields in <option>-lavcopts</option> that you may
-be required to change in order to make a complaint movie for VCD, SVCD,
-or DVD:
-</para>
-
-<itemizedlist>
-<listitem><para>
- <emphasis role="bold">acodec</emphasis>:
- <option>mp2</option> for VCD, SVCD, or PAL DVD;
- <option>ac3</option> is most commonly used for DVD.
- PCM audio may also be used for DVD, but this is mostly a big waste of
- space.
- Note that MP3 audio is not compliant for any of these formats, but
- players often have no problem playing it anyway.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">abitrate</emphasis>:
- 224 for VCD; up to 384 for SVCD; up to 1536 for DVD, but commonly
- used values range from 192 kbps for stereo to 384 kbps for 5.1 channel
- sound.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vcodec</emphasis>:
- <option>mpeg1video</option> for VCD;
- <option>mpeg2video</option> for SVCD;
- <option>mpeg2video</option> is usually used for DVD but you may also use
- <option>mpeg1video</option> for CIF resolutions.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">keyint</emphasis>:
- Used to set the GOP size.
- 18 for 30fps material, or 15 for 25/24 fps material.
- Commercial producers seem to prefer keyframe intervals of 12.
- It is possible to make this much larger and still retain compatibility
- with most players.
- A <option>keyint</option> of 25 should never cause any problems.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vrc_buf_size</emphasis>:
- 327 for VCD, 917 for SVCD, and 1835 for DVD.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vrc_minrate</emphasis>:
- 1152, for VCD. May be left alone for SVCD and DVD.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vrc_maxrate</emphasis>:
- 1152 for VCD; 2500 for SVCD; 9800 for DVD.
- For SVCD and DVD, you might wish to use lower values depending on your
- own personal preferences and requirements.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vbitrate</emphasis>:
- 1152 for VCD;
- up to 2500 for SVCD;
- up to 9800 for DVD.
- For the latter two formats, vbitrate should be set based on personal
- preference.
- For instance, if you insist on fitting 20 or so hours on a DVD, you
- could use vbitrate=400.
- The resulting video quality would probably be quite bad.
- If you are trying to squeeze out the maximum possible quality on a DVD,
- use vbitrate=9800, but be warned that this could constrain you to less
- than an hour of video on a single-layer DVD.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">vstrict</emphasis>:
- <option>vstrict</option>=0 should be used to create DVDs.
- Without this option, <application>MEncoder</application> creates a
- stream that cannot be correctly decoded by some standalone DVD
- players.
-</para></listitem>
-</itemizedlist>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-lavc-examples">
-<title>Examples</title>
-
-<para>
-This is a typical minimum set of <option>-lavcopts</option> for
-encoding video:
-</para>
-<para>
-VCD:
-<screen>
--lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
-vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
-</screen>
-</para>
-
-<para>
-SVCD:
-<screen>
--lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
-keyint=15:acodec=mp2
-</screen>
-</para>
-
-<para>
-DVD:
-<screen>
--lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
-keyint=15:vstrict=0:acodec=ac3
-</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-lavc-advanced">
-<title>Advanced Options</title>
-
-<para>
-For higher quality encoding, you may also wish to add quality-enhancing
-options to lavcopts, such as <option>trell</option>,
-<option>mbd=2</option>, and others.
-Note that <option>qpel</option> and <option>v4mv</option>, while often
-useful with MPEG-4, are not usable with MPEG-1 or MPEG-2.
-Also, if you are trying to make a very high quality DVD encode, it may
-be useful to add <option>dc=10</option> to lavcopts.
-Doing so may help reduce the appearance of blocks in flat-colored areas.
-Putting it all together, this is an example of a set of lavcopts for a
-higher quality DVD:
-</para>
-
-<para>
-<screen>
--lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
-keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
-vqmin=1:lmin=1:dc=10:vstrict=0
-</screen>
-</para>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-vcd-dvd-audio">
-<title>Encoding Audio</title>
-
-<para>
-VCD and SVCD support MPEG-1 layer II audio, using one of
-<systemitem class="library">toolame</systemitem>,
-<systemitem class="library">twolame</systemitem>,
-or <systemitem class="library">libavcodec</systemitem>'s MP2 encoder.
-The libavcodec MP2 is far from being as good as the other two libraries,
-however it should always be available to use.
-VCD only supports constant bitrate audio (CBR) whereas SVCD supports
-variable bitrate (VBR), too.
-Be careful when using VBR because some bad standalone players might not
-support it too well.
-</para>
-
-<para>
-For DVD audio, <systemitem class="library">libavcodec</systemitem>'s
-AC-3 codec is used.
-</para>
-
-
-<sect3 id="menc-feat-vcd-dvd-audio-toolame">
-<title>toolame</title>
-
-<para>
-For VCD and SVCD:
-<screen>-oac toolame -toolameopts br=224</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-audio-twolame">
-<title>twolame</title>
-
-<para>
-For VCD and SVCD:
-<screen>-oac twolame -twolameopts br=224</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-audio-lavc">
-<title>libavcodec</title>
-
-<para>
-For DVD with 2 channel sound:
-<screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen>
-</para>
-
-<para>
-For DVD with 5.1 channel sound:
-<screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen>
-</para>
-
-<para>
-For VCD and SVCD:
-<screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen>
-</para>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-vcd-dvd-all">
-<title>Putting it all Together</title>
-
-<para>
-This section shows some complete commands for creating VCD/SVCD/DVD
-compliant videos.
-</para>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-pal-dvd">
-<title>PAL DVD</title>
-
-<para>
-<screen>
-mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
- -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \
- -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
-keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
-</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-ntsc-dvd">
-<title>NTSC DVD</title>
-
-<para>
-<screen>
-mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
- -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 \
- -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
-keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
-</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy">
-<title>PAL AVI Containing AC-3 Audio to DVD</title>
-
-<para>
-If the source already has AC-3 audio, use -oac copy instead of re-encoding it.
-<screen>
-mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
- -vf scale=720:576,harddup -ofps 25 \
- -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
-keyint=15:vstrict=0:aspect=16/9 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
-</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy">
-<title>NTSC AVI Containing AC-3 Audio to DVD</title>
-
-<para>
-If the source already has AC-3 audio, and is NTSC @ 24000/1001 fps:
-<screen>
-mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \
- -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\
- vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
-</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-pal-svcd">
-<title>PAL SVCD</title>
-
-<para>
-<screen>
-mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
- scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
-vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224:aspect=16/9 -ofps 25 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-ntsc-svcd">
-<title>NTSC SVCD</title>
-
-<para>
-<screen>
-mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
- scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
-vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224:aspect=16/9 -ofps 30000/1001 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
-</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-pal-vcd">
-<title>PAL VCD</title>
-
-<para>
-<screen>
-mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
- scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:\
-vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224:aspect=16/9 -ofps 25 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
-</screen>
-</para>
-</sect3>
-
-
-<sect3 id="menc-feat-vcd-dvd-all-ntsc-vcd">
-<title>NTSC VCD</title>
-
<para>
-<screen>
-mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
- scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:\
-vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224:aspect=16/9 -ofps 30000/1001 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
-</screen>
+OUTDATED CONTENT REMOVED
</para>
-</sect3>
-</sect2>
-</sect1>
</chapter>