<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<chapter id="mencoder">
<title>Encoding with <application>MEncoder</application></title>
<para>
For the complete list of available <application>MEncoder</application> options
and examples, please see the man page. For a series of hands-on examples and
detailed guides on using several encoding parameters, read the
<ulink url="../../tech/encoding-tips.txt">encoding-tips</ulink> that were
collected from several mailing list threads on mplayer-users. Search the
<ulink url="http://mplayerhq.hu/pipermail/mplayer-users/">archives</ulink>
for a wealth of discussions about all aspects of and problems related to
encoding with <application>MEncoder</application>.
</para>
<sect1 id="menc-feat-mpeg4">
<title>Encoding two pass MPEG-4 ("DivX")</title>
<para>
The name comes from the fact that this method encodes the file <emphasis>twice</emphasis>.
The first encoding (dubbed pass) creates some temporary files
(<filename>*.log</filename>) with a size of few megabytes, do not delete
them yet (you can delete the AVI). In the second pass, the two pass output
file is created, using the bitrate data from the temporary files. The
resulting file will have much better image quality. If this is the first
time you heard about this, you should consult some guides available on the
net.
</para>
<example>
<title>copy audio track</title>
<para>
Two pass encode of a DVD to an MPEG-4 ("DivX") AVI while copying
the audio track.
<screen>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o <replaceable>movie.avi</replaceable>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o <replaceable>movie.avi</replaceable>
</screen>
</para>
</example>
<example>
<title>encode audio track</title>
<para>
Two pass encode of a DVD to an MPEG-4 ("DivX") AVI while encoding
the audio track to MP3.
<screen>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o <replaceable>movie.avi</replaceable>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o <replaceable>movie.avi</replaceable>
</screen>
</para>
</example>
</sect1>
<sect1 id="menc-feat-mpeg">
<title>Encoding to MPEG format</title>
<para>
<application>MEncoder</application> can create MPEG (MPEG-PS) format output
files. It's probably useful only with
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>'s
<emphasis>mpeg1video</emphasis> codec, because players - except
<application>MPlayer</application> - expect MPEG-1 video, and MPEG-1 layer 2 (MP2)
audio streams in MPEG files.
</para>
<para>
This feature is not very useful right now, aside that it probably has many bugs,
but the more importantly because <application>MEncoder</application> currently
cannot encode MPEG-1 layer 2 (MP2) audio, which all other players expect in MPEG files.
</para>
<para>
To change <application>MEncoder</application>'s output file format,
use the <option>-of mpeg</option> option.
</para>
<para>
Example:
<screen>
mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy <replaceable>other_options</replaceable> <replaceable>media.avi</replaceable> -o <replaceable>output.mpg</replaceable>
</screen>
</para>
</sect1>
<sect1 id="menc-feat-rescale">
<title>Rescaling movies</title>
<para>
Often the need to resize movie images' size emerges. Its reasons can be
many: decreasing file size, network bandwidth,etc. Most people even do
rescaling when converting DVDs or SVCDs to DivX AVI. If you wish to rescale,
read the <link linkend="aspect">Preserving aspect ratio</link> section.
</para>
<para>
The scaling process is handled by the <literal>scale</literal> video filter:
<option>-vf scale=<replaceable>width</replaceable>:<replaceable>height</replaceable></option>.
Its quality can be set with the <option>-sws</option> option.
If it's not specified, <application>MEncoder</application> will use 2: bicubic.
</para>
<para>
Usage:
<screen>
mencoder <replaceable>input.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -o <replaceable>output.avi</replaceable>
</screen>
</para>
</sect1>
<sect1 id="menc-feat-streamcopy">
<title>Stream copying</title>
<para>
<application>MEncoder</application> can handle input streams in two ways:
<emphasis role="bold">encode</emphasis> or <emphasis role="bold">copy</emphasis>
them. This section is about <emphasis role="bold">copying</emphasis>.
</para>
<itemizedlist>
<listitem><para>
<emphasis role="bold">Video stream</emphasis> (option <option>-ovc copy</option>):
nice stuff can be done :) Like, putting (not converting!) FLI or VIVO or
MPEG-1 video into an AVI file! Of course only
<application>MPlayer</application> can play such files :) And it probably
has no real life value at all. Rationally: video stream copying can be
useful for example when only the audio stream has to be encoded (like,
uncompressed PCM to MP3).
</para></listitem>
<listitem><para>
<emphasis role="bold">Audio stream</emphasis> (option <option>-oac copy</option>):
straightforward. It is possible to take an external audio file (MP3,
WAV) and mux it into the output stream. Use the
<option>-audiofile <replaceable>filename</replaceable></option> option
for this.
</para></listitem>
</itemizedlist>
</sect1>
<sect1 id="menc-feat-fix-avi">
<title>Fixing AVIs with broken index or interleaving</title>
<para>
Easiest thing. We simply copy the video and audio streams, and
<application>MEncoder</application> generates the index. Of course this cannot fix possible bugs in
the video and/or audio streams. It also fixes files with broken interleaving,
thus the <option>-ni</option> option won't be needed for them anymore.
</para>
<para>
Command:
<screen>
mencoder -idx <replaceable>input.avi</replaceable> -ovc copy -oac copy -o <replaceable>output.avi</replaceable><!--
--></screen>
</para>
<sect2 id="menc-feat-appending">
<title>Appen
|