Mercurial > mplayer.hg
diff DOCS/pl/encoding.html @ 9332:a604236b0dd6
Rename documentation directories to two-letter language codes.
author | diego |
---|---|
date | Sat, 08 Feb 2003 00:00:00 +0000 |
parents | DOCS/Polish/encoding.html@d5c692754cf2 |
children | a4c205109ef2 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/pl/encoding.html Sat Feb 08 00:00:00 2003 +0000 @@ -0,0 +1,467 @@ +<HTML> + +<HEAD> +<STYLE> + .text + {font-family : Verdana, Arial, Helvetica, sans-serif; + font-size : 14px;} +</STYLE> +</HEAD> + +<BODY BGCOLOR=white> + +<FONT CLASS="text"> + +<P><B><A NAME=2.4>2.4. Encoding with MEncoder</A></B></P> + +<P><B><A NAME=2.4.1>2.4.1. Overview</B></P> + +<P><B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder) is a simple movie encoder, +designed to encode MPlayer-playable movies +(<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET</B>) to other MPlayer-playable +formats (see below). It can encode with various codecs, like <B>DivX4</B> (1 or +2 passes), libavcodec, <B>PCM</B>/<B>MP3</B>/<B>VBRMP3</B> audio. Also has +stream copying and video resizing abilities.</P> + +<P><B><A NAME=2.4.2>2.4.2. Compiling</B></P> + +<P> + <UL> + <LI><B>OPTIONAL</B> - read <B>MPlayer</B>'s compilation instruction.</LI> + <LI><B>OPTIONAL (LINUX ONLY)</B> - download the newest <B>DivX4linux</B> libs + from <A HREF="http://avifile.sourceforge.net/download.htm">avifile.sourceforge.net</A>, + and have them PROPERLY installed. You need them if you want DivX4 + (1/2 pass) encoding.</LI> + <LI><B>OPTIONAL</B> - <A HREF="codecs.html#2.2.1.9">download and install + <B>XViD</B></A>. Very useful on non-Linux boxes, and/or when you need + faster encoding than DivX4, with approximately the same quality.</LI> + <LI><B>OPTIONAL</B> - for libavcodec support, install libavcodec as + described in the <A HREF="codecs.html#2.2.1.2">libavcodec section</A>.</LI> + <LI><B>OPTIONAL</B> - download and compile <B>libmp3lame</B> (from lame 3.89beta or lame CVS).<BR> + <B>WARNING : DO NOT COMPILE LAME WITH <U>GCC 2.96</U> ! It won't + work properly !</B><BR> + This + is needed for CBR/VBR MP3 audio encoding ability. Note that a single + <CODE>lame</CODE> binary isn't sufficient. BTW: the less optimization + you use for lame, the better the quality will be. You can test + quality by running <CODE>make test</CODE> after lame's compiling process + is over. The resulting number should be less than <B>30</B>. Don't + panic if it's <B>400</B> or so, you shouldn't heard any audible + quality decrease. Oh, and if your compiler doesn't even run <CODE>make test</CODE> ... + Well, delete that <B>GCC 2.96</B>.</LI> + <LI><B>OPTIONAL</B> - <CODE>libjpeg</CODE> and <CODE>libpng</CODE> - + as described in the <A HREF="documentation.html#1.3">Installation</A> + section</LI> + </UL> +</P> + +<P>You are ready. As you probably know, other encoding tools need the +<I>avifile</I> library installed. <B>MEncoder</B> doesn't need it at all.</P> + +<P><B><A NAME=2.4.3>2.4.3. MEncoder features</B></P> + +<P> + <UL> + <LI>encoding from the wide range of fileformats and decoders of <B>MPlayer</B></LI> + <LI>encoding to all the codecs of ffmpeg's + <A HREF=codecs.html#2.2.1.2>libavcodec</A></LI> + <LI>video encoding from <B>V4L compatible TV tuners</B></LI> + <LI>encoding/multiplexing to interleaved AVI files with proper index</LI> + <LI>creating files from external audio stream</LI> + <LI>1, 2 or 3 pass <B>DivX4</B> video</LI> + <LI><B>VBR</B> MP3 audio - <B>IMPORTANT NOTE</B> : VBR MP3 audio doesn't + always play nicely on windows players! On the other hand, currently + <B>MEncoder</B>'s CBR encoding is totally broken on win32 players :)</LI> + <LI>PCM audio</LI> + <LI>stream copying</LI> + <LI>input A/V synchronizing (PTS-based, can be disabled with -mc 0 option)</LI> + <LI>FPS correction with <CODE>-ofps</CODE> option (useful when encoding + 29.97fps VOB to 24fps AVI)</LI> + <LI>using our very powerful plugin system (crop, expand, flip, postprocess, + rotate, scale, rgb/yuv conversion)</LI> + <LI>can encode DVD/VOBsub <B>AND</B> text subtitles into the output file</LI> + </UL> +</P> + +<P><B><I>Planned features</I></B> : + <UL> + <LI>even wider variety of available en/decoding formats/codecs + (creating VOB files with DivX4/Indeo5/VIVO streams :)</LI> + <LI>audio encoding from v4l (DONE for FreeBSD ?)</LI> + </UL> +</P> + +<P><B><A NAME=2.4.3.1>2.4.3.1. Encoding 2 or 3-pass DivX4</B></P> + +<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 DivX4 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 -divx4opts br=1100 +-o movie.avi -pass 1<BR> + mencoder -dvd 2 -divx4opts br=1100 -o movie.avi -pass 2</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> + +<P> + <TABLE> + <TR> + <TD><FONT CLASS="text"> + <CODE>rm frameno.avi</CODE></TD> + <TD><FONT CLASS="text"> + <B>remove conflicting temporary file</B></TD> + </TR> + <TR> + <TD><FONT CLASS="text"> + <CODE>mencoder <file/DVD> -ovc frameno -o + frameno.avi</CODE></TD> + <TD><FONT CLASS="text"> + <B><U>First pass</U> : an audio-only avi file will be created, containing + ONLY 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.</B></TD> + </TR> + <TR> + <TD><FONT CLASS="text"> + <CODE>mencoder <file/DVD> -oac copy -pass 1 + -divx4opts br=<bitrate></CODE></TD> + <TD><FONT CLASS="text"> + <B><U>Second pass</U> : alias the first pass of DivX4 video encoding. + Optionally specify the video bitrate MEncoder printed at the end of the + previous pass.</B></TD> + </TR> + <TR> + <TD><FONT CLASS="text"> + <CODE>mencoder <file/DVD> -oac copy -pass 2 + -divx4opts br=<bitrate></CODE></TD> + <TD><FONT CLASS="text"> + <B><U>Third pass</U> : alias the second pass of DivX4 video encoding. + Optionally specify the video bitrate MEncoder printed at the end of the + previous pass. In this pass, audio from <CODE>frameno.avi</CODE> will be + inserted into the destination file.. and it's all ready!</B></TD> + </TR> + </TABLE> +</P> + +<P><B>Example for 3-pass encoding :</B></P> + +<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<BR> +<CODE> mencoder -dvd 2 + -divx4opts br=1100 -oac copy -o movie.avi -pass 1<BR> + mencoder -dvd 2 + -divx4opts br=1100 -oac copy -o movie.avi -pass 2</CODE> +</P> + +<P><U><B>2 or 3-pass encoding using internal libavcodec controler</B></U> : +Optionally you can use libavcodec's internal 2 or 3-pass mode, it may gives you +better final rate accuracy than using the external, DivX4-inspired 2-pass rate +controler with libavcodec.<BR> +<UL> +<B>2-pass encoding</B> :<BR> +<CODE>rm -f lavc_stats.txt<BR> +mencoder -dvd 2 -ovc lavc -lacvopts vpass=1 (audio-options) -o movie.avi<BR> +mencoder -dvd 2 -ovc lavc -lacvopts vpass=2 (audio-options) -o movie.avi</CODE><BR> +<BR> +<B>3-pass encoding</B> :<BR> +<CODE>rm -f frameno.avi lavc_stats.txt<BR> +mencoder -dvd 2 -ovc frameno (audio-options) -o frameno.avi<BR> +mencoder -dvd 2 -ovc lavc -lacvopts vpass=1 -oac copy -o movie.avi<BR> +mencoder -dvd 2 -ovc lavc -lacvopts vpass=2 -oac copy -o movie.avi</CODE><BR> +</UL> +</P> + +<P><B><A NAME=2.4.3.2>2.4.3.2. Rescaling movies</B></P> + +<P>Often the need to resize movie images' size emerges. Its reasons can be many, + examples are decreasing output file size, encoding SVCDs to DivX. Ripped DVDs + are mostly rescaled, for example a 4:3 DVD should be 640x480, especially + when you want it to fit to 1 CD, and have good quality at the same time. + SVCDs have 480x480 size, and their header contains the aspect ratio the + player should use (Ex.: 480x480 + 4:3 = 640x480). However when encoding to + AVI (DivX) files, you have be aware that AVI headers don't store this + value. Thus, the only solution is rescaling.</P> + +<P>The scaling process is handled by the <I>'scale'</I> video filter: + <CODE>-vop scale=X:Y</CODE>. Its quality can be set with the + <CODE>-sws</CODE> option. If it's not specified, <B>MEncoder</B> will use 0 : + fast bilinear.</P> + +<P>Usage :<BR> +<CODE> mencoder sample-svcd.mpg -divx4opts br=1300 -vop scale=640:480 -sws 2 -o output.avi</CODE></P> + + +<P><B><A NAME=2.4.3.3>2.4.3.3. Stream copying</B></P> + +<P><B>MEncoder</B> can handle input streams in two ways : <B>encode</B> or + <B>copy</B> them. This section is about <B>copying</B>.</P> + +<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 <B>MPlayer</B> 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, AC3, Vorbis) and mux it + into the output stream. Use the <CODE>-audiofile <filename></CODE> + option for this.</LI> +</UL> +</P> + + +<P><B><A NAME=2.4.3.4>2.4.3.4. Fixing AVIs with broken index or interleaving</B></P> + +<P>Easiest thing. We simply copy the video and audio streams, and +<B>MEncoder</B> 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> + + +<P><B><A NAME=2.4.3.5>2.4.3.5. Encoding with the <I>libavcodec</I> codec family</B></P> + +<P><A HREF="codecs.html#2.2.1.2">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 :</P> + +<P> +<UL> + <LI>mjpeg - Motion JPEG</LI> + <LI>h263 - H263</LI> + <LI>h263p - H263 Plus</LI> + <LI>mpeg4 - DivX4</LI> + <LI>msmpeg4 - the old DivX</LI> + <LI>msmpeg4v2 - Micro$oft MPEG4 V2 (DivX alias MP43 predecessor)</LI> + <LI>rv10 - an old RealVideo codec</LI> + <LI>mpeg1video - MPEG1 video :)</LI> +</UL> +</P> + +<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</CODE></P> + + +<P><B><A NAME=2.4.3.6>2.4.3.6. Encoding from multiple input image files (JPEGs or PNGs)</B></P> + +<P><B>MEncoder</B> is capable of creating movies from one or more JPEG or PNG + files. With simple framecopy it can create MJPEG (Motion JPEG) or MPNG + (Motion PNG) files.</P> + +<P><B><I>Explanation of the process</I></B></P> + +<P><B>MEncoder</B> <I>decodes</I> the input image(s) with <CODE>libjpeg</CODE> + (when decoding PNGs, it will use <B>libpng</B>). +</P> + +<P><B>MEncoder</B> then feeds the decoded image to the chosen video compressor + (DivX4, Xvid, ffmpeg msmpeg4, etc...). Watch for the PNG decoder, as + currently it can output only to RGB formats, thus can't be used with codecs + that require YUV as input, like DivX4 or ffmpeg's msmpeg4.</P> + +<P><B><I>Examples</I></B></P> + +<P>The explanation of the <CODE>-mf</CODE> option can be found below in the + global <A HREF=#2.4.5>Options</A> section and in the manpage.</P> + +<P><I>Creating a DivX4 file from all the JPEG files in the current dir :</I><BR> + <CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o + output.avi</CODE></P> + +<P><I>Creating a DivX4 file from some JPEG files in the current dir :</I><BR> + <CODE>mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o + output.avi</CODE></P> + +<P><I>Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current dir :</I><BR> + <CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy + -o output.avi</CODE></P> + +<P><I>Creating an uncompressed file from all the PNG files in the current dir :</I><BR> + <CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -o + output.avi</CODE></P> + +<P><I>Creating a Motion PNG (MPNG) file from all the PNG files in the current dir :</I><BR> + <CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy + -o output.avi</CODE></P> + + +<P><B><A NAME=2.4.4>2.4.4. Syntax</B></P> + +<P> <CODE>mencoder [options] [input file] [options] ...</P> + + +<P><B><A NAME=2.4.5>2.4.5. Available options</B></P> + +<P>NOTE : for all available options, <B>read the manpage !</B></P> + +<P> + As <B>MEncoder</B> is built on the same codebase as <B>MPlayer</B>, there + are many <B>MPlayer</B> options that have function in <B>MEncoder</B> too! + See, you can use <CODE>-sid</CODE> to rip a DVD with subtitles, or + <CODE>-noidx</CODE> to disregard buggy index of input AVI. <B>Be smart!</B> +</P> + +<TABLE BORDER=1> +<TR> + <TD><FONT CLASS="text"> + <I>-ss</I> time</TD> + <TD><FONT CLASS="text"> + start encoding from the given time (can start only from keyframes !) + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-endpos</I> time</TD> + <TD><FONT CLASS="text"> + stop encoding at the given time. See the manpage for examples ! + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-o</I> filename</TD> + <TD><FONT CLASS="text"> + specify output filename + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-sws</I> 0-2</TD> + <TD><FONT CLASS="text"> + type of scaling method<BR> + 0 - fast bilinear<BR> + 1 - bilinear<BR> + 2 - bicubic (best quality)<BR> + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-ovc</I> codecname</TD> + <TD><FONT CLASS="text"> + Encode with the given codec (codec names are from codecs.conf). Examples:<BR> + <B>help</B> - get list of available codecs<BR> + <B>rawrgb</B> - ?<BR> + <B>copy</B> - no encoding, just copy the stream (only from AVI/ASF now)<BR> + <B>divx4</B> - encode to DivX4<BR> + <B>lavc</B> - encode with a codec from libavcodec<BR> + <B>vfw</B> - encode with a Windows DLL<BR> + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-oac</I> codecname</TD> + <TD><FONT CLASS="text"> + Encode with the given codec (codec names are from codecs.conf). Examples:<BR> + <B>help</B> - get list of available codecs<BR> + <B>copy</B> - no encoding, just copy the stream (only from AVI/ASF now)<BR> + <B>pcm</B> - encode to uncompressed PCM<BR> + <B>mp3lame</B> - encode to MP3 (using Lame)<BR> + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-mf</I> multifile options</TD> + <TD><FONT CLASS="text"> + Used when encoding from multiple JPEG files. Its sub-options are:<BR> + <B>on</B> - turns on multifile support<BR> + <B>w</B>=<value> - width of the output file<BR> + <B>h</B>=<value> - height of the output file<BR> + <B>fps</B>=<value> - fps of the output file<BR> + <B>type</B>=<value> - type of input files (available types : <CODE>jpeg</CODE>, <CODE>png</CODE>)<BR> + </TD> +</TR> + +<TR> + <TD><FONT CLASS="text"> + <I>-divx4opts</I></TD> + <TD><FONT CLASS="text"> + If encoding to DivX4, you can specify its parameters here, like:<BR> + <CODE>-divx4opts br=1800:deinterlace:key=250</CODE><BR> + Common options: <B>(for full list, check the manpage!)</B><BR> + <B>help</B> - get help<BR> + <B>br</B>=<value> - specify bitrate in kbit <4-16000> or bit <16001-24000000><BR> + <B>q</B>=<value> - quality (1-fastest, 5-best - default 5)<BR> + <B>key</B>=<value> - keyframe interval<BR> + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-lavcopts</I></TD> + <TD><FONT CLASS="text"> + If encoding with libavcodec, you can specify its parameters here, like:<BR> + <CODE>-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250</CODE><BR> + Common options: <B>(for full list, check the manpage!)</B><BR> + <B>help</B> - get help<BR> + <B>vcodec</B>=<value> - select videocodec (for the full list, see the libavcodec section above)<BR> + <B>vbitrate</B>=<value> - specify bitrate in kbit <4-16000> or bit <16001-24000000><BR> + <B>vhq</B> - high quality<BR> + <B>keyint</B>=<value> - keyframe interval<BR> + </TD> +</TR> +<TR> + <TD><FONT CLASS="text"> + <I>-lameopts</I></TD> + <TD><FONT CLASS="text"> + If encoding to MP3 with libmp3lame, you can specify its parameters here, like:<BR> + <CODE>-lameopts q=3</CODE><BR> + <CODE>-lameopts br=192:cbr</CODE><BR> + Common options: <B>(for full list, check the manpage!)</B><BR> + <B>help</B> - get help<BR> + <B>cbr</B> - select <B>CBR</B> MP3 (default is <B>VBR</B>)<BR> + <B>br</B>=<value> - specify bitrate in kbit <0-1024> (this is for <B>CBR</B> only!)<BR> + <B>q</B>=<value> - quality (0-highest, 9-fastest - default 0) (this is for <B>VBR</B> only!)<BR> + <B>vbr</B>=<value> - VBR sub-mode (3-ABR, best quality/speed) (this is for <B>VBR</B> only!)<BR> + </TD> +</TR> +</TABLE> + +<P><B><A NAME=2.4.6>2.4.6. Examples</B></P> + +<P>Using <B>MEncoder</B> is the easiest thing on Earth. See the following :</P> + +<P>Encoding from DVD, title 2 :<BR> + <CODE> mencoder -dvd 2 -o title2.avi</CODE></P> + +<P>The same, but with libavcodec family, MJPEG compression :<BR> + <CODE> mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -ffourcc mjpg</CODE></P> + +<P>Encoding from DVD, title 2, with rescaling :<BR> + <CODE> mencoder -dvd 2 -vop scale=640:480 -sws 2 -o title2.avi</CODE></P> + +<P>Encoding from HTTP :<BR> + <CODE> mencoder http://mplayer.hq/example.avi -o example.avi</CODE></P> + +<P>Encoding from a pipe :<BR> + <CODE> rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -</CODE></P> + +<P>Encoding multiple *.vob files :<BR> + <CODE> cat *.vob | mencoder <options> -</CODE></P> + +<P>Encoding from tuner (for tuner options <A HREF="documentation.html#2.5">see the TV input section !</A>) :<BR> + <CODE> mencoder -tv on:driver=v4l:width=640:height=480 <options></CODE></P> + +<P>For all available options, <B><I>check the MEncoder man page !</I></B> +<P> +</FONT> +</BODY> +</HTML>