Mercurial > mplayer.hg
annotate DOCS/encoding.html @ 3929:569c256d3291
VBR windoz warning
| author | gabucino |
|---|---|
| date | Tue, 01 Jan 2002 18:15:14 +0000 |
| parents | 7510f142e7aa |
| children | 47fa35212fd1 |
| rev | line source |
|---|---|
| 2674 | 1 <HTML> |
| 2 <BODY BGCOLOR=white> | |
| 3 | |
| 4 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 5 | |
| 2745 | 6 <P><B><A NAME=2.4>2.4. Encoding with MEncoder</A></B></P> |
| 2674 | 7 |
| 3721 | 8 <P><B><A NAME=2.4.1>2.4.1. Overview</B></P> |
| 9 | |
| 2674 | 10 <P><B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder) is a simple movie encoder, |
| 11 designed to encode MPlayer-playable movies | |
| 12 (<B>AVI/DVD/VCD/VOB/MPG/MOV/VIV/NET</B>) to other MPlayer-playable formats (see | |
| 13 below). Currently it's in beta stage, and encodes only to <B>DivX4</B> (1 or 2 | |
| 14 passes) video, <B>PCM</B>/<B>MP3</B>/<B>VBRMP3</B> audio. Also has stream | |
| 15 copying abilities. In the future, there will be cropping, resizing filters, and | |
| 16 other interesting stuff.</P> | |
| 17 | |
| 3721 | 18 <P><B><A NAME=2.4.2>2.4.2. Compiling</B></P> |
| 19 | |
| 20 <P> | |
| 2674 | 21 <UL> |
| 3721 | 22 <LI><B>OPTIONAL</B> - read <B>MPlayer</B>'s compilation instructions, it contains info about |
| 3027 | 23 how to install <I>libdvdread</I> for <B>DVD</B> support, etc.</LI> |
| 3721 | 24 <LI><B>OPTIONAL</B> - download the newest <B>DivX4linux</B> libs |
| 3027 | 25 from <A HREF="http://avifile.sourceforge.net/download.htm">avifile.sourceforge.net</A>, |
| 26 and have them PROPERLY installed. This is needed for DivX4 (1/2 pass) | |
| 27 encoding. And since this is mandatory (now), MEncoder is Linux-only.</LI> | |
| 3721 | 28 <LI><B>OPTIONAL</B> - for libavcodec support, install libavcodec as |
| 29 described in the <A HREF="codecs.html#2.2.1.2">libavcodec section</A>.</LI> | |
| 30 <LI><B>OPTIONAL</B> - download and compile <B>libmp3lame</B> (from lame 3.89beta or lame CVS).<BR> | |
| 3211 | 31 <B>WARNING : DO NOT COMPILE LAME WITH <U>GCC 2.96</U> ! It won't |
| 32 work properly !</B><BR> | |
| 33 This | |
| 3027 | 34 is needed for CBR/VBR MP3 audio encoding ability. Note that a single |
| 35 <CODE>lame</CODE> binary isn't sufficient. BTW: the less optimization | |
| 36 you use for lame, the better the quality will be. You can test | |
| 37 quality by running <CODE>make test</CODE> after lame's compiling process | |
| 38 is over. The resulting number should be less than <B>30</B>. Don't | |
| 39 panic if it's <B>400</B> or so, you shouldn't heard any audible | |
| 40 quality decrease. Oh, and if your compiler doesn't even run <CODE>make test</CODE> ... | |
| 41 Well, delete that <B>GCC 2.96</B>.</LI> | |
|
2950
20157c719b2c
new features in TV input dox (chan, chanlist, norm, keys)
gabucino
parents:
2939
diff
changeset
|
42 <LI>use <CODE>./configure</CODE> with optional parameters as usual |
| 3027 | 43 (use <CODE>--enable-tv</CODE> to include V4L tuner grabbing code), and |
| 44 type : <CODE>make mencoder</CODE> , then <CODE>make install</CODE>.</LI> | |
| 2674 | 45 </UL> |
| 46 </P> | |
| 47 | |
| 48 <P>You are ready. As you probably know, other encoding tools need the | |
| 49 <I>avifile</I> library installed. <B>MEncoder</B> doesn't need it at all.</P> | |
| 50 | |
| 3721 | 51 <P><B><A NAME=2.4.3>2.4.3. MEncoder features</B></P> |
| 52 | |
| 53 <P> | |
| 2674 | 54 <UL> |
| 2868 | 55 <LI>encoding from the wide range of fileformats and decoders of <B>MPlayer</B></LI> |
| 56 <LI>encoding from <B>V4L compatible TV tuners</B></LI> | |
| 2674 | 57 <LI>encoding/multiplexing to interleaved AVI files with proper index</LI> |
| 58 <LI>1 or 2 pass <B>DivX4</B> video</LI> | |
| 3929 | 59 <LI><B>VBR</B> MP3 audio - <B>IMPORTANT NOTE</B> : VBR MP3 audio doesn't |
| 60 always play nicely on windows players! If you intend to encode AVIs | |
| 61 mainly for windows, encode with CBR!</LI> | |
| 2674 | 62 <LI>PCM audio</LI> |
| 3438 | 63 <LI>stream copying (CBR audio only)</LI> |
| 2674 | 64 <LI>input A/V synchronizing (PTS-based, can be disabled with -mc 0 option)</LI> |
| 65 <LI>FPS correction with <CODE>-ofps</CODE> option (useful when encoding | |
| 66 29.97fps VOB to 24fps AVI)</LI> | |
| 3438 | 67 <LI>movie rescaling</LI> |
| 2674 | 68 </UL> |
| 69 </P> | |
| 70 | |
| 71 <P><B><I>Planned features</I></B> : | |
| 72 <UL> | |
| 73 <LI>using audio from separate file (AC3, MP3, OGG)</LI> | |
| 74 <LI>VBR audio stream copy</LI> | |
| 75 <LI>even wider variety of available en/decoding formats/codecs | |
| 76 (creating VOB files with DivX4/Indeo5/VIVO streams :)</LI> | |
| 77 </UL> | |
| 78 </P> | |
| 79 | |
| 3721 | 80 <P><B><A NAME=2.4.3.1>2.4.3.1. Encoding 2-pass DivX4</B></P> |
|
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
81 |
|
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
82 <P>The name comes from the fact that this method encodes the file <I>twice</I>. |
| 3620 | 83 The first encoding (dubbed <I>pass</I>) creates some temporary files (*.log) with a |
| 84 size of few megabytes, do not delete them yet (you can delete the AVI). In the second pass, the | |
| 85 2-pass output file is created, using the bitrate data from the temporary files. The resulting | |
| 3027 | 86 file will have much better image quality. If this is the first time you heard |
| 87 about this, you should consult some guides available on the Net.</P> | |
|
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
88 |
|
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
89 <P>This example shows how to encode a DVD to a 2-pass DivX4 AVI. Just two |
|
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
90 commands are needed :<BR> |
| 2907 | 91 <CODE> mencoder -dvd 2 -ovc divx4 -oac mp3lame -divx4opts br=1100 |
|
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
92 -o movie.avi -pass 1<BR> |
| 2907 | 93 mencoder -dvd 2 -ovc divx4 -oac mp3lame -divx4opts br=1100 -o movie.avi -pass 2</CODE></P> |
| 2868 | 94 |
| 3721 | 95 <P><B><A NAME=2.4.3.2>2.4.3.2. Rescaling movies</B></P> |
| 3438 | 96 |
| 97 <P>Often the need to resize movie images' size emerges. Its reasons can be many, | |
| 98 examples are decreasing output file size, encoding SVCDs to DivX. Ripped DVDs | |
| 99 are mostly rescaled, for example a 4:3 DVD should be 640x480, especially | |
| 100 when you want it to fit to 1 CD, and have good quality at the same time. | |
| 101 SVCDs have 480x480 size, and their header contains the aspect ratio the | |
| 102 player should use (Ex.: 480x480 + 4:3 = 640x480). However when encoding to | |
| 103 AVI (DivX) files, you have be aware that AVI headers don't store this | |
| 104 value. Thus, the only solution is rescaling.</P> | |
| 105 | |
| 3912 | 106 <P><B>MEncoder</B> can scale input images if they come in YV12 format (for example: |
| 3859 | 107 ffdivx, odivx drivers, or mpeg1/2). The output size is specified with the |
| 108 <CODE>-x</CODE>, and <CODE>-y</CODE> options. Furthermore, there are 3 | |
| 109 rescaling filters in <B>MEncoder</B>, <I>0 | |
| 110 : fast bilinear</I>, <I>1 : bilinear</I>, <I>2 : bicubic</I> (best quality). | |
| 3438 | 111 They can be specified with the <CODE>-sws</CODE> option. If not specified, |
| 112 <B>MEncoder</B> will use 0 : fast bilinear.</P> | |
| 113 | |
| 114 <P>Rescaling is very simple :<BR> | |
| 115 <CODE> mencoder sample-svcd.mpg -divx4opts br=1300 -x 640 -y 480 -sws 2 -o output.avi</CODE></P> | |
| 116 | |
| 3721 | 117 <P><B><A NAME=2.4.3.3>2.4.3.3. Stream copying</B></P> |
| 2868 | 118 |
| 3438 | 119 <P><B>MEncoder</B> can handle input streams in two ways : <B>encode</B> or |
| 120 <B>copy</B> them. This section is about <B>copying</B>.</P> | |
| 2868 | 121 |
| 3438 | 122 <P> |
| 123 <UL> | |
| 124 <LI><B>Video stream</B> (option <CODE>-ovc copy</CODE>) : nice stuff can be done :)<BR> | |
| 125 Like, putting (not converting!) FLI or VIVO or MPEG1 video into an AVI file ! | |
| 126 Of course only <B>MPlayer</B> can play such files :) And it probably has no | |
| 127 real life value at all. Rationally : video stream copying can be useful for | |
| 128 example when only the audio stream has to be encoded (like, uncompressed PCM | |
| 129 to MP3).</LI> | |
| 130 | |
| 131 <LI><B>Audio stream</B> (option <CODE>-oac copy</CODE>) : straightforward.</LI> | |
| 132 </UL> | |
| 133 </P> | |
| 134 | |
| 3721 | 135 <P><B><A NAME=2.4.3.4>2.4.3.4. Fixing AVIs with broken index</B></P> |
| 3583 | 136 |
| 137 <P>Easiest thing. We simply copy the video and audio streams, and | |
| 138 <B>MEncoder</B> generates the index. Of course this cannot fix possible bugs in | |
| 139 the video and/or audio streams.</P> | |
| 140 | |
| 141 <P>Command : <CODE>mencoder input.avi -ovc copy -oac copy -o output.avi</CODE></P> | |
| 142 | |
| 3721 | 143 |
| 144 <P><B><A NAME=2.4.3.5>2.4.3.5. Encoding with the <I>libavcodec</I> codec family</B></P> | |
| 145 | |
| 3929 | 146 <P><A HREF="codecs.html#2.2.1.2">libavcodec</A> provides simple encoding to a |
| 147 lot of interesting video and audio formats (currently its audio codecs are | |
| 148 unsupported). You can encode to the following codecs :</P> | |
| 3721 | 149 |
| 150 <P> | |
| 151 <UL> | |
| 152 <LI>mjpeg - Motion JPEG</LI> | |
| 3774 | 153 <LI>h263 - H263</LI> |
| 3721 | 154 <LI>h263p - H263 Plus</LI> |
| 155 <LI>mpeg4 - DivX4</LI> | |
| 156 <LI>msmpeg4 - the old DivX</LI> | |
| 157 <LI>rv10 - an old RealVideo codec</LI> | |
| 158 <LI>mpeg1video - MPEG1 video :)</LI> | |
| 159 </UL> | |
| 160 </P> | |
| 161 | |
| 162 <P>The first column contains the codec names that should be passed after the | |
| 163 <CODE>vcodec</CODE> config, like : <CODE>-lavcopts vcodec=msmpeg4</CODE></P> | |
| 164 | |
| 3912 | 165 <P>An example, with MJPEG compression :<BR> |
| 166 <CODE> mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -ffourcc mjpg</CODE></P> | |
| 167 | |
| 3721 | 168 <P><B><A NAME=2.4.4>2.4.4. Syntax</B></P> |
| 3438 | 169 |
| 170 <P> <CODE>mencoder [options] [input file] [options] ...</P> | |
| 171 | |
| 3721 | 172 <P><B><A NAME=2.4.5>2.4.5. Available options</B></P> |
| 2868 | 173 |
| 174 <P>NOTE : for all available options, <B>read the manpage !</B></P> | |
| 175 | |
| 176 <TABLE BORDER=0> | |
| 177 <TR> | |
| 178 <TD> </TD> | |
| 179 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 180 <I>-o</I> filename</TD> | |
| 181 <TD> </TD> | |
| 182 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 183 specify output filename | |
| 184 </TD> | |
| 185 </TR> | |
| 186 <TR> | |
| 187 <TD> </TD> | |
| 188 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 3287 | 189 <I>-x</I> width in pixels</TD> |
| 190 <TD> </TD> | |
| 191 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 192 rescale output video to given pixels width | |
| 193 </TD> | |
| 194 </TR> | |
| 195 <TR> | |
| 196 <TD> </TD> | |
| 197 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 198 <I>-y</I> height in pixels</TD> | |
| 199 <TD> </TD> | |
| 200 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 201 rescale output video to given pixels height | |
| 202 </TD> | |
| 203 </TR> | |
| 204 <TR> | |
| 205 <TD> </TD> | |
| 206 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 207 <I>-sws</I> 0-2</TD> | |
| 208 <TD> </TD> | |
| 209 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 210 type of scaling method<BR> | |
| 211 0 - fast bilinear<BR> | |
| 212 1 - bilinear<BR> | |
| 213 2 - bicubic (best quality)<BR> | |
| 214 </TD> | |
| 215 </TR> | |
| 216 <TR> | |
| 217 <TD> </TD> | |
| 218 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 2868 | 219 <I>-ovc</I> codecname</TD> |
| 220 <TD> </TD> | |
| 221 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 222 Encode with the given codec (codec names are from codecs.conf). Examples:<BR> | |
| 223 <B>help</B> - get list of available codecs<BR> | |
| 224 <B>copy</B> - no encoding, just copy the stream (only from AVI/ASF now)<BR> | |
| 225 <B>divx4</B> - encode to DivX4<BR> | |
| 3721 | 226 <B>lavc</B> - encode with a codec from libavcodec<BR> |
| 2868 | 227 </TD> |
| 228 </TR> | |
| 229 <TR> | |
| 230 <TD> </TD> | |
| 231 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 232 <I>-oac</I> codecname</TD> | |
| 233 <TD> </TD> | |
| 234 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 235 Encode with the given codec (codec names are from codecs.conf). Examples:<BR> | |
| 236 <B>help</B> - get list of available codecs<BR> | |
| 237 <B>copy</B> - no encoding, just copy the stream (only from AVI/ASF now)<BR> | |
| 238 <B>pcm</B> - encode to uncompressed PCM<BR> | |
| 239 <B>mp3lame</B> - encode to MP3 (using Lame)<BR> | |
| 240 </TD> | |
| 241 </TR> | |
| 242 <TR> | |
| 243 <TD> </TD> | |
| 244 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 245 <I>-divx4opts</I></TD> | |
| 246 <TD> </TD> | |
| 247 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 248 If encoding to DivX4, you can specify its parameters here, like:<BR> | |
| 249 <CODE>-divx4opts br=1800:deinterlace:key=250</CODE><BR> | |
| 250 Common options: <B>(for full list, check the manpage!)</B><BR> | |
| 251 <B>help</B> - get help<BR> | |
| 252 <B>br</B>=XXX - specify bitrate in kbit <4-16000> or bit <16001-24000000><BR> | |
| 253 <B>q</B>=XXXX - quality (1-fastest, 5-best - default 5)<BR> | |
| 3721 | 254 <B>key</B>=XXXX - keyframe interval<BR> |
| 255 </TD> | |
| 256 </TR> | |
| 257 <TR> | |
| 258 <TD> </TD> | |
| 259 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 260 <I>-lavcopts</I></TD> | |
| 261 <TD> </TD> | |
| 262 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 263 If encoding with libavcodec, you can specify its parameters here, like:<BR> | |
| 264 <CODE>-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250</CODE><BR> | |
| 265 Common options: <B>(for full list, check the manpage!)</B><BR> | |
| 266 <B>help</B> - get help<BR> | |
| 267 <B>vcodec</B>=XXX - select videocodec (for the full list, see the libavcodec section above)<BR> | |
| 268 <B>vbitrate</B>=XXX - specify bitrate in kbit <4-16000> or bit <16001-24000000><BR> | |
| 269 <B>vhq</B> - high quality<BR> | |
| 270 <B>keyint</B>=XXX - keyframe interval<BR> | |
| 2868 | 271 </TD> |
| 272 </TR> | |
| 273 <TR> | |
| 274 <TD> </TD> | |
| 275 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 276 <I>-lameopts</I></TD> | |
| 277 <TD> </TD> | |
| 278 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 279 If encoding to MP3 with libmp3lame, you can specify its parameters here, like:<BR> | |
| 280 <CODE>-lameopts q=3</CODE><BR> | |
| 281 <CODE>-lameopts br=192:cbr</CODE><BR> | |
| 282 Common options: <B>(for full list, check the manpage!)</B><BR> | |
| 283 <B>help</B> - get help<BR> | |
| 284 <B>cbr</B> - select <B>CBR</B> MP3 (default is <B>VBR</B>)<BR> | |
| 285 <B>br</B>=XXX - specify bitrate in kbit <0-1024> (this is for <B>CBR</B> only!)<BR> | |
| 286 <B>q</B>=XXXX - quality (0-highest, 9-fastest - default 0) (this is for <B>VBR</B> only!)<BR> | |
| 287 </TD> | |
| 288 </TR> | |
| 289 </TABLE> | |
|
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
290 |
| 3721 | 291 <P><B><A NAME=2.4.6>2.4.6. Examples</B></P> |
| 2674 | 292 |
| 293 <P>Using <B>MEncoder</B> is the easiest thing on Earth. See the following :</P> | |
| 294 | |
| 295 <P>Encoding from DVD, title 2 :<BR> | |
| 296 <CODE> mencoder -dvd 2 -o title2.avi</CODE></P> | |
| 297 | |
| 3721 | 298 <P>The same, but with libavcodec family, MJPEG compression :<BR> |
| 299 <CODE> mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -ffourcc mjpg</CODE></P> | |
| 300 | |
| 3438 | 301 <P>Encoding from DVD, title 2, with rescaling :<BR> |
| 302 <CODE> mencoder -dvd 2 -x 640 -y 480 -sws 2 -o title2.avi</CODE></P> | |
| 303 | |
| 2674 | 304 <P>Encoding from HTTP :<BR> |
| 305 <CODE> mencoder http://mplayer.hq/example.avi -o example.avi</CODE></P> | |
| 306 | |
|
2874
632032ff27bf
patch applied from Colin Marquardt <colin@marquardt-home.de>
gabucino
parents:
2868
diff
changeset
|
307 <P>Encoding from a pipe :<BR> |
| 2674 | 308 <CODE> rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -</CODE></P> |
| 309 | |
|
2874
632032ff27bf
patch applied from Colin Marquardt <colin@marquardt-home.de>
gabucino
parents:
2868
diff
changeset
|
310 <P>Encoding multiple *.vob files :<BR> |
|
632032ff27bf
patch applied from Colin Marquardt <colin@marquardt-home.de>
gabucino
parents:
2868
diff
changeset
|
311 <CODE> cat *.vob | mencoder <options> -</CODE></P> |
|
632032ff27bf
patch applied from Colin Marquardt <colin@marquardt-home.de>
gabucino
parents:
2868
diff
changeset
|
312 |
|
2950
20157c719b2c
new features in TV input dox (chan, chanlist, norm, keys)
gabucino
parents:
2939
diff
changeset
|
313 <P>Encoding from tuner (for tuner options <A HREF="documentation.html#2.5">see the TV input section !</A>) :<BR> |
| 3382 | 314 <CODE> mencoder -tv on:driver=v4l:width=640:height=480 <options></CODE></P> |
|
2950
20157c719b2c
new features in TV input dox (chan, chanlist, norm, keys)
gabucino
parents:
2939
diff
changeset
|
315 |
| 2674 | 316 <P>For all available options, <B><I>check the MEncoder man page !</I></B> |
| 317 <P> | |
| 318 </FONT> | |
| 319 </BODY> | |
| 320 </HTML> |
