diff options
author | 2003-10-11 07:58:55 +0000 | |
---|---|---|
committer | 2003-10-11 07:58:55 +0000 | |
commit | 8e0b9bf8186078fa2704b0fa81958a91f709dec2 (patch) | |
tree | 624d989db9c92a18645d9e39029e69f6df824dad /DOCS/en/encoding.html | |
parent | 9dd5ee3afdd1db370c858a04be1b3b67bbb02755 (diff) |
English HTML documentation retired (moved to Attic/)
Published in 2001 October 8 (MPlayer 0.50), it has spent 2 years in this form,
and has served its purpose very well.
- Thanks to LGB for starting the conversion from text
- Thanks to me for finishing it and doing further maintaining
- Thanks to Diego Biurrun for stepping in and giving great help in enhancing
and maintaining the documentation
- Thanks to the countless other people for sending patches and suggestions
Please drink 1 litre of cola in remembrance of the english HTML documentation.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11076 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS/en/encoding.html')
-rw-r--r-- | DOCS/en/encoding.html | 374 |
1 files changed, 0 insertions, 374 deletions
diff --git a/DOCS/en/encoding.html b/DOCS/en/encoding.html deleted file mode 100644 index 26befde98a..0000000000 --- a/DOCS/en/encoding.html +++ /dev/null @@ -1,374 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML> - -<HEAD> - <TITLE>Encoding - MEncoder - The Movie Encoder for Linux</TITLE> - <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css"> - <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> -</HEAD> - -<BODY> - - -<H1><A NAME="encoding">7. Encoding with MEncoder</A></H1> - -<P>For the complete list of available MEncoder 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 - <A HREF="../tech/encoding-tips.txt">encoding-tips</A> that were collected from - several mailing list threads on - <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">mplayer-users</A>. - Search the <A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">archives</A> - for a wealth of discussions about all aspects of and problems related to - encoding with MEncoder.</P> - - -<H2><A NAME="2pass">7.1 Encoding 2 or 3-pass MPEG-4 ("DivX")</A></H2> - -<P><U><B>2-pass encoding:</B></U> the name comes from the fact that this method - encodes the file <I>twice</I>. The first encoding (dubbed <I>pass</I>) - creates some temporary files (*.log) with a size of few megabytes, do not - delete them yet (you can delete the AVI). In the second pass, the 2-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.</P> - -<P>This example shows how to encode a DVD to a 2-pass MPEG-4 ("DIVX") AVI. Just - two commands are needed:<BR> - <CODE> rm frameno.avi</CODE> - remove this file, which - can come from a previous 3-pass encoding (it interferes with current - one)<BR> - <CODE> mencoder dvd://2 -ovc lavc -lavcopts - vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR> - mencoder dvd://2 -ovc lavc -lavcopts - vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P> - -<P><U><B>3-pass encoding:</B></U> this is an extension of 2-pass encoding, - where the audio encoding takes place in a separate pass. This method enables - estimation of recommended video bitrate in order to fit on a CD. Also, the - audio is encoded only once, unlike in 2-pass mode. The schematics:</P> - -<OL> - <LI>Remove conflicting temporary file: - <P><CODE>rm frameno.avi</CODE></P></LI> - <LI>First pass: - <P><CODE>mencoder <file/DVD> -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi</CODE></P> - <P>An audio-only avi file will be created, containing - <B>only</B> the requested audio stream. Don't forget <CODE>-lameopts</CODE>, - if you need to set it. If you were encoding a long movie, MEncoder - prints the recommended bitrate values for 650Mb, 700Mb, and 800Mb - destination sizes, after this pass finishes.</P></LI> - <LI>Second pass: - <P><CODE>mencoder <file/DVD> -oac copy - -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=<bitrate></CODE></P> - <P>This is the first pass of video encoding. - Optionally specify the video bitrate MEncoder printed at the end of - the previous pass.</P></LI> - <LI>Third pass: - <P><CODE>mencoder <file/DVD> -oac copy - -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=<bitrate></CODE></P> - <P>This is the second pass of video encoding. - Specify the same bitrate as in the previous pass unless you really know - what you are doing. In this pass, audio from <CODE>frameno.avi</CODE> - will be inserted into the destination file.. and it's all ready!</P></LI> -</OL> - -<H4>Example for 3-pass encoding:</H4> - -<P><CODE> rm frameno.avi</CODE> - remove this file, - which can come from a previous 3-pass encoding (it interferes with current - one)<BR> - <CODE> mencoder dvd://2 -ovc frameno - -o frameno.avi -oac mp3lame -lameopts vbr=3<BR> - mencoder dvd://2 -ovc lavc - -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR> - mencoder dvd://2 -ovc lavc - -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P> - - -<H2><A NAME="mpeg">7.2 Encoding to MPEG format</A></H2> - -<P>MEncoder can create MPEG (MPEG-PS) format output files. It's probably - useful only with <A HREF="codecs.html#libavcodec">libavcodec</A>'s - <I>mpeg1video</I> codec, because players - except MPlayer - expect MPEG1 - video, and MPEG1 layer 2 (MP2) audio streams in MPEG files.</P> - -<P>This feature is not very useful right now, aside that it probably has - many bugs, but the more importantly because MEncoder currently cannot encode - MPEG1 layer 2 (MP2) audio, which all other players expect in MPEG files.</P> - -<P>To change MEncoder's output file format, use the <CODE>-of mpeg</CODE> - option.</P> - -<P>Example:<BR> - <CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video - -oac copy <other options> media.avi -o output.mpg</CODE></P> - - -<H2><A NAME="rescaling">7.3 Rescaling movies</A></H2> - -<P>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. <B>This is bad.</B> - Instead of even you doing so, read the <A HREF="#aspect">Preserving - aspect ratio</A> section.</P> - -<P>The scaling process is handled by the <I>'scale'</I> video filter: - <CODE>-vf scale=width:height</CODE>. Its quality can be set with the - <CODE>-sws</CODE> option. If it's not specified, MEncoder will use 0: - fast bilinear.</P> - -<H4>Usage:</H4> - -<P><CODE> mencoder input.mpg -ovc lavc -lavcopts - vcodec=mpeg4 -vf scale=640:480 -oac copy -o - output.avi</CODE></P> - - -<H2><A NAME="copying">7.4 Stream copying</A></H2> - -<P>MEncoder can handle input streams in two ways: <B>encode</B> or - <B>copy</B> them. This section is about <B>copying</B>.</P> - -<UL> - <LI><B>Video stream</B> (option <CODE>-ovc copy</CODE>): nice stuff can be - done :)<BR> - Like, putting (not converting) FLI or VIVO or MPEG1 video into - an AVI file. Of course only MPlayer 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).</LI> - - <LI><B>Audio stream</B> (option <CODE>-oac copy</CODE>): straightforward. - It is possible to take an external audio file (MP3, WAV) and mux it - into the output stream. Use the <CODE>-audiofile <filename></CODE> - option for this.</LI> -</UL> - - -<H2><A NAME="fixing">7.5 Fixing AVIs with broken index or interleaving</A></H2> - -<P>Easiest thing. We simply copy the video and audio streams, and - MEncoder 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 <CODE>-ni</CODE> option won't be needed for them - anymore.</P> - -<P>Command: <CODE>mencoder -idx input.avi -ovc copy -oac copy -o output.avi</CODE></P> - - -<H3><A NAME="appending">7.5.1 Appending multiple AVI files</A></H3> - -<P>As a side-effect, the broken AVI fixer function enables MEncoder to append - 2 (or more) AVI files:</P> - -<P>Command: <CODE>cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi -</CODE></P> - -<P><B>Note:</B> This expects <CODE>1.avi</CODE> and <CODE>2.avi</CODE> to use the same codecs, resolution, - stream rate etc, and at least 1.avi must not be broken. You may need to fix - your input AVI files first, as described <A HREF="#fixing">above</A>.</P> - - -<H2><A NAME="libavcodec">7.6 Encoding with the libavcodec codec family</A></H2> - -<P><A HREF="codecs.html#libavcodec">libavcodec</A> provides simple encoding to a - lot of interesting video and audio formats (currently its audio codecs are - unsupported). You can encode to the following codecs (more or less up to date):</P> - -<UL> - <LI>mjpeg - Motion JPEG</LI> - <LI>ljpeg - Lossless JPEG</LI> - <LI>h263 - H263</LI> - <LI>h263p - H263 Plus</LI> - <LI>mpeg4 - ISO standard MPEG-4 (DivX 5, XVID compatible)</LI> - <LI>msmpeg4 - pre-standard MPEG-4 variant by MS, v3 (aka DivX3)</LI> - <LI>msmpeg4v2 - pre-standard MPEG-4 by MS, v2 (used in old asf files)</LI> - <LI>wmv1 - Windows Media Video, version 1 (aka WMV7)</LI> - <LI>wmv2 - Windows Media Video, version 2 (aka WMV8)</LI> - <LI>rv10 - an old RealVideo codec</LI> - <LI>mpeg1video - MPEG1 video</LI> - <LI>mpeg2video - MPEG2 video</LI> - <LI>huffyuv - lossless compression</LI> - <LI>asv1 - ASUS Video v1</LI> - <LI>asv2 - ASUS Video v2</LI> - <LI>ffv1 - FFmpeg's lossless video codec</LI> -</UL> - -<P>The first column contains the codec names that should be passed after the - <CODE>vcodec</CODE> config, like: <CODE>-lavcopts vcodec=msmpeg4</CODE></P> - -<P>An example, with MJPEG compression:<BR> - <CODE> mencoder dvd://2 -o title2.avi -ovc lavc - -lavcopts vcodec=mjpeg -oac copy</CODE></P> - - -<H2><A NAME="image_files">7.7 Encoding from multiple input image files (JPEGs, PNGs or TGAs)</A></H2> - -<P>MEncoder is capable of creating movies from one or more JPEG, PNG or TGA - files. With simple framecopy it can create MJPEG (Motion JPEG), MPNG - (Motion PNG) or MTGA (Motion TGA) files.</P> - -Explanation of the process: - -<OL> - <LI>MEncoder <I>decodes</I> the input image(s) with - <CODE>libjpeg</CODE> (when decoding PNGs, it will use <B>libpng</B>).</LI> - - <LI>MEncoder then feeds the decoded image to the chosen video compressor - (DivX4, XviD, ffmpeg msmpeg4, etc...).</LI> -</OL> - -<H4>Examples</H4> - -<P>The explanation of the <CODE>-mf</CODE> option can be found below in the - man page.</P> - -<P><I>Creating a DivX4 file from all the JPEG files in the current dir:</I><BR> - <CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 - -o output.avi \*.jpg</CODE></P> - -<P><I>Creating a DivX4 file from some JPEG files in the current dir:</I><BR> - <CODE>mencoder -mf on:w=800:h=600:fps=25 - -ovc divx4 -o output.avi frame001.jpg,frame002.jpg</CODE></P> - -<P><I>Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current dir:</I><BR> - <CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc copy - -o output.avi \*.jpg</CODE></P> - -<P><I>Creating an uncompressed file from all the PNG files in the current dir:</I><BR> - <CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb - -o output.avi \*.png</CODE></P> - -<P><B>Note:</B> Width must be integer multiple of 4, it's a limitation of the - RAW RGB AVI format.</P> - -<P><I>Creating a Motion PNG (MPNG) file from all the PNG files in the current dir:</I><BR> - <CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy - -o output.avi \*.png</CODE></P> - -<P><I>Creating a Motion TGA (MTGA) file from all the TGA files in the current dir:</I><BR> - <CODE>mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy - -o output.avi \*.tga</CODE></P> - - -<H2><A NAME="vobsub">7.8 Extracting DVD subtitles to a Vobsub file</A></H2> - -<P>MEncoder is capable of extracting subtitles from a DVD into - Vobsub fomat files. They consist of a pair of files ending in - <CODE>.idx</CODE> and <CODE>.sub</CODE> and are usually packaged in a single - <CODE>.rar</CODE> archive. MPlayer can play these with the - <CODE>-vobsub</CODE> and <CODE>-vobsubid</CODE> options.</P> - -<P>You specify the basename (i.e without the <CODE>.idx</CODE> or - <CODE>.sub</CODE> extension) of the output files with <CODE>-vobsubout</CODE> - and the index for this subtitle in the resulting files with - <CODE>-vobsuboutindex</CODE>.</P> - -<P>If the input is not from a DVD you should use <CODE>-ifo</CODE> to - indicate the <CODE>.ifo</CODE> file needed to construct the resulting - <CODE>.idx</CODE> file.</P> - -<P>If the input is not from a DVD and you do not have the <CODE>.ifo</CODE> - file you will need to use the <CODE>-vobsubid</CODE> option to let it know - what language id to put in the <CODE>.idx</CODE> file.</P> - -<P>Each run will append the running subtitle if the <CODE>.idx</CODE> and - <CODE>.sub</CODE> files already exist. So you should remove any before - starting.</P> - -<H4>Examples</H4> - -<P><I>Copying two subtitles from a DVD while doing 3-pass encoding</I><BR> - <CODE>rm subtitles.idx subtitles.sub</CODE><BR> - <CODE>mencoder dvd://1 -vobsubout subtitles -vobsuboutindex 0 - -sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR> - <CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=1</CODE><BR> - <CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=2 -vobsubout - subtitles -vobsuboutindex 1 -sid 5</CODE></P> - -<P><I>Copying a french subtitle from an MPEG file</I><BR> - <CODE>rm subtitles.idx subtitles.sub</CODE><BR> - <CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles - -vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P> - - -<H2><A NAME="aspect">7.9 Preserving aspect ratio</A></H2> - -<P>DVDs and SVCDs (i.e. MPEG1/2) files contain an aspect ratio value, - which describes how the player should scale the video stream, so humans - won't have egg heads (ex.: 480x480 + 4:3 = 640x480). However when encoding - to AVI (DivX) files, you have be aware that AVI headers don't store this - value. Rescaling the movie is disgusting and time consuming, there - has to be a better way!</P> - -<P>There is.</P> - -<P>MPEG4 has an unique feature: the video stream can contain - its needed aspect ratio. Yes, just like MPEG1/2 (DVD, SVCD) and H263 files. - Regretfully, there are <U>no</U> video players outside which support this - attribute of MPEG4. Except MPlayer.</P> - -<P>This feature can be used only with <A HREF="codecs.html#libavcodec"> - libavcodec</A>'s <CODE>mpeg4</CODE> codec. Keep in mind: although MPlayer - will correctly play the created file, other players will use the wrong - aspect ratio.</P> - -<P>You seriously should crop the black bands over and below the movie image. - See the man page for the usage of the <CODE>cropdetect</CODE> and - <CODE>crop</CODE> filters.</P> - -<H4>Usage:</H4> - -<P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts - vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o output.avi</CODE></P> - -<H2><A NAME="custommatrices">7.10 Custom inter/intra matrices</A></H2> - -<P>With this feature of <A HREF="codecs.html#libavcodec">libavcodec</A> you are - able to set custom inter (I-frames/key frames) and intra (P-frames/predicted - frames) matrices. It is supported by many of the codecs: <CODE>mpeg1video</CODE> - and <CODE>mpeg2video</CODE> are reported as working.</P> - -<P>A typical usage of this feature is to set the matrices preferred by the - <A HREF="http://www.kvcd.net/">KVCD</A> specifications.<BR><BR> - The <B>KVCD "Notch" Quantization Matrix</B>:<BR> - <I>Intra:</I> - <PRE> - 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 - </PRE> - <I>Inter:</I> - <PRE> - 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 - </PRE> -</P> - -<H4>Usage:</H4> - -<P><CODE>$ mencoder input.avi -o output.avi -oac copy -ovc lavc -lavcopts - inter_matrix=...:intra_matrix=...</CODE></P> - -<P><CODE>$ mencoder input.avi -ovc lavc -lavcopts - vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,<BR> - 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,<BR> - 29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79<BR> - :inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,<BR> - 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,<BR> - 36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg</CODE></P> - -</BODY> -</HTML> |