changeset 15148:067f10ad6538

New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video obtained with MEncoder into different containers. Based on Rich's guide and some tips by Nico Sabi. Reviewed by The Wanderer, Dominik 'Rathann' Mierzejewski and Diego Biurrun
author gpoirier
date Wed, 13 Apr 2005 18:53:30 +0000
parents 9198a882c887
children 8319e8b0c437
files DOCS/xml/en/mencoder.xml
diffstat 1 files changed, 136 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/xml/en/mencoder.xml	Wed Apr 13 18:31:44 2005 +0000
+++ b/DOCS/xml/en/mencoder.xml	Wed Apr 13 18:53:30 2005 +0000
@@ -1290,6 +1290,142 @@
 </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, Matroska or NUT.
+  <application>MEncoder</application> is currently only able to 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>
+  MEncoder 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-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'll have to
+  use a less efficient codec such as MP3 or AC3.
+</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>
+  The 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 (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>.
+  Given that 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">