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