Mercurial > mplayer.hg
annotate DOCS/xml/en/mencoder.xml @ 15492:d2073ff48b5b
Fixes the vobsub extraction example
author | gpoirier |
---|---|
date | Mon, 16 May 2005 21:06:09 +0000 |
parents | fbda59d597ba |
children | 7bd5a7fb8a75 |
rev | line source |
---|---|
9675 | 1 <?xml version="1.0" encoding="iso-8859-1"?> |
10913
49b1a67e7381
Add revision keyword to english xml files, to ease translation synchronization
lumag
parents:
10869
diff
changeset
|
2 <!-- $Revision$ --> |
9675 | 3 <chapter id="mencoder"> |
11540 | 4 <title>Encoding with <application>MEncoder</application></title> |
9675 | 5 |
6 <para> | |
7 For the complete list of available <application>MEncoder</application> options | |
8 and examples, please see the man page. For a series of hands-on examples and | |
9 detailed guides on using several encoding parameters, read the | |
10 <ulink url="../../tech/encoding-tips.txt">encoding-tips</ulink> that were | |
15029 | 11 collected from several mailing list threads on MPlayer-users. Search the |
9675 | 12 <ulink url="http://mplayerhq.hu/pipermail/mplayer-users/">archives</ulink> |
13 for a wealth of discussions about all aspects of and problems related to | |
14 encoding with <application>MEncoder</application>. | |
15 </para> | |
16 | |
12400
903ac68f2bc8
divx --> lavc, spelling, more sensible section name
diego
parents:
12399
diff
changeset
|
17 <sect1 id="menc-feat-mpeg4"> |
14421 | 18 <title>Encoding two pass MPEG-4 ("DivX")</title> |
9675 | 19 |
20 <para> | |
21 The name comes from the fact that this method encodes the file <emphasis>twice</emphasis>. | |
22 The first encoding (dubbed pass) creates some temporary files | |
23 (<filename>*.log</filename>) with a size of few megabytes, do not delete | |
14421 | 24 them yet (you can delete the AVI). In the second pass, the two pass output |
9675 | 25 file is created, using the bitrate data from the temporary files. The |
26 resulting file will have much better image quality. If this is the first | |
27 time you heard about this, you should consult some guides available on the | |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
28 net. |
9675 | 29 </para> |
30 | |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
31 <example> |
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
32 <title>copy audio track</title> |
9675 | 33 <para> |
14421 | 34 Two pass encode of a DVD to an MPEG-4 ("DivX") AVI while copying |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
35 the audio track. |
9675 | 36 <screen> |
11710 | 37 mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o <replaceable>movie.avi</replaceable> |
38 mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o <replaceable>movie.avi</replaceable> | |
9675 | 39 </screen> |
40 </para> | |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
41 </example> |
9675 | 42 |
43 <example> | |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
44 <title>encode audio track</title> |
9675 | 45 <para> |
14421 | 46 Two pass encode of a DVD to an MPEG-4 ("DivX") AVI while encoding |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
47 the audio track to MP3. |
9675 | 48 <screen> |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
49 mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o <replaceable>movie.avi</replaceable> |
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
50 mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o <replaceable>movie.avi</replaceable> |
9675 | 51 </screen> |
52 </para> | |
53 </example> | |
54 </sect1> | |
55 | |
56 <sect1 id="menc-feat-mpeg"> | |
57 <title>Encoding to MPEG format</title> | |
58 <para> | |
59 <application>MEncoder</application> can create MPEG (MPEG-PS) format output | |
15329 | 60 files. It is probably useful only with |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
61 <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>'s |
10869 | 62 <emphasis>mpeg1video</emphasis> codec, because players - except |
14024 | 63 <application>MPlayer</application> - expect MPEG-1 video, and MPEG-1 layer 2 (MP2) |
10869 | 64 audio streams in MPEG files. |
9675 | 65 </para> |
66 | |
67 <para> | |
11680
f2f7c22847b3
added capital letter at the beginning of the sentence
paszczi
parents:
11540
diff
changeset
|
68 This feature is not very useful right now, aside that it probably has many bugs, |
11540 | 69 but the more importantly because <application>MEncoder</application> currently |
14024 | 70 cannot encode MPEG-1 layer 2 (MP2) audio, which all other players expect in MPEG files. |
9675 | 71 </para> |
72 | |
73 <para> | |
12578 | 74 To change <application>MEncoder</application>'s output file format, |
11540 | 75 use the <option>-of mpeg</option> option. |
9675 | 76 </para> |
77 | |
78 <para> | |
79 Example: | |
80 <screen> | |
11710 | 81 mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy <replaceable>other_options</replaceable> <replaceable>media.avi</replaceable> -o <replaceable>output.mpg</replaceable> |
9675 | 82 </screen> |
83 </para> | |
84 </sect1> | |
85 | |
86 | |
87 <sect1 id="menc-feat-rescale"> | |
88 <title>Rescaling movies</title> | |
89 | |
90 <para> | |
91 Often the need to resize movie images' size emerges. Its reasons can be | |
92 many: decreasing file size, network bandwidth,etc. Most people even do | |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
93 rescaling when converting DVDs or SVCDs to DivX AVI. If you wish to rescale, |
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
94 read the <link linkend="aspect">Preserving aspect ratio</link> section. |
9675 | 95 </para> |
96 | |
97 <para> | |
98 The scaling process is handled by the <literal>scale</literal> video filter: | |
9677 | 99 <option>-vf scale=<replaceable>width</replaceable>:<replaceable>height</replaceable></option>. |
9675 | 100 Its quality can be set with the <option>-sws</option> option. |
15329 | 101 If it is not specified, <application>MEncoder</application> will use 2: bicubic. |
9675 | 102 </para> |
103 | |
104 <para> | |
105 Usage: | |
106 <screen> | |
12484
58056bc98dd9
Remove 3-pass encoding guide (can break A/V sync), rescaling is not
diego
parents:
12400
diff
changeset
|
107 mencoder <replaceable>input.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -o <replaceable>output.avi</replaceable> |
9675 | 108 </screen> |
109 </para> | |
110 </sect1> | |
111 | |
112 | |
113 <sect1 id="menc-feat-streamcopy"> | |
114 <title>Stream copying</title> | |
115 | |
116 <para> | |
117 <application>MEncoder</application> can handle input streams in two ways: | |
118 <emphasis role="bold">encode</emphasis> or <emphasis role="bold">copy</emphasis> | |
119 them. This section is about <emphasis role="bold">copying</emphasis>. | |
120 </para> | |
121 | |
122 <itemizedlist> | |
123 <listitem><para> | |
124 <emphasis role="bold">Video stream</emphasis> (option <option>-ovc copy</option>): | |
125 nice stuff can be done :) Like, putting (not converting!) FLI or VIVO or | |
14024 | 126 MPEG-1 video into an AVI file! Of course only |
9675 | 127 <application>MPlayer</application> can play such files :) And it probably |
128 has no real life value at all. Rationally: video stream copying can be | |
129 useful for example when only the audio stream has to be encoded (like, | |
130 uncompressed PCM to MP3). | |
131 </para></listitem> | |
132 <listitem><para> | |
133 <emphasis role="bold">Audio stream</emphasis> (option <option>-oac copy</option>): | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
134 straightforward. It is possible to take an external audio file (MP3, |
10429 | 135 WAV) and mux it into the output stream. Use the |
9675 | 136 <option>-audiofile <replaceable>filename</replaceable></option> option |
137 for this. | |
138 </para></listitem> | |
139 </itemizedlist> | |
140 </sect1> | |
141 | |
142 | |
143 <sect1 id="menc-feat-enc-libavcodec"> | |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
144 <title>Encoding with the <systemitem class="library">libavcodec</systemitem> |
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
145 codec family</title> |
9675 | 146 |
147 <para> | |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
148 <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> |
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
149 provides simple encoding to a lot of interesting video and audio formats. |
11747 | 150 You can encode to the following codecs (more or less up to date): |
9675 | 151 |
152 <informaltable frame="all"> | |
153 <tgroup cols="2"> | |
154 <thead> | |
155 <row><entry>Codec name</entry><entry>Description</entry></row> | |
156 </thead> | |
157 <tbody> | |
158 <row><entry>mjpeg</entry><entry> | |
159 Motion JPEG | |
160 </entry></row> | |
10869 | 161 <row><entry>ljpeg</entry><entry> |
162 Lossless JPEG | |
163 </entry></row> | |
9675 | 164 <row><entry>h263</entry><entry> |
13111 | 165 H.263 |
9675 | 166 </entry></row> |
167 <row><entry>h263p</entry><entry> | |
13111 | 168 H.263+ |
9675 | 169 </entry></row> |
170 <row><entry>mpeg4</entry><entry> | |
14024 | 171 ISO standard MPEG-4 (DivX 5, XVID compatible) |
9675 | 172 </entry></row> |
173 <row><entry>msmpeg4</entry><entry> | |
14024 | 174 pre-standard MPEG-4 variant by MS, v3 (AKA DivX3) |
9675 | 175 </entry></row> |
176 <row><entry>msmpeg4v2</entry><entry> | |
14024 | 177 pre-standard MPEG-4 by MS, v2 (used in old asf files) |
9675 | 178 </entry></row> |
10869 | 179 <row><entry>wmv1</entry><entry> |
13222 | 180 Windows Media Video, version 1 (AKA WMV7) |
9675 | 181 </entry></row> |
10869 | 182 <row><entry>wmv2</entry><entry> |
13222 | 183 Windows Media Video, version 2 (AKA WMV8) |
10869 | 184 </entry></row> |
9675 | 185 <row><entry>rv10</entry><entry> |
186 an old RealVideo codec | |
187 </entry></row> | |
188 <row><entry>mpeg1video</entry><entry> | |
14024 | 189 MPEG-1 video |
10869 | 190 </entry></row> |
191 <row><entry>mpeg2video</entry><entry> | |
14024 | 192 MPEG-2 video |
9675 | 193 </entry></row> |
194 <row><entry>huffyuv</entry><entry> | |
195 lossless compression | |
196 </entry></row> | |
10869 | 197 <row><entry>asv1</entry><entry> |
198 ASUS Video v1 | |
199 </entry></row> | |
200 <row><entry>asv2</entry><entry> | |
201 ASUS Video v2 | |
202 </entry></row> | |
203 <row><entry>ffv1</entry><entry> | |
204 FFmpeg's lossless video codec | |
205 </entry></row> | |
9675 | 206 </tbody> |
207 </tgroup> | |
208 </informaltable> | |
209 | |
210 The first column contains the codec names that should be passed after the | |
211 <literal>vcodec</literal> config, like: <option>-lavcopts vcodec=msmpeg4</option> | |
212 </para> | |
213 | |
214 <informalexample> | |
215 <para> | |
216 An example, with MJPEG compression: | |
10184
b6c63ab184a4
Changed a few remaining -dvd and -vcd options to dvd:// and vcd://.
diego
parents:
10065
diff
changeset
|
217 <screen>mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen> |
9675 | 218 </para> |
219 </informalexample> | |
220 </sect1> | |
221 | |
222 | |
223 <sect1 id="menc-feat-enc-images"> | |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
224 <title>Encoding from multiple input image files (JPEG, PNG, TGA, SGI)</title> |
9675 | 225 |
226 <para> | |
227 <application>MEncoder</application> is capable of creating movies from one | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
228 or more JPEG, PNG or TGA files. With simple framecopy it can create MJPEG |
9675 | 229 (Motion JPEG), MPNG (Motion PNG) or MTGA (Motion TGA) files. |
230 </para> | |
231 | |
232 <orderedlist> | |
233 <title>Explanation of the process:</title> | |
234 <listitem><para> | |
235 <application>MEncoder</application> <emphasis>decodes</emphasis> the input image(s) with | |
236 <systemitem class="library">libjpeg</systemitem> (when decoding PNGs, it | |
237 will use <systemitem class="library">libpng</systemitem>). | |
238 </para></listitem> | |
239 <listitem><para> | |
240 <application>MEncoder</application> then feeds the decoded image to the | |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
241 chosen video compressor (DivX4, XviD, FFmpeg msmpeg4, etc.). |
9675 | 242 </para></listitem> |
243 </orderedlist> | |
244 | |
245 <formalpara> | |
246 <title>Examples</title> | |
247 <para> | |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
248 The explanation of the <option>-mf</option> option is in the man page. |
9675 | 249 |
250 <informalexample> | |
251 <para> | |
14024 | 252 Creating an MPEG-4 file from all the JPEG files in the current directory: |
9675 | 253 <screen> |
14093
3bf74bf969ff
Unify all image encoding examples and fix a typo (*.jpg vs *.png) noticed
diego
parents:
14024
diff
changeset
|
254 mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o <replaceable>output.avi</replaceable> |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
255 </screen> |
9675 | 256 </para> |
257 </informalexample> | |
258 | |
259 <informalexample> | |
260 <para> | |
14024 | 261 Creating an MPEG-4 file from some JPEG files in the current directory: |
9675 | 262 <screen> |
14093
3bf74bf969ff
Unify all image encoding examples and fix a typo (*.jpg vs *.png) noticed
diego
parents:
14024
diff
changeset
|
263 mencoder mf://<replaceable>frame001.jpg,frame002.jpg</replaceable> -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o <replaceable>output.avi</replaceable> |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
264 </screen> |
9675 | 265 </para> |
266 </informalexample> | |
267 | |
268 <informalexample> | |
269 <para> | |
270 Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current | |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
271 directory: |
9675 | 272 <screen> |
14093
3bf74bf969ff
Unify all image encoding examples and fix a typo (*.jpg vs *.png) noticed
diego
parents:
14024
diff
changeset
|
273 mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o <replaceable>output.avi</replaceable> |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
274 </screen> |
9675 | 275 </para> |
276 </informalexample> | |
277 | |
278 <informalexample> | |
279 <para> | |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
280 Creating an uncompressed file from all the PNG files in the current directory: |
9675 | 281 <screen> |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
282 mencoder mf:// -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o <replaceable>output.avi</replaceable> |
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
283 </screen> |
9675 | 284 </para> |
285 </informalexample> | |
286 | |
287 <note><para> | |
15329 | 288 Width must be integer multiple of 4, it is a limitation of the RAW RGB AVI format. |
9675 | 289 </para></note> |
290 | |
291 <informalexample> | |
292 <para> | |
293 Creating a Motion PNG (MPNG) file from all the PNG files in the current | |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
294 directory: |
9675 | 295 <screen> |
14093
3bf74bf969ff
Unify all image encoding examples and fix a typo (*.jpg vs *.png) noticed
diego
parents:
14024
diff
changeset
|
296 mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o <replaceable>output.avi</replaceable> <!-- |
9675 | 297 --></screen> |
298 </para> | |
299 </informalexample> | |
300 | |
301 <informalexample> | |
302 <para> | |
303 Creating a Motion TGA (MTGA) file from all the TGA files in the current | |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
304 directory: |
9675 | 305 <screen> |
12399
9403b245fcda
Obsolet -mf syntax replaced by mf://, based on a patch sent by Compn, bug
diego
parents:
11913
diff
changeset
|
306 mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o <replaceable>output.avi</replaceable><!-- |
9675 | 307 --></screen> |
308 </para> | |
309 </informalexample> | |
310 | |
311 </para> | |
312 </formalpara> | |
313 </sect1> | |
314 | |
315 | |
316 <sect1 id="menc-feat-extractsub"> | |
12615 | 317 <title>Extracting DVD subtitles to VOBsub file</title> |
9675 | 318 |
319 <para> | |
320 <application>MEncoder</application> is capable of extracting subtitles from | |
12615 | 321 a DVD into VOBsub formatted files. They consist of a pair of files ending in |
9675 | 322 <filename>.idx</filename> and <filename>.sub</filename> and are usually |
323 packaged in a single <filename>.rar</filename> archive. | |
324 <application>MPlayer</application> can play these with the | |
325 <option>-vobsub</option> and <option>-vobsubid</option> options. | |
326 </para> | |
327 | |
328 <para> | |
329 You specify the basename (i.e without the <filename>.idx</filename> or | |
330 <filename>.sub</filename> extension) of the output files with | |
331 <option>-vobsubout</option> and the index for this subtitle in the | |
332 resulting files with <option>-vobsuboutindex</option>. | |
333 </para> | |
334 | |
335 <para> | |
336 If the input is not from a DVD you should use <option>-ifo</option> to | |
337 indicate the <filename>.ifo</filename> file needed to construct the | |
338 resulting <filename>.idx</filename> file. | |
339 </para> | |
340 | |
341 <para> | |
342 If the input is not from a DVD and you do not have the | |
343 <filename>.ifo</filename> file you will need to use the | |
344 <option>-vobsubid</option> option to let it know what language id to put in | |
345 the <filename>.idx</filename> file. | |
346 </para> | |
347 | |
348 <para> | |
349 Each run will append the running subtitle if the <filename>.idx</filename> | |
350 and <filename>.sub</filename> files already exist. So you should remove any | |
351 before starting. | |
352 </para> | |
353 | |
354 <example> | |
14421 | 355 <title>Copying two subtitles from a DVD while doing two pass encoding</title> |
9675 | 356 <screen> |
357 rm subtitles.idx subtitles.sub | |
12776 | 358 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 |
12400
903ac68f2bc8
divx --> lavc, spelling, more sensible section name
diego
parents:
12399
diff
changeset
|
359 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5<!-- |
9675 | 360 --></screen> |
361 </example> | |
362 | |
363 <example> | |
364 <title>Copying a french subtitle from an MPEG file</title> | |
365 <screen> | |
366 rm subtitles.idx subtitles.sub | |
15492 | 367 mencoder <replaceable>movie.mpg</replaceable> -ifo <replaceable>movie.ifo</replaceable> -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1 -nosound -ovc copy |
368 </screen> | |
9675 | 369 </example> |
370 | |
371 </sect1> | |
372 | |
373 <sect1 id="aspect"> | |
374 <title>Preserving aspect ratio</title> | |
375 <para> | |
14024 | 376 DVDs and SVCDs (i.e. MPEG-1/2) files contain an aspect ratio value, which |
15329 | 377 describes how the player should scale the video stream, so humans will not |
9675 | 378 have egg heads (ex.: 480x480 + 4:3 = 640x480). However when encoding to AVI |
15329 | 379 (DivX) files, you have be aware that AVI headers do not store this value. |
10065
422876da049e
Error in the aspect ratio calculation, plus typos and rewordings.
diego
parents:
9677
diff
changeset
|
380 Rescaling the movie is disgusting and time consuming, there has to be a better |
422876da049e
Error in the aspect ratio calculation, plus typos and rewordings.
diego
parents:
9677
diff
changeset
|
381 way! |
9675 | 382 </para> |
383 | |
384 <para>There is</para> | |
385 | |
386 <para> | |
14024 | 387 MPEG-4 has an unique feature: the video stream can contain its needed aspect |
388 ratio. Yes, just like MPEG-1/2 (DVD, SVCD) and H.263 files. Regretfully, there are | |
9675 | 389 <emphasis role="bold">no</emphasis> video players outside which support this |
14024 | 390 attribute of MPEG-4, except <application>MPlayer</application>. |
9675 | 391 </para> |
392 | |
393 <para> | |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
394 This feature can be used only with |
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
395 <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>'s |
10869 | 396 <systemitem>mpeg4</systemitem> codec. Keep in mind: although |
397 <application>MPlayer</application> will correctly play the created file, | |
398 other players will use the wrong aspect ratio. | |
9675 | 399 </para> |
400 | |
401 <para> | |
402 You seriously should crop the black bands over and below the movie image. | |
10065
422876da049e
Error in the aspect ratio calculation, plus typos and rewordings.
diego
parents:
9677
diff
changeset
|
403 See the man page for the usage of the <systemitem>cropdetect</systemitem> and |
9675 | 404 <systemitem>crop</systemitem> filters. |
405 </para> | |
406 | |
407 <para> | |
10869 | 408 Usage |
11710 | 409 <screen>mencoder <replaceable>sample-svcd.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o <replaceable>output.avi</replaceable></screen> |
9675 | 410 </para> |
10869 | 411 </sect1> |
412 | |
413 <sect1 id="custommatrices"><title>Custom inter/intra matrices</title> | |
414 | |
415 <para> | |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
416 With this feature of |
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
417 <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> |
13022 | 418 you are able to set custom inter (I-frames/keyframes) and intra |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11820
diff
changeset
|
419 (P-frames/predicted frames) matrices. It is supported by many of the codecs: |
10869 | 420 <systemitem>mpeg1video</systemitem> and <systemitem>mpeg2video</systemitem> |
421 are reported as working. | |
422 </para> | |
423 | |
424 <para> | |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
425 A typical usage of this feature is to set the matrices preferred by the |
10869 | 426 <ulink url="http://www.kvcd.net/">KVCD</ulink> specifications. |
427 </para> | |
428 | |
429 <para> | |
430 The <emphasis role="bold">KVCD "Notch" Quantization Matrix:</emphasis> | |
431 </para> | |
432 | |
433 <para> | |
434 Intra: | |
435 <screen> | |
436 8 9 12 22 26 27 29 34 | |
437 9 10 14 26 27 29 34 37 | |
438 12 14 18 27 29 34 37 38 | |
439 22 26 27 31 36 37 38 40 | |
440 26 27 29 36 39 38 40 48 | |
441 27 29 34 37 38 40 48 58 | |
442 29 34 37 38 40 48 58 69 | |
443 34 37 38 40 48 58 69 79 | |
444 </screen> | |
445 | |
446 Inter: | |
447 <screen> | |
448 16 18 20 22 24 26 28 30 | |
449 18 20 22 24 26 28 30 32 | |
450 20 22 24 26 28 30 32 34 | |
451 22 24 26 30 32 32 34 36 | |
452 24 26 28 32 34 34 36 38 | |
453 26 28 30 32 34 36 38 40 | |
454 28 30 32 34 36 38 42 42 | |
455 30 32 34 36 38 40 42 44 | |
456 </screen> | |
457 </para> | |
458 | |
459 <para> | |
460 Usage: | |
461 <screen> | |
11710 | 462 $ mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=... |
10869 | 463 </screen> |
464 </para> | |
465 | |
466 <para> | |
467 <screen> | |
11710 | 468 $ mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts |
10869 | 469 vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37, |
470 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, | |
471 29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79 | |
472 :inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26, | |
473 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, | |
474 36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg | |
475 </screen> | |
476 </para> | |
9675 | 477 </sect1> |
478 | |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
479 <sect1 id="menc-feat-dvd-mpeg4"> |
14024 | 480 <title>Making a high quality MPEG-4 ("DivX") rip of a DVD movie</title> |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
481 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
482 <para> |
15034 | 483 One frequently asked question is "How do I make the highest quality rip for |
15010 | 484 a given size?". Another question is "How do I make the highest quality DVD |
15329 | 485 rip possible? I do not care about file size, I just want the best quality." |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
486 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
487 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
488 <para> |
15010 | 489 The latter question is perhaps at least somewhat wrongly posed. After all, if |
15329 | 490 you do not care about file size, why not simply copy the entire MPEG-2 video |
15010 | 491 stream from the the DVD? Sure, your AVI will end up being 5GB, give |
15329 | 492 or take, but if you want the best quality and do not care about size, |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
493 this is certainly your best option. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
494 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
495 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
496 <para> |
14024 | 497 In fact, the reason you want to transcode a DVD into MPEG-4 is |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
498 specifically because you <emphasis role="bold">do</emphasis> care about |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
499 file size. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
500 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
501 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
502 <para> |
15329 | 503 It is difficult to offer a cookbook recipe on how to create a very high |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
504 quality DVD rip. There are several factors to consider, and you should |
15329 | 505 understand these details or else you are likely to end up disappointed |
506 with your results. Below we will investigate some of these issues, and | |
507 then have a look at an example. We assume you are using | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
508 <systemitem class="library">libavcodec</systemitem> to encode the video, |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
509 although the theory applies to other codecs as well. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
510 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
511 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
512 <para> |
15010 | 513 If this seems to be too much for you, you should probably use one of the |
15034 | 514 many fine frontends that are listed in the |
515 <ulink url="http://mplayerhq.hu/homepage/design7/projects.html#mencoder_frontends">MEncoder section</ulink> | |
516 of our related projects page. | |
15010 | 517 That way, you should be able to achieve high quality rips without too much |
518 thinking, because most of those tools are designed to take clever decisions | |
519 for you. | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
520 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
521 |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
522 <sect2 id="menc-feat-dvd-mpeg4-preparing-encode"> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
523 <title>Preparing to encode: Identifying source material and framerate</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
524 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
525 Before you even think about encoding a movie, you need to take |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
526 several preliminary steps. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
527 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
528 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
529 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
530 The first and most important step before you encode should be |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
531 determining what type of content you are dealing with. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
532 If your source material comes from DVD or broadcast/cable/satellite |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
533 TV, it will be stored in one of two formats: NTSC for North |
15467 | 534 America and Japan, PAL for Europe, etc. |
535 It is important to realize, however, that this is just the formatting for | |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
536 presentation on a television, and often does |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
537 <emphasis role="bold">not</emphasis> correspond to the |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
538 original format of the movie. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
539 In order to produce a suitable encode, you need to know the original |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
540 format. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
541 Failure to take this into account will result in ugly combing |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
542 (interlacing) artifacts in your encode. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
543 Besides being ugly, the artifacts also harm coding efficiency: |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
544 You will get worse quality per bitrate. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
545 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
546 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
547 <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps"> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
548 <title>Identifying source framerate</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
549 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
550 Here is a list of common types of source material, where you are |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
551 likely to find them, and their properties: |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
552 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
553 <itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
554 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
555 <emphasis role="bold">Standard Film</emphasis>: Produced for |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
556 theatrical display at 24fps. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
557 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
558 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
559 <emphasis role="bold">PAL video</emphasis>: Recorded with a PAL |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
560 video camera at 50 fields per second. |
15467 | 561 A field consists of just the odd- or even-numbered lines of a |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
562 frame. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
563 Television was designed to refresh these in alternation as a |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
564 cheap form of analog compression. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
565 The human eye supposedly compensates for this, but once you |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
566 understand interlacing you will learn to see it on TV too and |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
567 never enjoy TV again. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
568 Two fields do <emphasis role="bold">not</emphasis> make a |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
569 complete frame, because they are captured 1/50 of a second apart |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
570 in time, and thus they do not line up unless there is no motion. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
571 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
572 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
573 <emphasis role="bold">NTSC Video</emphasis>: Recorded with an |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
574 NTSC video camera at 60000/1001 fields per second, or 60 fields per |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
575 second in the pre-color era. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
576 Otherwise similar to PAL. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
577 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
578 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
579 <emphasis role="bold">Animation</emphasis>: Usually drawn at |
15467 | 580 24fps, but also comes in mixed-framerate varieties. |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
581 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
582 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
583 <emphasis role="bold">Computer Graphics (CG)</emphasis>: Can be |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
584 any framerate, but some are more common than others; 24 and |
15467 | 585 30 frames per second are typical for NTSC, and 25fps is typical |
586 for PAL. | |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
587 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
588 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
589 <emphasis role="bold">Old Film</emphasis>: Various lower |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
590 framerates. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
591 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
592 </itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
593 </sect3> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
594 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
595 <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material"> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
596 <title>Identifying source material</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
597 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
598 Movies consisting of frames are referred to as progressive, |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
599 while those consisting of independent fields are called |
15467 | 600 either interlaced or video - though this latter term is |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
601 ambiguous. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
602 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
603 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
604 To further complicate matters, some movies will be a mix of |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
605 several of the above. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
606 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
607 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
608 The most important distinction to make between all of these |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
609 formats is that some are frame-based, while others are |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
610 field-based. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
611 <emphasis role="bold">Whenever</emphasis> a movie is prepared |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
612 for display on television (including DVD), it is converted to a |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
613 field-based format. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
614 The various methods by which this can be done are collectively |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
615 referred to as "pulldown", of which the infamous NTSC |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
616 "3:2 telecine" is one variety. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
617 Unless the original material was also field-based (and the same |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
618 fieldrate), you are getting the movie in a format other than the |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
619 original. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
620 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
621 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
622 <itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
623 <title>There are several common types of pulldown:</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
624 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
625 <emphasis role="bold">PAL 2:2 pulldown</emphasis>: The nicest of |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
626 them all. |
15467 | 627 Each frame is shown for the duration of two fields, by extracting the |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
628 even and odd lines and showing them in alternation. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
629 If the original material is 24fps, this process speeds up the |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
630 movie by 4%. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
631 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
632 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
633 <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown</emphasis>: |
15467 | 634 Every 12th frame is shown for the duration of three fields, instead of |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
635 just two. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
636 This avoids the 4% speedup issue, but makes the process much |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
637 more difficult to reverse. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
638 It is usually seen in musical productions where adjusting the |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
639 speed by 4% would seriously damage the musical score. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
640 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
641 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
642 <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Frames are |
15467 | 643 shown alternately for the duration of 3 fields or 2 fields. |
644 This gives a fieldrate 2.5 times the original framerate. | |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
645 The result is also slowed down very slightly from 60 fields per |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
646 second to 60000/1001 fields per second to maintain NTSC fieldrate. |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
647 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
648 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
649 <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Used for |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
650 showing 30fps material on NTSC. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
651 Nice, just like 2:2 PAL pulldown. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
652 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
653 </itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
654 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
655 <para> |
15467 | 656 There are also methods for converting between NTSC and PAL video, |
657 but such topics are beyond the scope of this guide. | |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
658 If you encounter such a movie and want to encode it, your best |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
659 bet is to find a copy in the original format. |
15467 | 660 Conversion between these two formats is highly destructive and |
661 cannot be reversed cleanly, so your encode will greatly suffer | |
662 if it is made from a converted source. | |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
663 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
664 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
665 When video is stored on DVD, consecutive pairs of fields are |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
666 grouped as a frame, even though they are not intended to be shown |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
667 at the same moment in time. |
15485
62074f6caca7
Hopefully this phrasing is now correct English :-)
gpoirier
parents:
15471
diff
changeset
|
668 The MPEG-2 standard used on DVD and digital TV provides a |
62074f6caca7
Hopefully this phrasing is now correct English :-)
gpoirier
parents:
15471
diff
changeset
|
669 way to both encode the original progressive frames and store in |
15467 | 670 the header of each frame the number of fields for which it should |
671 be shown. | |
672 If this method has been used, the movie will often be described | |
673 as "soft-telecined", since the process only directs the | |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
674 DVD player to apply pulldown to the movie rather than altering |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
675 the movie itself. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
676 This case is highly preferable since it can easily be reversed |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
677 (actually ignored) by the encoder, and since it preserves maximal |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
678 quality. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
679 However, many DVD and broadcast production studios do not use |
15467 | 680 proper encoding techniques but instead produce movies with |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
681 "hard telecine", where fields are actually duplicated in the |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
682 encoded MPEG-2. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
683 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
684 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
685 The procedures for dealing with these cases will be covered later |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
686 in this guide. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
687 For now, we leave you with some guides to identifying which type |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
688 of material you are dealing with: |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
689 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
690 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
691 <itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
692 <title>NTSC regions:</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
693 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
694 If <application>MPlayer</application> prints that the framerate |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
695 has changed to 24000/1001 when watching your movie, and never changes |
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
696 back, it is almost certainly progressive content that has been |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
697 "soft telecined". |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
698 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
699 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
700 If <application>MPlayer</application> shows the framerate |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
701 switching back and forth between 24000/1001 and 30000/1001, and you see |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
702 "combing" at times, then there are several possibilities. |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
703 The 24000/1001 fps segments are almost certainly progressive |
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
704 content, "soft telecined", but the 30000/1001 fps parts could be |
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
705 either hard-telecined 24000/1001 fps content or 60000/1001 fields per second NTSC video. |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
706 Use the same guidelines as the following two cases to determine |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
707 which. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
708 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
709 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
710 If <application>MPlayer</application> never shows the framerate |
15467 | 711 changing, and every single frame with motion appears combed, your |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
712 movie is NTSC video at 60000/1001 fields per second. |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
713 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
714 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
715 If <application>MPlayer</application> never shows the framerate |
15471
713d02bb344a
some more fixes suggested by The Wanderer and Rich
gpoirier
parents:
15467
diff
changeset
|
716 changing, and two frames out of every five appear combed, your |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
717 movie is "hard telecined" 24000/1001fps content. |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
718 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
719 </itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
720 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
721 <itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
722 <title>PAL regions:</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
723 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
724 If you never see any combing, your movie is 2:2 pulldown. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
725 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
726 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
727 If you see combing alternating in and out every half second, |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
728 then your movie is 2:2:2:2:2:2:2:2:2:2:2:3 pulldown. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
729 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
730 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
731 If you always see combing during motion, then your movie is PAL |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
732 video at 50 fields per second. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
733 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
734 </itemizedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
735 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
736 <note><title>Hint:</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
737 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
738 <application>MPlayer</application> can slow down movie playback |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
739 with the -speed option. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
740 Try using <option>-speed</option> 0.2 to watch the movie very |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
741 slowly and identify the pattern, if you cannot see it at full speed. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
742 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
743 </note> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
744 </sect3> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
745 </sect2> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
746 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
747 <sect2 id="menc-feat-dvd-mpeg4-2pass"> |
15471
713d02bb344a
some more fixes suggested by The Wanderer and Rich
gpoirier
parents:
15467
diff
changeset
|
748 <title>Constant quantizer vs. multipass</title> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
749 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
750 <para> |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
751 It is possible to encode your movie at a wide range of qualities. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
752 With modern video encoders and a bit of pre-codec compression |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
753 (downscaling and denoising), it is possible to achieve very good |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
754 quality at 700 MB, for a 90-110 minute widescreen movie. |
15467 | 755 Furthermore, all but the longest movies can be encoded with near-perfect |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
756 quality at 1400 MB. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
757 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
758 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
759 <para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
760 There are three approaches to encoding the video: constant bitrate |
15471
713d02bb344a
some more fixes suggested by The Wanderer and Rich
gpoirier
parents:
15467
diff
changeset
|
761 (CBR), constant quantizer, and multipass (ABR, or average bitrate). |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
762 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
763 |
15467 | 764 <note><title>Note:</title> |
765 <para> | |
766 Most codecs which support ABR encode only support two pass encode | |
767 while some others such as <systemitem class="library">x264</systemitem> | |
768 and <systemitem class="library">libavcodec</systemitem> support | |
15471
713d02bb344a
some more fixes suggested by The Wanderer and Rich
gpoirier
parents:
15467
diff
changeset
|
769 multipass, which slightly improves quality at each pass, |
15485
62074f6caca7
Hopefully this phrasing is now correct English :-)
gpoirier
parents:
15471
diff
changeset
|
770 yet this improvement is no longer measurable nor noticeable after the |
15471
713d02bb344a
some more fixes suggested by The Wanderer and Rich
gpoirier
parents:
15467
diff
changeset
|
771 4th or so pass. |
713d02bb344a
some more fixes suggested by The Wanderer and Rich
gpoirier
parents:
15467
diff
changeset
|
772 Therefore, in this section, two pass and multipass will be used |
15467 | 773 interchangeably. |
774 </para> | |
775 </note> | |
776 | |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
777 <para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
778 In each of these modes, <systemitem class="library">libavcodec</systemitem> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
779 breaks the video frame into 16x16 pixel macroblocks and then applies a |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
780 quantizer to each macroblock. The lower the quantizer, the better the |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
781 quality and higher the bitrate. The method |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
782 <systemitem class="library">libavcodec</systemitem> uses to determine |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
783 which quantizer to use for a given macroblock varies and is highly |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
784 tunable. (This is an extreme over-simplification of the actual |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
785 process, but the basic concept is useful to understand.) |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
786 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
787 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
788 <para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
789 When you specify a constant bitrate, <systemitem |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
790 class="library">libavcodec</systemitem> will encode the video, discarding |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
791 detail as much as necessary and as little as possible in order to remain |
15329 | 792 lower than the given bitrate. If you truly do not care about file size, |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
793 you could as well use CBR and specify a bitrate of infinity. (In |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
794 practice, this means a value high enough so that it poses no limit, like |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
795 10000Kbit.) With no real restriction on bitrate, the result is that |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
796 <systemitem class="library">libavcodec</systemitem> will use the lowest |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
797 possible quantizer for each macroblock (as specified by |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
798 <option>vqmin</option>, which is 2 by default). As soon as you specify a |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
799 low enough bitrate that <systemitem class="library">libavcodec</systemitem> |
15329 | 800 is forced to use a higher quantizer, then you are almost certainly ruining |
15010 | 801 the quality of your video. |
15034 | 802 In order to avoid that, you should probably downscale your video, according |
803 to the method described later on in this guide. | |
15010 | 804 In general, you should avoid CBR altogether if you care about quality. |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
805 </para> |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
806 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
807 <para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
808 With constant quantizer, <systemitem |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
809 class="library">libavcodec</systemitem> uses the same quantizer, as |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
810 specified by the <option>vqscale</option> option, on every macroblock. If |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
811 you want the highest quality rip possible, again ignoring bitrate, you can |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
812 use <option>vqscale=2</option>. This will yield the same bitrate and PSNR |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
813 (peak signal-to-noise ratio) as CBR with |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
814 <option>vbitrate</option>=infinity and the default <option>vqmin</option> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
815 of 2. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
816 </para> |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
817 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
818 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
819 The problem with constant quantizing is that it uses the given quantizer |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
820 whether the macroblock needs it or not. That is, it might be possible |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
821 to use a higher quantizer on a macroblock without sacrificing visual |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
822 quality. Why waste the bits on an unnecessarily low quantizer? Your |
15329 | 823 CPU has as many cycles as there is time, but there is only so many bits |
13523 | 824 on your hard disk. |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
825 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
826 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
827 <para> |
14421 | 828 With a two pass encode, the first pass will rip the movie as though it |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
829 were CBR, but it will keep a log of properties for each frame. This |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
830 data is then used during the second pass in order to make intelligent |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
831 decisions about which quantizers to use. During fast action or low |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
832 detail scenes, higher quantizers will likely be used, and during |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
833 slow moving or high detail scenes, lower quantizers will be used. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
834 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
835 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
836 <para> |
15329 | 837 If you use <option>vqscale=2</option>, then you are wasting bits. If you |
838 use <option>vqscale=3</option>, then you are not getting the highest | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
839 quality rip. Suppose you rip a DVD at <option>vqscale=3</option>, and |
14421 | 840 the result is 1800Kbit. If you do a two pass encode with |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
841 <option>vbitrate=1800</option>, the resulting video will have <emphasis |
14734 | 842 role="bold">higher quality</emphasis> for the |
843 <emphasis role="bold">same bitrate</emphasis>. | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
844 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
845 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
846 <para> |
15329 | 847 Since you are now convinced that two pass is the way to go, the real |
848 question now is what bitrate to use? The answer is that there is no | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
849 single answer. Ideally you want to choose a bitrate that yields the |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
850 best balance between quality and file size. This is going to vary |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
851 depending on the source video. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
852 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
853 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
854 <para> |
15329 | 855 If size does not matter, a good starting point for a very high quality |
15010 | 856 rip is about 2000Kbit plus or minus 200Kbit. |
857 For fast action or high detail source video, or if you just have a very | |
858 critical eye, you might decide on 2400 or 2600. | |
15329 | 859 For some DVDs, you might not notice a difference at 1400Kbit. It is a |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
860 good idea to experiment with scenes at different bitrates to get a feel. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
861 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
862 |
15010 | 863 <para> |
864 If you aim at a certain size, you will have to somehow calculate the bitrate. | |
865 But before that, you need to know how much space you should reserve for the | |
866 audio track(s), so you should <link linkend="menc-feat-dvd-mpeg4-audio">rip | |
867 those</link> first. | |
868 You can compute the bitrate with the following equation: | |
15131
3f01fef97002
Fix HTML generation, <equation> is more elaborate in most DTDs.
diego
parents:
15129
diff
changeset
|
869 <systemitem>bitrate = (target_size_in_Mbytes - sound_size_in_Mbytes) * |
3f01fef97002
Fix HTML generation, <equation> is more elaborate in most DTDs.
diego
parents:
15129
diff
changeset
|
870 1024 * 1024 / length_in_secs * 8 / 1000</systemitem> |
15034 | 871 For instance, to squeeze a two-hour movie onto a 702MB CD, with 60MB |
15113
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
872 of audio track, the video bitrate will have to be: |
15131
3f01fef97002
Fix HTML generation, <equation> is more elaborate in most DTDs.
diego
parents:
15129
diff
changeset
|
873 <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 |
3f01fef97002
Fix HTML generation, <equation> is more elaborate in most DTDs.
diego
parents:
15129
diff
changeset
|
874 = 740kbps</systemitem> |
15010 | 875 </para> |
876 | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
877 </sect2> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
878 |
15113
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
879 |
15114
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
880 <sect2 id="menc-feat-dvd-mpeg4-constraints"> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
881 <title>Constraints for efficient encoding</title> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
882 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
883 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
884 Due to the nature of MPEG-type compression, there are various |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
885 constraints you should follow for maximal quality. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
886 MPEG splits the video up into 16x16 squares called macroblocks, |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
887 each composed of 4 8x8 blocks of luma (intensity) information and two |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
888 half-resolution 8x8 chroma (color) blocks (one for red-cyan axis and |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
889 the other for the blue-yellow axis). |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
890 Even if your movie width and height are not multiples of 16, the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
891 encoder will use enough 16x16 macroblocks to cover the whole picture |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
892 area, and the extra space will go to waste. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
893 So in the interests of maximizing quality at a fixed filesize, it is |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
894 a bad idea to use dimensions that are not multiples of 16. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
895 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
896 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
897 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
898 Most DVDs also have some degree of black borders at the edges. Leaving |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
899 these in place can hurt quality in several ways. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
900 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
901 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
902 <orderedlist> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
903 <listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
904 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
905 MPEG-type compression is also highly dependent on frequency domain |
15129 | 906 transformations, in particular the Discrete Cosine Transform (DCT), |
15114
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
907 which is similar to the Fourier transform. This sort of encoding is |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
908 efficient for representing patterns and smooth transitions, but it |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
909 has a hard time with sharp edges. In order to encode them it must |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
910 use many more bits, or else an artifact known as ringing will |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
911 appear. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
912 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
913 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
914 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
915 The frequency transform (DCT) takes place separately on each |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
916 macroblock (actually each block), so this problem only applies when |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
917 the sharp edge is inside a block. If your black borders begin |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
918 exactly at multiple-of-16 pixel boundaries, this is not a problem. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
919 However, the black borders on DVDs rarely come nicely aligned, so |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
920 in practice you will always need to crop to avoid this penalty. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
921 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
922 </listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
923 </orderedlist> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
924 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
925 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
926 In addition to frequency domain transforms, MPEG-type compression uses |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
927 motion vectors to represent the change from one frame to the next. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
928 Motion vectors naturally work much less efficiently for new content |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
929 coming in from the edges of the picture, because it is not present in |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
930 the previous frame. As long as the picture extends all the way to the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
931 edge of the encoded region, motion vectors have no problem with |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
932 content moving out the edges of the picture. However, in the presence |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
933 of black borders, there can be trouble: |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
934 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
935 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
936 <orderedlist continuation="continues"> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
937 <listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
938 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
939 For each macroblock, MPEG-type compression stores a vector |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
940 identifying which part of the previous frame should be copied into |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
941 this macroblock as a base for predicting the next frame. Only the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
942 remaining differences need to be encoded. If a macroblock spans the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
943 edge of the picture and contains part of the black border, then |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
944 motion vectors from other parts of the picture will overwrite the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
945 black border. This means that lots of bits must be spent either |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
946 re-blackening the border that was overwritten, or (more likely) a |
15329 | 947 motion vector will not be used at all and all the changes in this |
15114
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
948 macroblock will have to be coded explicitly. Either way, encoding |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
949 efficiency is greatly reduced. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
950 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
951 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
952 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
953 Again, this problem only applies if black borders do not line up on |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
954 multiple-of-16 boundaries. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
955 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
956 </listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
957 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
958 <listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
959 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
960 Finally, suppose we have a macroblock in the interior of the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
961 picture, and an object is moving into this block from near the edge |
15329 | 962 of the image. MPEG-type coding cannot say "copy the part that is |
15114
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
963 inside the picture but not the black border." So the black border |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
964 will get copied inside too, and lots of bits will have to be spent |
15329 | 965 encoding the part of the picture that is supposed to be there. |
15114
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
966 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
967 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
968 <para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
969 If the picture runs all the way to the edge of the encoded area, |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
970 MPEG has special optimizations to repeatedly copy the pixels at the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
971 edge of the picture when a motion vector comes from outside the |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
972 encoded area. This feature becomes useless when the movie has black |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
973 borders. Unlike problems 1 and 2, aligning the borders at multiples |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
974 of 16 does not help here. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
975 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
976 </listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
977 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
978 <listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
979 <para> |
15210 | 980 Despite the borders being entirely black and never changing, there |
15114
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
981 is at least a minimal amount of overhead involved in having more |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
982 macroblocks. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
983 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
984 </listitem> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
985 </orderedlist> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
986 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
987 <para> |
15329 | 988 For all of these reasons, it is recommended to fully crop black |
15114
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
989 borders. Further, if there is an area of noise/distortion at the edge |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
990 of the picture, cropping this will improve encoding efficiency as |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
991 well. Videophile purists who want to preserve the original as close as |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
992 possible may object to this cropping, but unless you plan to encode at |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
993 constant quantizer, the quality you gain from cropping will |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
994 considerably exceed the amount of information lost at the edges. |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
995 </para> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
996 </sect2> |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
997 |
3d462baeb78e
New section "Constraints for efficient encoding",
gpoirier
parents:
15113
diff
changeset
|
998 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
999 <sect2 id="menc-feat-dvd-mpeg4-crop"> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1000 <title>Cropping and Scaling</title> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1001 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1002 <para> |
15221 | 1003 Recall from the previous section that the final picture size you |
1004 encode should be a multiple of 16 (in both width and height). | |
1005 This can be achieved by cropping, scaling, or a combination of both. | |
1006 </para> | |
1007 | |
1008 <para> | |
1009 When cropping, there are a few guidelines that must be followed to | |
1010 avoid damaging your movie. | |
1011 The normal YUV format, 4:2:0, stores chroma (color) information | |
1012 subsampled, i.e. chroma is only sampled half as often in each | |
1013 direction as luma (intensity) information. | |
1014 Observe this diagram, where L indicates luma sampling points and C | |
1015 chroma. | |
1016 </para> | |
1017 | |
1018 <informaltable> | |
1019 <?dbhtml table-width="40%" ?> | |
1020 <?dbfo table-width="40%" ?> | |
1021 <tgroup cols="8" align="center"> | |
1022 <colspec colnum="1" colname="col1"/> | |
1023 <colspec colnum="2" colname="col2"/> | |
1024 <colspec colnum="3" colname="col3"/> | |
1025 <colspec colnum="4" colname="col4"/> | |
1026 <colspec colnum="5" colname="col5"/> | |
1027 <colspec colnum="6" colname="col6"/> | |
1028 <colspec colnum="7" colname="col7"/> | |
1029 <colspec colnum="8" colname="col8"/> | |
1030 <spanspec spanname="spa1-2" namest="col1" nameend="col2"/> | |
1031 <spanspec spanname="spa3-4" namest="col3" nameend="col4"/> | |
1032 <spanspec spanname="spa5-6" namest="col5" nameend="col6"/> | |
1033 <spanspec spanname="spa7-8" namest="col7" nameend="col8"/> | |
1034 <tbody> | |
1035 <row> | |
1036 <entry>L</entry> | |
1037 <entry>L</entry> | |
1038 <entry>L</entry> | |
1039 <entry>L</entry> | |
1040 <entry>L</entry> | |
1041 <entry>L</entry> | |
1042 <entry>L</entry> | |
1043 <entry>L</entry> | |
1044 </row> | |
1045 <row> | |
1046 <entry spanname="spa1-2">C</entry> | |
1047 <entry spanname="spa3-4">C</entry> | |
1048 <entry spanname="spa5-6">C</entry> | |
1049 <entry spanname="spa7-8">C</entry> | |
1050 </row> | |
1051 <row> | |
1052 <entry>L</entry> | |
1053 <entry>L</entry> | |
1054 <entry>L</entry> | |
1055 <entry>L</entry> | |
1056 <entry>L</entry> | |
1057 <entry>L</entry> | |
1058 <entry>L</entry> | |
1059 <entry>L</entry> | |
1060 </row> | |
1061 <row> | |
1062 <entry>L</entry> | |
1063 <entry>L</entry> | |
1064 <entry>L</entry> | |
1065 <entry>L</entry> | |
1066 <entry>L</entry> | |
1067 <entry>L</entry> | |
1068 <entry>L</entry> | |
1069 <entry>L</entry> | |
1070 </row> | |
1071 <row> | |
1072 <entry spanname="spa1-2">C</entry> | |
1073 <entry spanname="spa3-4">C</entry> | |
1074 <entry spanname="spa5-6">C</entry> | |
1075 <entry spanname="spa7-8">C</entry> | |
1076 </row> | |
1077 <row> | |
1078 <entry>L</entry> | |
1079 <entry>L</entry> | |
1080 <entry>L</entry> | |
1081 <entry>L</entry> | |
1082 <entry>L</entry> | |
1083 <entry>L</entry> | |
1084 <entry>L</entry> | |
1085 <entry>L</entry> | |
1086 </row> | |
1087 </tbody> | |
1088 </tgroup> | |
1089 </informaltable> | |
1090 | |
1091 <para> | |
1092 As you can see, rows and columns of the image naturally come in pairs. | |
1093 Thus your crop offsets and dimensions <emphasis>must</emphasis> be | |
1094 even numbers. | |
1095 If they are not, the chroma will no longer line up correctly with the | |
1096 luma. | |
15329 | 1097 In theory, it is possible to crop with odd offsets, but it requires |
15221 | 1098 resampling the chroma which is potentially a lossy operation and not |
1099 supported by the crop filter. | |
1100 </para> | |
1101 | |
1102 <para> | |
1103 Further, interlaced video is sampled as follows: | |
1104 </para> | |
1105 | |
1106 <informaltable> | |
1107 <?dbhtml table-width="80%" ?> | |
1108 <?dbfo table-width="80%" ?> | |
1109 <tgroup cols="16" align="center"> | |
1110 <colspec colnum="1" colname="col1"/> | |
1111 <colspec colnum="2" colname="col2"/> | |
1112 <colspec colnum="3" colname="col3"/> | |
1113 <colspec colnum="4" colname="col4"/> | |
1114 <colspec colnum="5" colname="col5"/> | |
1115 <colspec colnum="6" colname="col6"/> | |
1116 <colspec colnum="7" colname="col7"/> | |
1117 <colspec colnum="8" colname="col8"/> | |
1118 <colspec colnum="9" colname="col9"/> | |
1119 <colspec colnum="10" colname="col10"/> | |
1120 <colspec colnum="11" colname="col11"/> | |
1121 <colspec colnum="12" colname="col12"/> | |
1122 <colspec colnum="13" colname="col13"/> | |
1123 <colspec colnum="14" colname="col14"/> | |
1124 <colspec colnum="15" colname="col15"/> | |
1125 <colspec colnum="16" colname="col16"/> | |
1126 <spanspec spanname="spa1-2" namest="col1" nameend="col2"/> | |
1127 <spanspec spanname="spa3-4" namest="col3" nameend="col4"/> | |
1128 <spanspec spanname="spa5-6" namest="col5" nameend="col6"/> | |
1129 <spanspec spanname="spa7-8" namest="col7" nameend="col8"/> | |
1130 <spanspec spanname="spa9-10" namest="col9" nameend="col10"/> | |
1131 <spanspec spanname="spa11-12" namest="col11" nameend="col12"/> | |
1132 <spanspec spanname="spa13-14" namest="col13" nameend="col14"/> | |
1133 <spanspec spanname="spa15-16" namest="col15" nameend="col16"/> | |
1134 <tbody> | |
1135 <row> | |
1136 <entry namest="col1" nameend="col8">Top field</entry> | |
1137 <entry namest="col9" nameend="col16">Bottom field</entry> | |
1138 </row> | |
1139 <row> | |
1140 <entry>L</entry> | |
1141 <entry>L</entry> | |
1142 <entry>L</entry> | |
1143 <entry>L</entry> | |
1144 <entry>L</entry> | |
1145 <entry>L</entry> | |
1146 <entry>L</entry> | |
1147 <entry>L</entry> | |
1148 <entry></entry> | |
1149 <entry></entry> | |
1150 <entry></entry> | |
1151 <entry></entry> | |
1152 <entry></entry> | |
1153 <entry></entry> | |
1154 <entry></entry> | |
1155 <entry></entry> | |
1156 </row> | |
1157 <row> | |
1158 <entry spanname="spa1-2">C</entry> | |
1159 <entry spanname="spa3-4">C</entry> | |
1160 <entry spanname="spa5-6">C</entry> | |
1161 <entry spanname="spa7-8">C</entry> | |
1162 <entry></entry> | |
1163 <entry></entry> | |
1164 <entry></entry> | |
1165 <entry></entry> | |
1166 <entry></entry> | |
1167 <entry></entry> | |
1168 <entry></entry> | |
1169 <entry></entry> | |
1170 </row> | |
1171 <row> | |
1172 <entry></entry> | |
1173 <entry></entry> | |
1174 <entry></entry> | |
1175 <entry></entry> | |
1176 <entry></entry> | |
1177 <entry></entry> | |
1178 <entry></entry> | |
1179 <entry></entry> | |
1180 <entry>L</entry> | |
1181 <entry>L</entry> | |
1182 <entry>L</entry> | |
1183 <entry>L</entry> | |
1184 <entry>L</entry> | |
1185 <entry>L</entry> | |
1186 <entry>L</entry> | |
1187 <entry>L</entry> | |
1188 </row> | |
1189 <row> | |
1190 <entry>L</entry> | |
1191 <entry>L</entry> | |
1192 <entry>L</entry> | |
1193 <entry>L</entry> | |
1194 <entry>L</entry> | |
1195 <entry>L</entry> | |
1196 <entry>L</entry> | |
1197 <entry>L</entry> | |
1198 <entry></entry> | |
1199 <entry></entry> | |
1200 <entry></entry> | |
1201 <entry></entry> | |
1202 <entry></entry> | |
1203 <entry></entry> | |
1204 <entry></entry> | |
1205 <entry></entry> | |
1206 </row> | |
1207 <row> | |
1208 <entry></entry> | |
1209 <entry></entry> | |
1210 <entry></entry> | |
1211 <entry></entry> | |
1212 <entry></entry> | |
1213 <entry></entry> | |
1214 <entry></entry> | |
1215 <entry></entry> | |
1216 <entry spanname="spa9-10">C</entry> | |
1217 <entry spanname="spa11-12">C</entry> | |
1218 <entry spanname="spa13-14">C</entry> | |
1219 <entry spanname="spa15-16">C</entry> | |
1220 </row> | |
1221 <row> | |
1222 <entry></entry> | |
1223 <entry></entry> | |
1224 <entry></entry> | |
1225 <entry></entry> | |
1226 <entry></entry> | |
1227 <entry></entry> | |
1228 <entry></entry> | |
1229 <entry></entry> | |
1230 <entry>L</entry> | |
1231 <entry>L</entry> | |
1232 <entry>L</entry> | |
1233 <entry>L</entry> | |
1234 <entry>L</entry> | |
1235 <entry>L</entry> | |
1236 <entry>L</entry> | |
1237 <entry>L</entry> | |
1238 </row> | |
1239 <row> | |
15271
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1240 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1241 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1242 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1243 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1244 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1245 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1246 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1247 <entry>L</entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1248 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1249 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1250 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1251 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1252 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1253 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1254 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1255 <entry></entry> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1256 </row> |
15504d659558
Fix the pattern that wasn't repeated every 4 lines.
gpoirier
parents:
15221
diff
changeset
|
1257 <row> |
15221 | 1258 <entry spanname="spa1-2">C</entry> |
1259 <entry spanname="spa3-4">C</entry> | |
1260 <entry spanname="spa5-6">C</entry> | |
1261 <entry spanname="spa7-8">C</entry> | |
1262 <entry></entry> | |
1263 <entry></entry> | |
1264 <entry></entry> | |
1265 <entry></entry> | |
1266 <entry></entry> | |
1267 <entry></entry> | |
1268 <entry></entry> | |
1269 <entry></entry> | |
1270 </row> | |
1271 <row> | |
1272 <entry></entry> | |
1273 <entry></entry> | |
1274 <entry></entry> | |
1275 <entry></entry> | |
1276 <entry></entry> | |
1277 <entry></entry> | |
1278 <entry></entry> | |
1279 <entry></entry> | |
1280 <entry>L</entry> | |
1281 <entry>L</entry> | |
1282 <entry>L</entry> | |
1283 <entry>L</entry> | |
1284 <entry>L</entry> | |
1285 <entry>L</entry> | |
1286 <entry>L</entry> | |
1287 <entry>L</entry> | |
1288 </row> | |
1289 <row> | |
1290 <entry>L</entry> | |
1291 <entry>L</entry> | |
1292 <entry>L</entry> | |
1293 <entry>L</entry> | |
1294 <entry>L</entry> | |
1295 <entry>L</entry> | |
1296 <entry>L</entry> | |
1297 <entry>L</entry> | |
1298 <entry></entry> | |
1299 <entry></entry> | |
1300 <entry></entry> | |
1301 <entry></entry> | |
1302 <entry></entry> | |
1303 <entry></entry> | |
1304 <entry></entry> | |
1305 <entry></entry> | |
1306 </row> | |
1307 <row> | |
1308 <entry></entry> | |
1309 <entry></entry> | |
1310 <entry></entry> | |
1311 <entry></entry> | |
1312 <entry></entry> | |
1313 <entry></entry> | |
1314 <entry></entry> | |
1315 <entry></entry> | |
1316 <entry spanname="spa9-10">C</entry> | |
1317 <entry spanname="spa11-12">C</entry> | |
1318 <entry spanname="spa13-14">C</entry> | |
1319 <entry spanname="spa15-16">C</entry> | |
1320 </row> | |
1321 <row> | |
1322 <entry></entry> | |
1323 <entry></entry> | |
1324 <entry></entry> | |
1325 <entry></entry> | |
1326 <entry></entry> | |
1327 <entry></entry> | |
1328 <entry></entry> | |
1329 <entry></entry> | |
1330 <entry>L</entry> | |
1331 <entry>L</entry> | |
1332 <entry>L</entry> | |
1333 <entry>L</entry> | |
1334 <entry>L</entry> | |
1335 <entry>L</entry> | |
1336 <entry>L</entry> | |
1337 <entry>L</entry> | |
1338 </row> | |
1339 </tbody> | |
1340 </tgroup> | |
1341 </informaltable> | |
1342 | |
1343 <para> | |
1344 As you can see, the pattern does not repeat until after 4 lines. | |
1345 So for interlaced video, your y-offset and height for cropping must | |
1346 be multiples of 4. | |
1347 </para> | |
1348 | |
1349 <para> | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1350 Native DVD resolution is 720x480 for NTSC, and 720x576 for PAL, but |
15329 | 1351 there is an aspect flag that specifies whether it is full-screen (4:3) or |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1352 wide-screen (16:9). Many (if not most) widescreen DVDs are not strictly |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1353 16:9, and will be either 1.85:1 or 2.35:1 (cinescope). This means that |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1354 there will be black bands in the video that will need to be cropped out. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1355 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1356 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1357 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1358 <application>MPlayer</application> provides a crop detection filter that |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1359 will determine the crop rectangle (<option>-vf cropdetect</option>). |
15221 | 1360 Run <application>MPlayer</application> with |
1361 <option>-vf cropdetect</option> and it will print out the crop | |
1362 settings to remove the borders. | |
1363 You should let the movie run long enough that the whole picture | |
1364 area is used, in order to get accurate crop values. | |
1365 </para> | |
1366 | |
1367 <para> | |
1368 Then, test the values you get with <application>MPlayer</application>, | |
1369 using the command line which was printed by | |
1370 <option>cropdetect</option>, and adjust the rectangle as needed. | |
1371 The <option>rectangle</option> filter can help by allowing you to | |
1372 interactively position the crop rectangle over your movie. | |
1373 Remember to follow the above divisibility guidelines so that you | |
1374 do not misalign the chroma planes. | |
1375 </para> | |
1376 | |
1377 <para> | |
1378 In certain cases, scaling may be undesirable. | |
1379 Scaling in the vertical direction is difficult with interlaced | |
1380 video, and if you wish to preserve the interlacing, you should | |
1381 usually refrain from scaling. | |
1382 If you will not be scaling but you still want to use multiple-of-16 | |
1383 dimensions, you will have to overcrop. | |
1384 Do not undercrop, since black borders are very bad for encoding! | |
1385 </para> | |
1386 | |
1387 <para> | |
15329 | 1388 Because MPEG-4 uses 16x16 macroblocks, you will want to make sure that each |
1389 dimension of the video you are encoding is a multiple of 16 or else you | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1390 will be degrading quality, especially at lower bitrates. You can do this |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1391 by rounding the width and height of the crop rectangle down to the nearest |
15221 | 1392 multiple of 16. |
15329 | 1393 As stated earlier, when cropping, you will want to increase the Y offset by |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1394 half the difference of the old and the new height so that the resulting |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1395 video is taken from the center of the frame. And because of the way DVD |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1396 video is sampled, make sure the offset is an even number. (In fact, as a |
15329 | 1397 rule, never use odd values for any parameter when you are cropping and |
1398 scaling video.) If you are not comfortable throwing a few extra pixels | |
1399 away, you might prefer instead to scale the video instead. We will look | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1400 at this in our example below. |
15010 | 1401 You can actually let the <option>cropdetect</option> filter do all of the |
1402 above for you, as it has an optional <option>round</option> parameter that | |
1403 is equal to 16 by default. | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1404 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1405 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1406 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1407 Also, be careful about "half black" pixels at the edges. Make sure you |
15329 | 1408 crop these out too, or else you will be wasting bits there that |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1409 are better spent elsewhere. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1410 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1411 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1412 <para> |
15329 | 1413 After all is said and done, you will probably end up with video whose pixels |
1414 are not quite 1.85:1 or 2.35:1, but rather something close to that. You | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1415 could calculate the new aspect ratio manually, but |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1416 <application>MEncoder</application> offers an option for <systemitem |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1417 class="library">libavcodec</systemitem> called <option>autoaspect</option> |
15010 | 1418 that will do this for you. Absolutely do not scale this video up in order to |
13523 | 1419 square the pixels unless you like to waste your hard disk space. Scaling |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1420 should be done on playback, and the player will use the aspect stored in |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1421 the AVI to determine the correct resolution. |
15010 | 1422 Unfortunately, not all players enforce this auto-scaling information, |
1423 therefore you may still want to rescale. | |
1424 </para> | |
1425 | |
1426 <para> | |
1427 First, you should compute the encoded aspect ratio: | |
15131
3f01fef97002
Fix HTML generation, <equation> is more elaborate in most DTDs.
diego
parents:
15129
diff
changeset
|
1428 <systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem> |
15010 | 1429 <itemizedlist> |
1430 <title>where:</title> | |
1431 <listitem><para> | |
1432 Wc and Hc are the width and height of the cropped video, | |
1433 </para></listitem> | |
1434 <listitem><para> | |
15366
d2180f62e0e8
explains what ARa is and a tries to improve the readability of the
gpoirier
parents:
15358
diff
changeset
|
1435 ARa is the displayed aspect ratio, which usually is 4/3 or 16/9, |
d2180f62e0e8
explains what ARa is and a tries to improve the readability of the
gpoirier
parents:
15358
diff
changeset
|
1436 </para></listitem> |
d2180f62e0e8
explains what ARa is and a tries to improve the readability of the
gpoirier
parents:
15358
diff
changeset
|
1437 <listitem><para> |
15216 | 1438 PRdvd is the pixel ratio of the DVD which is equal to 1.25=(720/576) for PAL |
15010 | 1439 DVDs and 1.5=(720/480) for NTSC DVDs, |
1440 </para></listitem> | |
1441 </itemizedlist> | |
1442 </para> | |
1443 | |
1444 <para> | |
1445 Then, you can compute the X and Y resolution, according to a certain | |
1446 Compression Quality (CQ) factor: | |
15131
3f01fef97002
Fix HTML generation, <equation> is more elaborate in most DTDs.
diego
parents:
15129
diff
changeset
|
1447 <systemitem>ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem> |
15366
d2180f62e0e8
explains what ARa is and a tries to improve the readability of the
gpoirier
parents:
15358
diff
changeset
|
1448 and |
15131
3f01fef97002
Fix HTML generation, <equation> is more elaborate in most DTDs.
diego
parents:
15129
diff
changeset
|
1449 <systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem> |
15010 | 1450 </para> |
1451 | |
1452 <para> | |
1453 Okay, but what is the CQ? | |
1454 The CQ represents the number of bits per pixel and per frame of the encode. | |
1455 Roughly speaking, the greater the CQ, the less the likelihood to see | |
1456 encoding artifacts. | |
1457 However, if you have a target size for your movie (1 or 2 CDs for instance), | |
15329 | 1458 there is a limited total number of bits that you can spend; therefore it is |
15010 | 1459 necessary to find a good tradeoff between compressibility and quality. |
15113
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1460 </para> |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1461 |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1462 <para> |
15010 | 1463 The CQ depends both on the bitrate and the movie resolution. |
15329 | 1464 In order to raise the CQ, typically you would downscale the movie given that the |
15010 | 1465 bitrate is computed in function of the target size and the length of the |
1466 movie, which are constant. | |
1467 A CQ below 0.18 usually ends up in a very blocky picture, because there | |
15329 | 1468 are not enough bits to code the information of each macroblock (MPEG4, like |
15010 | 1469 many other codecs, groups pixels by blocks of several pixels to compress the |
15329 | 1470 image; if there are not enough bits, the edges of those blocks are |
15010 | 1471 visible). |
15329 | 1472 It is therefore wise to take a CQ ranging from 0.20 to 0.22 for a 1 CD rip, |
15210 | 1473 and 0.26-0.28 for 2 CDs. |
15113
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1474 </para> |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1475 |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1476 <para> |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1477 Please take note that the CQ is just an indicative figure, as depending on |
15010 | 1478 the encoded content, a CQ of 0.18 may look just fine for a Bergman, contrary |
1479 to a movie such as The Matrix, which contains many high-motion scenes. | |
15329 | 1480 On the other hand, it is worthless to raise CQ higher than 0.30 as you would |
15010 | 1481 be wasting bits without any noticeable quality gain. |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1482 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1483 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1484 </sect2> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1485 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1486 <sect2 id="menc-feat-dvd-mpeg4-audio"> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1487 <title>Audio</title> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1488 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1489 <para> |
15010 | 1490 Audio is a much simpler problem to solve: if you care about quality, just |
1491 leave it as is. | |
15329 | 1492 Even AC3 5.1 streams are at most 448Kbit/s, and they are worth every bit. |
15034 | 1493 You might be tempted to transcode the audio to high quality Vorbis, but |
15329 | 1494 just because you do not have an A/V receiver for AC3 pass-through today |
1495 does not mean you will not have one tomorrow. Future-proof your DVD rips by | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1496 preserving the AC3 stream. |
15010 | 1497 You can keep the AC3 stream either by copying it directly into the video |
1498 stream <link linkend="menc-feat-mpeg4">during the encoding</link>. | |
1499 You can also extract the AC3 stream in order to mux it into containers such | |
15153 | 1500 as NUT or Matroska. |
15139 | 1501 <screen>mplayer <replaceable>source_file.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>sound.ac3</replaceable></screen> |
15153 | 1502 will dump into the file <replaceable>sound.ac3</replaceable> the |
1503 audio track number 129 from the file | |
1504 <replaceable>source_file.vob</replaceable> (NB: DVD VOB files | |
1505 usually use a different audio numbering, | |
15034 | 1506 which means that the VOB audio track 129 is the 2nd audio track of the file). |
15010 | 1507 </para> |
1508 | |
1509 <para> | |
1510 But sometimes you truly have no choice but to further compress the | |
1511 sound so that more bits can be spent on the video. | |
15034 | 1512 Most people choose to compress audio with either MP3 or Vorbis audio |
15010 | 1513 codecs. |
1514 While the latter is a very space-efficient codec, MP3 is better supported | |
1515 by hardware players, although this trend is changing. | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1516 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1517 |
15010 | 1518 <para> |
1519 First of all, you will have to convert the DVD sound into a WAV file that the | |
1520 audio codec can use as input. | |
1521 For example: | |
15139 | 1522 <screen>mplayer <replaceable>source_file.vob</replaceable> -ao pcm:file=<replaceable>destination_sound.wav</replaceable> -vc dummy -aid 1 -vo null</screen> |
15153 | 1523 will dump the second audio track from the file |
1524 <replaceable>source_file.vob</replaceable> into the file | |
1525 <replaceable>destination_sound.wav</replaceable>. | |
15010 | 1526 You may want to normalize the sound before encoding, as DVD audio tracks |
1527 are commonly recorded at low volumes. | |
1528 You can use the tool <application>normalize</application> for instance, | |
15031
d377a597dc28
Fixes better wording. Suggestions by The Wanderer and Josh Varner.
gpoirier
parents:
15029
diff
changeset
|
1529 which is available in most distributions. |
15329 | 1530 If you are using Windows, a tool such as <application>BeSweet</application> |
15031
d377a597dc28
Fixes better wording. Suggestions by The Wanderer and Josh Varner.
gpoirier
parents:
15029
diff
changeset
|
1531 can do the same job. |
15034 | 1532 You will compress in either Vorbis or MP3. |
15010 | 1533 For example: |
15139 | 1534 <screen>oggenc -q1 <replaceable>destination_sound.wav</replaceable></screen> |
15153 | 1535 will encode <replaceable>destination_sound.wav</replaceable> with |
1536 the encoding quality 1, which is roughly equivalent to 80Kb/s, and | |
1537 is the minimum quality at which you should encode if you care about | |
1538 quality. | |
15113
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1539 Please note that MEncoder currently cannot mux Vorbis audio tracks |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1540 into the output file because it only supports AVI and MPEG |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1541 containers as an output, each of which may lead to audio/video |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1542 playback synchronization problems with some players when the AVI file |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1543 contain VBR audio streams such as Vorbis. |
15329 | 1544 Do not worry, this document will show you how you can do that with third |
15010 | 1545 party programs. |
1546 </para> | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1547 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1548 </sect2> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1549 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1550 <sect2 id="menc-feat-dvd-mpeg4-interlacing"> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1551 <title>Interlacing and Telecine</title> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1552 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1553 <para> |
14958 | 1554 Almost all movies are shot at 24 fps. Because NTSC is 30000/1001 fps, some |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1555 processing must be done to this 24 fps video to make it run at the correct |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1556 NTSC framerate. The process is called 3:2 pulldown, commonly referred to |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1557 as telecine (because pulldown is often applied during the telecine |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1558 process), and, naively described, it works by slowing the film down to |
14958 | 1559 24000/1001 fps, and repeating every fourth frame. |
11780 | 1560 </para> |
1561 | |
1562 <para> | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1563 No special processing, however, is done to the video for PAL DVDs, which |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1564 run at 25 fps. (Technically, PAL can be telecined, called 2:2 pulldown, |
15329 | 1565 but this does not become an issue in practice.) The 24 fps film is simply |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1566 played back at 25 fps. The result is that the movie runs slightly faster, |
15329 | 1567 but unless you are an alien, you probably will not notice the difference. |
1568 Most PAL DVDs have pitch-corrected audio, so when they are played back at | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1569 25 fps things will sound right, even though the audio track (and hence the |
15329 | 1570 whole movie) has a running time that is 4% less than NTSC DVDs. |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1571 </para> |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1572 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1573 <para> |
15329 | 1574 Because the video in a PAL DVD has not been altered, you needn't worry |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1575 much about frame rate. The source is 25 fps, and your rip will be 25 |
15329 | 1576 fps. However, if you are ripping an NTSC DVD movie, you may need to |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1577 apply inverse telecine. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1578 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1579 |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1580 <para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1581 For movies shot at 24 fps, the video on the NTSC DVD is either telecined |
14958 | 1582 30000/1001, or else it is progressive 24000/1001 fps and intended to be telecined |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1583 on-the-fly by a DVD player. On the other hand, TV series are usually |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1584 only interlaced, not telecined. This is not a hard rule: some TV series |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1585 are interlaced (such as Buffy the Vampire Slayer) whereas some are a |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1586 mixture of progressive and interlaced (such as Angel, or 24). |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1587 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1588 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1589 <para> |
15329 | 1590 It is highly recommended that you read the section on |
14734 | 1591 <link linkend="menc-feat-telecine">How to deal with telecine and interlacing in NTSC DVDs</link> |
1592 to learn how to handle the different possibilities. | |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1593 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1594 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1595 <para> |
15329 | 1596 However, if you are mostly just ripping movies, likely you are either |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1597 dealing with 24 fps progressive or telecined video, in which case you can |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1598 use the <option>pullup</option> filter <option>-vf |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1599 pullup,softskip</option>. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1600 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1601 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1602 </sect2> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1603 |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1604 <sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced"> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1605 <title>Encoding interlaced video</title> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1606 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1607 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1608 If the movie you want to encode is interlaced (NTSC video or |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1609 PAL video), you will need to choose whether you want to |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1610 deinterlace or not. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1611 While deinterlacing will make your movie usable on progressive |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1612 scan displays such a computer monitors and projectors, it comes |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
1613 at a cost: The fieldrate of 50 or 60000/1001 fields per second |
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
1614 is halved to 25 or 30000/1001 frames per second, and roughly half of |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1615 the information in your movie will be lost during scenes with |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1616 significant motion. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1617 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1618 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1619 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1620 Therefore, if you are encoding for high quality archival purposes, |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1621 it is recommended not to deinterlace. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1622 You can always deinterlace the movie at playback time when |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1623 displaying it on progressive scan devices, and future players will |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1624 be able to deinterlace to full fieldrate, interpolating 50 or |
15487
fbda59d597ba
Fix imprecise fps numbers, patch by Corey Hickey <bugfood-ml at fatooh dot org>.
diego
parents:
15485
diff
changeset
|
1625 60000/1001 entire frames per second from the interlaced video. |
15446
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1626 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1627 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1628 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1629 Special care must be taken when working with interlaced video: |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1630 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1631 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1632 <orderedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1633 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1634 Crop height and y-offset must be multiples of 4. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1635 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1636 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1637 Any vertical scaling must be performed in interlaced mode. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1638 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1639 <listitem><para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1640 Postprocessing and denoising filters may not work as expected |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1641 unless you take special care to operate them a field at a time, |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1642 and they may damage the video if used incorrectly. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1643 </para></listitem> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1644 </orderedlist> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1645 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1646 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1647 With these things in mind, here is our first example: |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1648 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1649 <screen> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1650 mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \ |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1651 vcodec=mpeg2video:vbitrate=6000:ilmv:ildct:acodec=mp2:abitrate=224 |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1652 </screen> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1653 <para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1654 Note the <option>ilmv</option> and <option>ildct</option> options. |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1655 </para> |
39b8eafcf94a
Preparing to encode: Identifying source material and framerate + how to encode interlaced content
gpoirier
parents:
15427
diff
changeset
|
1656 </sect2> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1657 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1658 <sect2 id="menc-feat-dvd-mpeg4-filtering"> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1659 <title>Filtering</title> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1660 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1661 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1662 In general, you want to do as little filtering as possible to the movie |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1663 in order to remain close to the original DVD source. Cropping is often |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1664 necessary (as described above), but do not scale the video. Although |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1665 scaling down is sometimes preferred to using higher quantizers, we want |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1666 to avoid both these things: remember that we decided from the start to |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1667 trade bits for quality. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1668 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1669 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1670 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1671 Also, do not adjust gamma, contrast, brightness, etc. What looks good |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1672 on your display may not look good on others. These adjustments should |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1673 be done on playback only. |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1674 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1675 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1676 <para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1677 One thing you might want to do, however, is pass the video through a |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1678 very light denoise filter, such as <option>-vf hqdn3d=2:1:2</option>. |
15329 | 1679 Again, it is a matter of putting those bits to better use: why waste them |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1680 encoding noise when you can just add that noise back in during playback? |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1681 Increasing the parameters for <option>hqdn3d</option> will further |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1682 improve compressibility, but if you increase the values too much, you |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1683 risk degrading the image visibily. The suggested values above |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1684 (<option>2:1:2</option>) are quite conservative; you should feel free to |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1685 experiment with higher values and observe the results for yourself. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1686 </para> |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1687 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1688 </sect2> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1689 |
15113
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1690 <sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options"> |
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
1691 <title>Encoding options of libavcodec</title> |
15010 | 1692 |
1693 <para> | |
15329 | 1694 Ideally, you would probably want to be able to just tell the encoder to switch |
15010 | 1695 into "high quality" mode and move on. |
1696 That would probably be nice, but unfortunately hard to implement as different | |
15034 | 1697 encoding options yield different quality results depending on the source material. |
15329 | 1698 That is because compression depends on the visual properties of the video |
15031
d377a597dc28
Fixes better wording. Suggestions by The Wanderer and Josh Varner.
gpoirier
parents:
15029
diff
changeset
|
1699 in question. |
d377a597dc28
Fixes better wording. Suggestions by The Wanderer and Josh Varner.
gpoirier
parents:
15029
diff
changeset
|
1700 For example, anime and live action have very different properties and |
d377a597dc28
Fixes better wording. Suggestions by The Wanderer and Josh Varner.
gpoirier
parents:
15029
diff
changeset
|
1701 thus require different options to obtain optimum encoding. |
15010 | 1702 The good news is that some options should never be left out, like |
1703 <option>mbd=2</option>, <option>trell</option>, and <option>v4mv</option>. | |
15034 | 1704 See below for a detailed description of common encoding options. |
15010 | 1705 </para> |
1706 | |
1707 | |
1708 <itemizedlist> | |
1709 <title>Options to adjust:</title> | |
1710 <listitem><para> | |
1711 <emphasis role="bold">vmax_b_frames</emphasis>: 1 or 2 is good, depending on | |
1712 the movie. | |
1713 Note that libavcodec does not yet support closed GOP (the option | |
15329 | 1714 <option>cgop</option> does not currently work), so DivX5 will not be able to |
15010 | 1715 decode anything encoded with B-frames. |
1716 </para></listitem> | |
1717 | |
1718 <listitem><para> | |
1719 <emphasis role="bold">vb_strategy=1</emphasis>: helps in high-motion scenes. | |
1720 Requires vmax_b_frames >= 2. | |
1721 On some videos, vmax_b_frames may hurt quality, but vmax_b_frames=2 along | |
1722 with vb_strategy=1 helps. | |
1723 </para></listitem> | |
1724 | |
1725 <listitem><para> | |
1726 <emphasis role="bold">dia</emphasis>: motion search range. Bigger is better | |
1727 and slower. | |
1728 Negative values are a completely different scale. | |
1729 Good values are -1 for a fast encode, or 2-4 for slower. | |
1730 </para></listitem> | |
1731 | |
1732 <listitem><para> | |
1733 <emphasis role="bold">predia</emphasis>: motion search pre-pass. | |
1734 Not as important as dia. Good values are 1 (default) to 4. Requires preme=2 | |
1735 to really be useful. | |
1736 </para></listitem> | |
1737 | |
1738 <listitem><para> | |
1739 <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Comparison function for | |
1740 motion estimation. | |
1741 Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate | |
1742 distortion). | |
1743 0 is fastest, and sufficient for precmp. | |
1744 For cmp and subcmp, 2 is good for anime, and 3 is good for live action. | |
1745 6 may or may not be slightly better, but is slow. | |
1746 </para></listitem> | |
1747 | |
1748 <listitem><para> | |
1749 <emphasis role="bold">last_pred</emphasis>: Number of motion predictors to | |
1750 take from the previous frame. | |
1751 1-3 or so help at little speed cost. | |
1752 Higher values are slow for no extra gain. | |
1753 </para></listitem> | |
1754 | |
1755 <listitem><para> | |
1756 <emphasis role="bold">cbp, mv0</emphasis>: Controls the selection of macroblocks. | |
1757 Small speed cost for small quality gain. | |
1758 </para></listitem> | |
1759 | |
1760 <listitem><para> | |
1761 <emphasis role="bold">qprd</emphasis>: adaptive quantization based on the | |
1762 macroblock's complexity. | |
1763 May help or hurt depending on the video and other options. | |
1764 This can cause artifacts unless you set vqmax to some reasonably small value | |
1765 (6 is good, maybe as low as 4); vqmin=1 should also help. | |
1766 </para></listitem> | |
1767 | |
1768 <listitem><para> | |
1769 <emphasis role="bold">qns</emphasis>: very slow, especially when combined | |
1770 with qprd. | |
15031
d377a597dc28
Fixes better wording. Suggestions by The Wanderer and Josh Varner.
gpoirier
parents:
15029
diff
changeset
|
1771 This option will make the encoder minimize noise due to compression |
15038 | 1772 artifacts instead of making the encoded video strictly match the source. |
15329 | 1773 Do not use this unless you have already tweaked everything else as far as it |
1774 will go and the results still are not good enough. | |
15010 | 1775 </para></listitem> |
1776 | |
1777 <listitem><para> | |
1778 <emphasis role="bold">vqcomp</emphasis>: Tweak ratecontrol. | |
1779 What values are good depends on the movie. | |
1780 You can safely leave this alone if you want. | |
1781 Reducing vqcomp puts more bits on low-complexity scenes, increasing it puts | |
1782 them on high-complexity scenes (default: 0.5, range: 0-1. recommended range: | |
1783 0.5-0.7). | |
1784 </para></listitem> | |
1785 | |
1786 <listitem><para> | |
1787 <emphasis role="bold">vlelim, vcelim</emphasis>: Sets the single coefficient | |
1788 elimination threshold for luminance and chroma planes. | |
1789 These are encoded separately in all MPEG-like algorithms. | |
1790 The idea behind these options is to use some good heuristics to determine | |
1791 when the change in a block is less than the threshold you specify, and in | |
1792 such a case, to just encode the block as "no change". | |
1793 This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9 | |
15034 | 1794 seem to be good for live movies, but seem not to help with anime; |
15010 | 1795 when encoding animation, you should probably leave them unchanged. |
1796 </para></listitem> | |
1797 | |
1798 <listitem><para> | |
1799 <emphasis role="bold">qpel</emphasis>: Quarter pixel motion estimation. | |
15034 | 1800 MPEG-4 uses half pixel precision for its motion search by default, |
15010 | 1801 therefore this option comes with an overhead as more information will be |
1802 stored in the encoded file. | |
15329 | 1803 The compression gain/loss depends on the movie, but it is usually not very |
15010 | 1804 effective on anime. |
15034 | 1805 qpel always incurs a significant cost in CPU decode time (+20% in |
15010 | 1806 practice). |
1807 </para></listitem> | |
1808 | |
1809 <listitem><para> | |
15329 | 1810 <emphasis role="bold">psnr</emphasis>: does not affect the actual encoding, |
15010 | 1811 but writes a log file giving the type/size/quality of each frame, and |
15034 | 1812 prints a summary of PSNR (Peak Signal to Noise Ratio) at the end. |
15010 | 1813 </para></listitem> |
1814 | |
1815 </itemizedlist> | |
1816 | |
1817 <itemizedlist> | |
1818 <title>Options not recommended to play with:</title> | |
1819 <listitem><para> | |
1820 <emphasis role="bold">vme</emphasis>: The default is best. | |
1821 </para></listitem> | |
1822 | |
1823 <listitem><para> | |
1824 <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisual adaptive | |
1825 quantization. | |
15329 | 1826 You do not want to play with those options if you care about quality. |
15031
d377a597dc28
Fixes better wording. Suggestions by The Wanderer and Josh Varner.
gpoirier
parents:
15029
diff
changeset
|
1827 Reasonable values may be effective in your case, but be warned this is very |
15010 | 1828 subjective. |
1829 </para></listitem> | |
1830 | |
1831 <listitem><para> | |
1832 <emphasis role="bold">scplx_mask</emphasis>: Tries to prevent blocky | |
1833 artifacts, but postprocessing is better. | |
1834 </para></listitem> | |
1835 </itemizedlist> | |
1836 | |
1837 </sect2> | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1838 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1839 <sect2 id="menc-feat-dvd-mpeg4-example"> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1840 <title>Example</title> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1841 |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1842 <para> |
15329 | 1843 So, you have just bought your shiny new copy of Harry Potter and the Chamber |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1844 of Secrets (widescreen edition, of course), and you want to rip this DVD |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1845 so that you can add it to your Home Theatre PC. This is a region 1 DVD, |
15329 | 1846 so it is NTSC. The example below will still apply to PAL, except you will |
14958 | 1847 omit <option>-ofps 24000/1001</option> (because the output framerate is the |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1848 same as the input framerate), and of course the crop dimensions will be |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1849 different. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1850 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1851 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1852 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1853 After running <option>mplayer dvd://1</option>, we follow the process |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1854 detailed in the section <link linkend="menc-feat-telecine">How to deal |
15329 | 1855 with telecine and interlacing in NTSC DVDs</link> and discover that it is |
14958 | 1856 24000/1001 fps progressive video, which means that we needn't use an inverse |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1857 telecine filter, such as <option>pullup</option> or |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1858 <option>filmdint</option>. |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1859 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1860 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1861 <para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1862 Next, we want to determine the appropriate crop rectangle, so we use the |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1863 cropdetect filter: |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1864 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1865 <screen>mplayer dvd://1 -vf cropdetect</screen> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1866 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1867 Make sure you seek to a fully filled frame (such as a bright scene), and |
15329 | 1868 you will see in <application>MPlayer</application>'s console output: |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1869 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1870 <screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen> |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1871 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1872 We then play the movie back with this filter to test its correctness: |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1873 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1874 <screen>mplayer dvd://1 -vf crop=720:362:0:58</screen> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1875 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1876 And we see that it looks perfectly fine. Next, we ensure the width and |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1877 height are a multiple of 16. The width is fine, however the height is |
15329 | 1878 not. Since we did not fail 7th grade math, we know that the nearest |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1879 multiple of 16 lower than 362 is 352. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1880 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1881 |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1882 <para> |
15329 | 1883 We could just use <option>crop=720:352:0:58</option>, but it would be nice |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1884 to take a little off the top and a little off the bottom so that we |
15329 | 1885 retain the center. We have shrunk the height by 10 pixels, but we do not |
1886 want to increase the y-offset by 5-pixels since that is an odd number and | |
1887 will adversely affect quality. Instead, we will increase the y-offset by | |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1888 4 pixels: |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1889 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1890 <screen>mplayer dvd://1 -vf crop=720:352:0:62</screen> |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1891 |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1892 Another reason to shave pixels from both the top and the bottom is that we |
15329 | 1893 ensure we have eliminated any half-black pixels if they exist. Note that if |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1894 your video is telecined, make sure the <option>pullup</option> filter (or |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1895 whichever inverse telecine filter you decide to use) appears in the filter |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1896 chain before you crop. If it is interlaced, deinterlace before cropping. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1897 (If you choose to preserve the interlaced video, then make sure your |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1898 vertical crop offset is a multiple of 4.) |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1899 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1900 |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1901 <para> |
15329 | 1902 If you are really concerned about losing those 10 pixels, you might |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1903 prefer instead to scale the dimensions down to the nearest multiple of 16. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1904 The filter chain would look like: |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1905 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1906 <screen>-vf crop=720:362:0:58,scale=720:352</screen> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1907 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1908 Scaling the video down like this will mean that some small amount of |
15329 | 1909 detail is lost, though it probably will not be perceptible. Scaling up will |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1910 result in lower quality (unless you increase the bitrate). Cropping |
15329 | 1911 discards those pixels altogether. It is a tradeoff that you will want to |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1912 consider for each circumstance. For example, if the DVD video was made |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1913 for television, you might want to avoid vertical scaling, since the line |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1914 sampling corresponds to the way the content was originally recorded. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1915 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1916 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1917 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1918 On inspection, we see that our movie has a fair bit of action and high |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1919 amounts of detail, so we pick 2400Kbit for our bitrate. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1920 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1921 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1922 <para> |
15329 | 1923 We are now ready to do the two pass encode. Pass one: |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1924 |
14958 | 1925 <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1926 -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1927 -o Harry_Potter_2.avi</screen> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1928 |
14422 | 1929 And pass two is the same, except that we specify <option>vpass=2</option>: |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1930 |
14958 | 1931 <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1932 -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1933 -o Harry_Potter_2.avi</screen> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1934 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1935 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1936 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1937 The options <option>v4mv:mbd=2:trell</option> will greatly increase the |
15329 | 1938 quality at the expense of encoding time. There is little reason to leave |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1939 these options out when the primary goal is quality. The options |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1940 <option>cmp=3:subcmp=3:mbcmp=3</option> select a comparison function that |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1941 yields higher quality than the defaults. You might try experimenting with |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1942 this parameter (refer to the man page for the possible values) as |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1943 different functions can have a large impact on quality depending on the |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1944 source material. For example, if you find |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1945 <systemitem class="library">libavcodec</systemitem> produces too much |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1946 blocky artifacting, you could try selecting the experimental NSSE as |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1947 comparison function via <option>*cmp=10</option>. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1948 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1949 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1950 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1951 For this movie, the resulting AVI will be 138 minutes long and nearly |
15329 | 1952 3GB. And because you said that file size does not matter, this is a |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1953 perfectly acceptable size. However, if you had wanted it smaller, you |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1954 could try a lower bitrate. Increasing bitrates have diminishing |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1955 returns, so while we might clearly see an improvement from 1800Kbit to |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1956 2000Kbit, it might not be so noticeable above 2000Kbit. Feel |
15329 | 1957 free to experiment until you are happy. |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1958 </para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1959 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1960 <para> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1961 Because we passed the source video through a denoise filter, you may want |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1962 to add some of it back during playback. This, along with the |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1963 <option>spp</option> post-processing filter, drastically improves the |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1964 perception of quality and helps eliminate blocky artifacts in the video. |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1965 With <application>MPlayer</application>'s <option>autoq</option> option, |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1966 you can vary the amount of post-processing done by the spp filter |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1967 depending on available CPU. Also, at this point, you may want to apply |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1968 gamma and/or color correction to best suit your display. For example: |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1969 |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1970 <screen>mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3</screen> |
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
1971 |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1972 </para> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1973 </sect2> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
1974 |
15148
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1975 <sect2 id="menc-feat-dvd-mpeg4-muxing"> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1976 <title>Muxing</title> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1977 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1978 Now that you have encoded your video, you will most likely want |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1979 to mux it with one or more audio tracks into a movie container, such |
15153 | 1980 as AVI, MPEG, Matroska or NUT. |
15148
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1981 <application>MEncoder</application> is currently only able to output |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1982 audio and video into MPEG and AVI container formats. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1983 for example: |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1984 <screen>mencoder -oac copy -ovc copy -o <replaceable>output_movie.avi</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable></screen> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1985 This would merge the video file <replaceable>input_video.avi</replaceable> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1986 and the audio file <replaceable>input_audio.mp2</replaceable> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1987 into the AVI file <replaceable>output_movie.avi</replaceable>. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1988 This command works with MPEG-1 layer I, II and III (more commonly known |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1989 as MP3) audio, WAV and a few other audio formats too. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1990 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1991 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1992 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1993 MEncoder features experimental support for |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1994 <systemitem class="library">libavformat</systemitem>, which is a |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1995 library from the FFmpeg project that supports muxing and demuxing |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1996 a variety of containers. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1997 For example: |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1998 <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> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
1999 This will do the same thing as the previous example, except that |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2000 the output container will be ASF. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2001 Please note that this support is highly experimental (but getting |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2002 better every day), and will only work if you compiled |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2003 <application>MPlayer</application> with the support for |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2004 <systemitem class="library">libavformat</systemitem> enabled (which |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2005 means that a pre-packaged binary version will not work in most cases). |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2006 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2007 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2008 <sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations"> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2009 <title>Limitations of the AVI container</title> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2010 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2011 Although it is the most widely-supported container format after MPEG-1, |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2012 AVI also has some major drawbacks. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2013 Perhaps the most obvious is the overhead. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2014 For each chunk of the AVI file, 24 bytes are wasted on headers and |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2015 index. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2016 This translates into a little over 5 MB per hour, or 1-2.5% |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2017 overhead for a 700 MB movie. This may not seem like much, but it could |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2018 mean the difference between being able to use 700 kbit/sec video or |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2019 714 kbit/sec, and every bit of quality counts. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2020 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2021 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2022 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2023 In addition this gross inefficiency, AVI also has the following major |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2024 limitations: |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2025 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2026 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2027 <orderedlist> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2028 <listitem> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2029 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2030 Only fixed-fps content can be stored. This is particularly limiting |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2031 if the original material you want to encode is mixed content, for |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2032 example a mix of NTSC video and film material. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2033 Actually there are hacks that can be used to store mixed-framerate |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2034 content in AVI, but they increase the (already huge) overhead |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2035 fivefold or more and so are not practical. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2036 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2037 </listitem> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2038 <listitem> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2039 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2040 Audio in AVI files must be either constant-bitrate (CBR) or |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2041 constant-framesize (i.e. all frames decode to the same number of |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2042 samples). |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2043 Unfortunately, the most efficient codec, Vorbis, does not meet |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2044 either of these requirements. |
15329 | 2045 Therefore, if you plan to store your movie in AVI, you will have to |
15148
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2046 use a less efficient codec such as MP3 or AC3. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2047 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2048 </listitem> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2049 </orderedlist> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2050 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2051 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2052 Having said all that, <application>MEncoder</application> does not |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2053 currently support variable-fps output or Vorbis encoding. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2054 Therefore, you may not see these as limitations if |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2055 <application>MEncoder</application> is the |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2056 only tool you will be using to produce your encodes. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2057 However, it is possible to use <application>MEncoder</application> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2058 only for video encoding, and then use external tools to encode |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2059 audio and mux it into another container format. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2060 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2061 </sect3> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2062 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2063 <sect3 id="menc-feat-dvd-mpeg4-muxing-matroska"> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2064 <title>Muxing into the Matroska container</title> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2065 <para> |
15157 | 2066 Matroska is a free, open standard container format, aiming |
15148
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2067 to offer a lot of advanced features, which older containers |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2068 like AVI cannot handle. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2069 For example, Matroska supports variable bitrate audio content |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2070 (VBR), variable framerates (VFR), chapters, file attachments, |
15157 | 2071 error detection code (EDC) and modern A/V Codecs like "Advanced Audio |
2072 Coding" (AAC), "Vorbis" or "MPEG-4 AVC" (H.264), next to nothing | |
15148
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2073 handled by AVI. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2074 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2075 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2076 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2077 The tools required to create Matroska files are collectively called |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2078 <application>mkvtoolnix</application>, and are available for most |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2079 Unix platforms as well as <application>Windows</application>. |
15157 | 2080 Because Matroska is an open standard you may find other |
15148
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2081 tools that suit you better, but since mkvtoolnix is the most |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2082 common, and is supported by the Matroska team itself, we will |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2083 only cover its usage. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2084 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2085 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2086 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2087 Probably the easiest way to get started with Matroska is to use |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2088 <application>MMG</application>, the graphical frontend shipped with |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2089 <application>mkvtoolnix</application>, and follow the |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2090 <ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guide to mkvmerge GUI (mmg)</ulink> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2091 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2092 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2093 <para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2094 You may also mux audio and video files using the command line: |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2095 <screen>mkvmerge -o <replaceable>output.mkv</replaceable> <replaceable>input_video.avi</replaceable> <replaceable>input_audio1.mp3</replaceable> <replaceable>input_audio2.ac3</replaceable></screen> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2096 This would merge the video file <replaceable>input_video.avi</replaceable> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2097 and the two audio files <replaceable>input_audio1.mp3</replaceable> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2098 and <replaceable>input_audio2.ac3</replaceable> into the Matroska |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2099 file <replaceable>output.mkv</replaceable>. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2100 Matroska, as mentioned earlier, is able to do much more than that, like |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2101 multiple audio tracks (including fine-tuning of audio/video |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2102 synchronization), chapters, subtitles, splitting, etc... |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2103 Please refer to the documentation of those applications for |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2104 more details. |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2105 </para> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2106 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2107 </sect3> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2108 |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2109 </sect2> |
067f10ad6538
New section: "menc-feat-dvd-mpeg4-muxing" about how to mux a video
gpoirier
parents:
15139
diff
changeset
|
2110 |
11732
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
2111 </sect1> |
d5784b575959
DVD ripping section added courtesy of Samuli K«£rkk«£inen with some
diego
parents:
11710
diff
changeset
|
2112 |
15326 | 2113 <sect1 id="menc-feat-x264"> |
2114 <title>Encoding with the <systemitem class="library">x264</systemitem> codec</title> | |
2115 <para> | |
2116 <systemitem class="library">x264</systemitem> is a free library for | |
15370 | 2117 encoding H.264/AVC video streams. |
15326 | 2118 Before starting to encode, you need to <link linkend="codec-x264-encode"> |
2119 set up <application>MEncoder</application> to support it</link>. | |
2120 </para> | |
2121 | |
2122 <sect2 id="menc-feat-x264-intro"> | |
2123 <title>What options should I use to get the best results?</title> | |
2124 | |
2125 <para> | |
2126 Please begin by reviewing the | |
2127 <systemitem class="library">x264</systemitem> section of | |
2128 <application>MPlayer</application>'s man page. | |
2129 This section is intended to be a supplement to the man page. | |
2130 </para> | |
2131 | |
2132 <orderedlist> | |
2133 <title>There are mainly three types of considerations when choosing encoding | |
2134 options:</title> | |
2135 <listitem><para>Trading off encoding time vs. quality</para></listitem> | |
2136 <listitem><para>Frame type decision options</para></listitem> | |
2137 <listitem><para>Ratecontrol and quantization decision options</para></listitem> | |
2138 </orderedlist> | |
2139 | |
2140 <para> | |
2141 This guide is mostly concerned with the first class of options. | |
2142 The other two types often have more to do with personal | |
2143 preferences and individual requirements. | |
2144 </para> | |
2145 | |
2146 <para> | |
2147 Before continuing, please note that this guide uses only one | |
2148 quality metric: global PSNR. | |
2149 For a brief explanation of what PSNR is, see | |
2150 <ulink url="http://en.wikipedia.org/wiki/PSNR">the Wikipedia article on PSNR</ulink>. | |
2151 Global PSNR is the last PSNR number reported when you include | |
2152 the <option>psnr</option> option in <option>x264encopts</option>. | |
15358 | 2153 Any time you read a claim about PSNR, one of the assumptions |
15326 | 2154 behind the claim is that equal bitrates are used. |
2155 </para> | |
2156 | |
2157 <para> | |
2158 Nearly all of this guide's comments assume you are using | |
2159 two pass. | |
2160 When comparing options, there are two major reasons for using | |
2161 two pass encoding. | |
2162 First, using two pass often gains around 1dB PSNR, which is a | |
2163 very big difference. | |
2164 Secondly, testing options by doing direct quality comparisons | |
15370 | 2165 with one pass encodes is a dubious proposition because bitrate |
15326 | 2166 often varies significantly with each encode. |
2167 It is not always easy to tell whether quality changes are due | |
2168 mainly to changed options, or if they mostly reflect | |
2169 differences in the achieved bitrate. | |
2170 </para> | |
2171 | |
2172 <para> | |
2173 Of the options which allow you to trade off speed for quality, | |
2174 <option>subq</option> and <option>frameref</option> are usually | |
2175 by far the most important. | |
2176 If you are interested in tweaking either speed or quality, these | |
2177 are the first options you should consider. | |
2178 </para> | |
2179 | |
2180 <para> | |
2181 On the speed dimension, the <option>frameref</option> and | |
2182 <option>subq</option> options interact with each other fairly | |
2183 strongly. | |
2184 Experience shows that, with one reference frame, | |
2185 <option>subq=5</option> takes about 35% more time than | |
2186 <option>subq=1</option>. | |
2187 With 6 reference frames, the penalty grows to over 60%. | |
2188 <option>subq</option>'s effect on PSNR seems fairly constant | |
2189 regardless of the number of reference frames. | |
2190 Typically, <option>subq=5</option> gains 0.2-0.5 dB | |
2191 global PSNR over <option>subq=1</option>. | |
2192 This is usually enough to be visible. | |
2193 </para> | |
2194 | |
2195 </sect2> | |
2196 | |
2197 <sect2 id="menc-feat-x264-encoding-options"> | |
2198 <title>Encoding options of x264</title> | |
2199 | |
2200 <itemizedlist> | |
2201 <listitem><para> | |
2202 <emphasis role="bold">frameref</emphasis>: | |
2203 <option>frameref</option> is set to 1 by default, but this | |
2204 should not be taken to imply that it is reasonable to set it | |
2205 to 1. | |
2206 Merely raising <option>frameref</option> to 2 gains around | |
2207 0.15dB PSNR with a 5-10% speed penalty; this seems like a | |
2208 good tradeoff. | |
2209 <option>frameref=3</option> gains around 0.25dB PSNR over | |
2210 <option>frameref=1</option>, which should be a visible | |
2211 difference. | |
2212 <option>frameref=3</option> is around 15% slower than | |
2213 <option>frameref=1</option>. | |
2214 Unfortunately, diminishing returns set in rapidly. | |
2215 <option>frameref=6</option> can be expected to gain only | |
2216 0.05-0.1 dB over <option>frameref=3</option> at an additional | |
2217 15% speed penalty. | |
2218 Above <option>frameref=6</option>, the quality gains are | |
2219 usually very small (although you should keep in mind throughout | |
2220 this whole discussion that it can vary quite a lot depending on | |
2221 your source). | |
2222 In a fairly typical case, <option>frameref=12</option> | |
2223 will improve global PSNR by a tiny 0.02dB over | |
2224 <option>frameref=6</option>, at a speed cost of 15%-20%. | |
2225 At such high <option>frameref</option> values, the only really | |
2226 good thing that can be said is that increasing even further will | |
2227 almost certainly never <emphasis role="bold">harm</emphasis> | |
2228 PSNR, but the additional quality benefits are barely even | |
2229 measurable, let alone perceptible. | |
2230 </para> | |
2231 <note><title>Note:</title> | |
2232 <para> | |
2233 Raising <option>frameref</option> to unnecessarily high values | |
2234 <emphasis role="bold">can</emphasis> and | |
2235 <emphasis role="bold">usually does</emphasis> | |
2236 hurt coding efficiency if you turn CABAC off. | |
2237 With CABAC on (the default behavior), the possibility of setting | |
2238 <option>frameref</option> "too high" currently seems too remote | |
2239 to even worry about, and in the future, optimizations may remove | |
15358 | 2240 the possibility altogether. |
15326 | 2241 </para> |
2242 </note> | |
2243 <para> | |
2244 If you care about speed, a reasonable compromise is to use low | |
2245 <option>subq</option> and <option>frameref</option> values on | |
2246 the first pass, and then raise them on the second pass. | |
2247 Typically, this has a negligible negative effect on the final | |
15370 | 2248 quality: You will probably lose well under 0.1dB PSNR, which |
15326 | 2249 should be much too small of a difference to see. |
2250 However, different values of <option>frameref</option> can | |
2251 occasionally affect frametype decision. | |
2252 Most likely, these are rare outlying cases, but if you want to | |
2253 be pretty sure, consider whether your video has either | |
2254 fullscreen repetitive flashing patterns or very large temporary | |
2255 occlusions which might force an I-frame. | |
2256 Adjust the first-pass <option>frameref</option> so it is large | |
2257 enough to contain the duration of the flashing cycle (or occlusion). | |
2258 For example, if the scene flashes back and forth between two images | |
2259 over a duration of three frames, set the first pass | |
2260 <option>frameref</option> to 3 or higher. | |
2261 This issue is probably extremely rare in live action video material, | |
2262 but it does sometimes come up in video game captures. | |
2263 </para></listitem> | |
2264 | |
2265 <listitem><para> | |
2266 <emphasis role="bold">bframes</emphasis>: | |
2267 The usefulness of B-frames is questionable in most other codecs | |
2268 you may be used to. | |
2269 In H.264, this has changed: there are new techniques and block | |
2270 types that are possible in B-frames. | |
2271 Usually, even a naive B-frame choice algorithm can have a | |
2272 significant PSNR benefit. | |
2273 It is also interesting to note that if you turn off the adaptive | |
2274 B-frame decision (<option>nob_adapt</option>), encoding with | |
2275 <option>bframes</option> usually speeds up encoding speed somewhat. | |
2276 </para> | |
2277 <para> | |
2278 With adaptive B-frame decision turned off | |
2279 (<option>x264encopts</option>'s <option>nob_adapt</option>), | |
2280 the optimal value for this setting will usually range from | |
2281 <option>bframes=1</option> to <option>bframes=3</option>. | |
2282 With adaptive B-frame decision on (the default behavior), it is | |
2283 probably safe to use higher values; the encoder will try to | |
2284 reduce the use of B-frames in scenes where they would hurt | |
2285 compression. | |
2286 </para> | |
2287 <para> | |
2288 If you are going to use <option>bframes</option> at all, consider | |
2289 setting the maximum number of B-frames to 2 or higher in order to | |
2290 take advantage of weighted prediction. | |
2291 </para></listitem> | |
2292 | |
2293 <listitem><para> | |
2294 <emphasis role="bold">b_adapt</emphasis>: | |
15370 | 2295 Note: This is on by default. |
15326 | 2296 </para> |
2297 <para> | |
2298 With this option enabled, the encoder will use some simple | |
2299 heuristics to reduce the number of B-frames used in scenes that | |
2300 might not benefit from them as much. | |
2301 You can use <option>b_bias</option> to tweak how B-frame-happy | |
2302 the encoder is. | |
2303 The speed penalty of adaptive B-frames is currently rather modest, | |
2304 but so is the potential quality gain. | |
2305 It usually does not hurt, however. | |
2306 Note that this only affects speed and frametype decision on the | |
2307 first pass. | |
2308 <option>b_adapt</option> and <option>b_bias</option> have no | |
2309 effect on subsequent passes. | |
2310 </para></listitem> | |
2311 | |
2312 <listitem><para> | |
2313 <emphasis role="bold">b_pyramid</emphasis>: | |
15427
21378d633887
Only 2 consecutive bframes are needed for pyramid reordering
gpoirier
parents:
15370
diff
changeset
|
2314 You might as well enable this option if you are using >=2 B-frames; |
15370 | 2315 as the man page says, you get a little quality improvement at no |
15326 | 2316 speed cost. |
2317 Note that these videos cannot be read by libavcodec-based decoders | |
2318 older than about March 5, 2005. | |
2319 </para></listitem> | |
2320 | |
2321 <listitem><para> | |
2322 <emphasis role="bold">weight_b</emphasis>: | |
2323 In typical cases, there is not much gain with this option. | |
2324 However, in crossfades or fade-to-black scenes, weighted | |
2325 prediction gives rather large bitrate savings. | |
2326 In MPEG-4 ASP, a fade-to-black is usually best coded as a series | |
2327 of expensive I-frames; using weighted prediction in B-frames | |
2328 makes it possible to turn at least some of these into much more | |
2329 reasonably-sized B-frames. | |
2330 Encoding time cost seems to be minimal, if there is any. | |
2331 Also, contrary to what some people seem to guess, the decoder | |
2332 CPU requirements are not much affected by weighted prediction, | |
2333 all else being equal. | |
2334 </para> | |
2335 <para> | |
2336 Unfortunately, the current adaptive B-frame decision algorithm | |
2337 has a strong tendency to avoid B-frames during fades. | |
2338 Until this changes, it may be a good idea to add | |
2339 <option>nob_adapt</option> to your x264encopts, if you expect | |
2340 fades to have a significant effect in your particular video | |
2341 clip. | |
2342 </para></listitem> | |
2343 | |
2344 <listitem><para> | |
2345 <emphasis role="bold">deblockalpha, deblockbeta</emphasis>: | |
2346 This topic is going to be a bit controversial. | |
2347 </para> | |
2348 <para> | |
2349 H.264 defines a simple deblocking procedure on I-blocks that uses | |
2350 pre-set strengths and thresholds depending on the QP of the block | |
2351 in question. | |
2352 By default, high QP blocks are filtered heavily, and low QP blocks | |
2353 are not deblocked at all. | |
2354 The pre-set strengths defined by the standard are well-chosen and | |
2355 the odds are very good that they are PSNR-optimal for whatever | |
2356 video you are trying to encode. | |
2357 The <option>deblockalpha</option> and <option>deblockbeta</option> | |
2358 parameters allow you to specify offsets to the preset deblocking | |
2359 thresholds. | |
2360 </para> | |
2361 <para> | |
2362 Many people seem to think it is a good idea to lower the deblocking | |
2363 filter strength by large amounts (say, -3). | |
2364 This is however almost never a good idea, and in most cases, | |
2365 people who are doing this do not understand very well how | |
2366 deblocking works by default. | |
2367 </para> | |
2368 <para> | |
2369 The first and most important thing to know about the in-loop | |
2370 deblocking filter is that the default thresholds are almost always | |
2371 PSNR-optimal. | |
2372 In the rare cases that they are not optimal, the ideal offset is | |
2373 plus or minus 1. | |
2374 Adjusting deblocking parameters by a larger amount is almost | |
2375 guaranteed to hurt PSNR. | |
2376 Strengthening the filter will smear more details; weakening the | |
2377 filter will increase the appearance of blockiness. | |
2378 </para> | |
2379 <para> | |
2380 It is definitely a bad idea to lower the deblocking thresholds if | |
2381 your source is mainly low in spacial complexity (i.e., not a lot | |
2382 of detail or noise). | |
2383 The in-loop filter does a rather excellent job of concealing | |
2384 the artifacts that occur. | |
2385 If the source is high in spacial complexity, however, artifacts | |
2386 are less noticeable. | |
2387 This is because the ringing tends to look like detail or noise. | |
2388 Human visual perception easily notices when detail is removed, | |
2389 but it does not so easily notice when the noise is wrongly | |
2390 represented. | |
2391 When it comes to subjective quality, noise and detail are somewhat | |
2392 interchangeable. | |
2393 By lowering the deblocking filter strength, you are most likely | |
2394 increasing error by adding ringing artifacts, but the eye does | |
2395 not notice because it confuses the artifacts with detail. | |
2396 </para> | |
2397 | |
2398 <para> | |
2399 This <emphasis role="bold">still</emphasis> does not justify | |
2400 lowering the deblocking filter strength, however. | |
2401 You can generally get better quality noise from postprocessing. | |
2402 If your H.264 encodes look too blurry or smeared, try playing with | |
2403 <option>-vf noise</option> when you play your encoded movie. | |
2404 <option>-vf noise=8a:4a</option> should conceal most mild | |
2405 artifacting. | |
2406 It will almost certainly look better than the results you | |
2407 would have gotten just by fiddling with the deblocking filter. | |
2408 </para></listitem> | |
2409 </itemizedlist> | |
2410 </sect2> | |
2411 </sect1> | |
2412 | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2413 <sect1 id="menc-feat-telecine"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2414 <title>How to deal with telecine and interlacing within NTSC DVDs</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2415 |
14958 | 2416 <sect2 id="menc-feat-telecine-intro"> |
2417 <title>Introduction</title> | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2418 <formalpara> |
14958 | 2419 <title>What is telecine?</title> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2420 <para> |
15329 | 2421 I suggest you visit this page if you do not understand much of what |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2422 is written in this document: |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2423 <ulink url="http://www.divx.com/support/guides/guide.php?gid=10">http://www.divx.com/support/guides/guide.php?gid=10</ulink> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2424 This URL links to an understandable and reasonably comprehensive |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2425 description of what telecine is. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2426 </para></formalpara> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2427 |
14958 | 2428 <formalpara> |
2429 <title>A note about the numbers.</title> | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2430 <para> |
14958 | 2431 Many documents, including the guide linked above, refer to the fields |
2432 per second value of NTSC video as 59.94 and the corresponding frames | |
2433 per second values as 29.97 (for telecined and interlaced) and 23.976 | |
2434 (for progressive). For simplicity, some documents even round these | |
2435 numbers to 60, 30, and 24. | |
2436 </para></formalpara> | |
2437 | |
2438 <para> | |
2439 Strictly speaking, all those numbers are approximations. Black and | |
2440 white NTSC video was exactly 60 fields per second, but 60000/1001 | |
2441 was later chosen to accomodate color data while remaining compatible | |
2442 with contemporary black and white televisions. Digital NTSC video | |
2443 (such as on a DVD) is also 60000/1001 fields per second. From this, | |
2444 interlaced and telecined video are derived to be 30000/1001 frames | |
2445 per second; progressive video is 24000/1001 frames per second. | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2446 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2447 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2448 <para> |
14958 | 2449 Older versions of the <application>MEncoder</application> documentation |
2450 and many archived mailing list posts refer to 59.94, 29.97, and 23.976. | |
2451 All <application>MEncoder</application> documentation has been updated | |
2452 to use the fractional values, and you should use them too. | |
2453 </para> | |
2454 | |
2455 <para> | |
2456 <option>-ofps 23.976</option> is incorrect. | |
2457 <option>-ofps 24000/1001</option> should be used instead. | |
2458 </para> | |
2459 | |
2460 <formalpara> | |
2461 <title>How telecine is used.</title> | |
2462 <para> | |
2463 All video intended to be displayed on an NTSC | |
2464 television set must be 60000/1001 fields per second. Made-for-TV movies | |
2465 and shows are often filmed directly at 60000/1001 fields per second, but | |
2466 the majority of cinema is filmed at 24 or 24000/1001 frames per | |
2467 second. When cinematic movie DVDs are mastered, the video is then | |
2468 converted for television using a process called telecine. | |
2469 </para></formalpara> | |
2470 | |
2471 <para> | |
2472 On a DVD, the video is never actually stored as 60000/1001 fields per | |
2473 second. For video that was originally 60000/1001, each pair of fields is | |
2474 combined to form a frame, resulting in 30000/1001 frames per | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2475 second. Hardware DVD players then read a flag embedded in the video |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2476 stream to determine whether the odd- or even-numbered lines should |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2477 form the first field. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2478 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2479 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2480 <para> |
14958 | 2481 Usually, 24000/1001 frames per second content stays as it is when |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2482 encoded for a DVD, and the DVD player must perform telecining |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2483 on-the-fly. Sometimes, however, the video is telecined |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2484 <emphasis>before</emphasis> being stored on the DVD; even though it |
14958 | 2485 was originally 24000/1001 frames per second, it becomes 60000/1001 fields per |
2486 second. When it is stored on the DVD, pairs of fields are combined to form | |
2487 30000/1001 frames per second. | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2488 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2489 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2490 <para> |
14958 | 2491 When looking at individual frames formed from 60000/10001 fields per |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2492 second video, telecined or otherwise, interlacing is clearly visible |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2493 wherever there is any motion, because one field (say, the |
14958 | 2494 even-numbered lines) represents a moment in time 1/(60000/1001) |
2495 seconds later than the other. Playing interlaced video on a computer | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2496 looks ugly both because the monitor is higher resolution and because |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2497 the video is shown frame-after-frame instead of field-after-field. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2498 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2499 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2500 <itemizedlist> |
14958 | 2501 <title>Notes:</title> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2502 <listitem><para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2503 This section only applies to NTSC DVDs, and not PAL. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2504 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2505 <listitem><para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2506 The example <application>MEncoder</application> lines throughout the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2507 document are <emphasis role="bold">not</emphasis> intended for |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2508 actual use. They are simply the bare minimum required to encode the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2509 pertaining video category. How to make good DVD rips or fine-tune |
15113
a53b942816a5
Removes the section "menc-feat-fix-avi" as part of it was wrong and the other
gpoirier
parents:
15038
diff
changeset
|
2510 <systemitem class="library">libavcodec</systemitem> for maximal |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2511 quality is not within the scope of this document. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2512 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2513 <listitem><para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
2514 There are a couple footnotes specific to this guide, linked like this: |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2515 <link linkend="menc-feat-telecine-footnotes">[1]</link> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2516 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2517 </itemizedlist> |
14958 | 2518 </sect2> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2519 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2520 <sect2 id="menc-feat-telecine-ident"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2521 <title>How to tell what type of video you have</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2522 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2523 <sect3 id="menc-feat-telecine-ident-progressive"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2524 <title>Progressive</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2525 <para> |
14958 | 2526 Progressive video was originally filmed at 24000/1001 fps, and stored |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2527 on the DVD without alteration. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2528 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2529 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2530 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2531 When you play a progressive DVD in <application>MPlayer</application>, |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2532 <application>MPlayer</application> will print the following line as |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2533 soon as the movie begins to play: |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2534 |
14958 | 2535 <screen> demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.</screen> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2536 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2537 From this point forward, demux_mpg should never say it finds |
14958 | 2538 "30000/1001 fps NTSC content." |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2539 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2540 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2541 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2542 When you watch progressive video, you should never see any |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2543 interlacing. Beware, however, because sometimes there is a tiny bit |
15329 | 2544 of telecine mixed in where you would not expect. I have encountered TV |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2545 show DVDs that have one second of telecine at every scene change, or |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2546 at seemingly random places. I once watched a DVD that had a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2547 progressive first half, and the second half was telecined. If you |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2548 want to be <emphasis>really</emphasis> thorough, you can scan the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2549 entire movie: |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2550 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2551 <screen>mplayer dvd://1 -nosound -vo null -benchmark</screen> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2552 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2553 Using <option>-benchmark</option> makes |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2554 <application>MPlayer</application> play the movie as quickly as it |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2555 possibly can; still, depending on your hardware, it can take a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2556 while. Every time demux_mpg reports a framerate change, the line |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2557 immediately above will show you the time at which the change |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2558 occurred. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2559 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2560 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2561 <para> |
14734 | 2562 Sometimes progressive video on DVDs is referred to as |
2563 "soft-telecine" because it is intended to | |
2564 be telecined by the DVD player. | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2565 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2566 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2567 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2568 <sect3 id="menc-feat-telecine-ident-telecined"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2569 <title>Telecined</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2570 <para> |
14958 | 2571 Telecined video was originally filmed at 24000/1001, but was telecined |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2572 <emphasis>before</emphasis> it was written to the DVD. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2573 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2574 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2575 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2576 <application>MPlayer</application> does not (ever) report any |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2577 framerate changes when it plays telecined video. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2578 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2579 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2580 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2581 Watching a telecined video, you will see interlacing artifacts that |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2582 seem to "blink": they repeatedly appear and disappear. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2583 You can look closely at this by |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2584 <orderedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2585 <listitem> |
14734 | 2586 <screen>mplayer dvd://1</screen> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2587 </listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2588 <listitem><para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2589 Seek to a part with motion. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2590 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2591 <listitem><para> |
14734 | 2592 Use the <keycap>.</keycap> key to step forward one frame at a time. |
2593 </para></listitem> | |
2594 <listitem><para> | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2595 Look at the pattern of interlaced-looking and progressive-looking |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2596 frames. If the pattern you see is PPPII,PPPII,PPPII,... then the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2597 video is telecined. If you see some other pattern, then the video |
14734 | 2598 may have been telecined using some non-standard method; |
2599 <application>MEncoder</application> cannot losslessly convert | |
15329 | 2600 non-standard telecine to progressive. If you do not see any |
14734 | 2601 pattern at all, then it is most likely interlaced. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2602 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2603 </orderedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2604 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2605 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2606 <para> |
14734 | 2607 Sometimes telecined video on DVDs is referred to as |
14958 | 2608 "hard-telecine". Since hard-telecine is already 60000/1001 fields |
14734 | 2609 per second, the DVD player plays the video without any manipulation. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2610 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2611 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2612 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2613 <sect3 id="menc-feat-telecine-ident-interlaced"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2614 <title>Interlaced</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2615 <para> |
14958 | 2616 Interlaced video was originally filmed at 60000/1001 fields per second, |
2617 and stored on the DVD as 30000/1001 frames per second. The interlacing effect | |
14734 | 2618 (often called "combing") is a result of combining pairs of |
14958 | 2619 fields into frames. Each field is supposed to be 1/(60000/1001) seconds apart, |
14734 | 2620 and when they are displayed simultaneously the difference is apparent. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2621 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2622 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2623 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2624 As with telecined video, <application>MPlayer</application> should |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2625 not ever report any framerate changes when playing interlaced content. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2626 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2627 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2628 <para> |
14734 | 2629 When you view an interlaced video closely by frame-stepping with the |
2630 <keycap>.</keycap> key, you will see that every single frame is interlaced. | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2631 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2632 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2633 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2634 <sect3 id="menc-feat-telecine-ident-mixedpt"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2635 <title>Mixed progressive and telecine</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2636 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2637 All of a "mixed progressive and telecine" video was originally |
14958 | 2638 24000/1001 frames per second, but some parts of it ended up being telecined. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2639 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2640 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2641 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2642 When <application>MPlayer</application> plays this category, it will |
14958 | 2643 (often repeatedly) switch back and forth between "30000/1001 fps NTSC" |
2644 and "24000/1001 fps progressive NTSC". Watch the bottom of | |
12578 | 2645 <application>MPlayer</application>'s output to see these messages. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2646 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2647 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2648 <para> |
14958 | 2649 You should check the "30000/1001 fps NTSC" sections to make sure |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2650 they are actually telecine, and not just interlaced. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2651 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2652 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2653 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2654 <sect3 id="menc-feat-telecine-ident-mixedpi"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2655 <title>Mixed progressive and interlaced</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2656 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2657 In "mixed progressive and interlaced" content, progressive |
11913 | 2658 and interlaced video have been spliced together. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2659 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2660 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2661 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2662 This category looks just like "mixed progressive and telecine", |
15329 | 2663 until you examine the 30000/1001 fps sections and see that they do not have the |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2664 telecine pattern. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2665 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2666 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2667 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2668 </sect2> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2669 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2670 <sect2 id="menc-feat-telecine-encode"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2671 <title>How to encode each category</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2672 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2673 As I mentioned in the beginning, example <application>MEncoder</application> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2674 lines below are <emphasis role="bold">not</emphasis> meant to actually be used; |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2675 they only demonstrate the minimum parameters to properly encode each category. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2676 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2677 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2678 <sect3 id="menc-feat-telecine-encode-progressive"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2679 <title>Progressive</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2680 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2681 Progressive video requires no special filtering to encode. The only |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2682 parameter you need to be sure to use is |
14958 | 2683 <option>-ofps 24000/1001</option>. Otherwise, <application>MEncoder</application> |
2684 will try to encode at 30000/1001 fps and will duplicate frames. | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2685 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2686 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2687 <para> |
14958 | 2688 <screen>mencoder dvd://1 -nosound -ovc lavc -ofps 24000/1001</screen> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2689 </para> |
14734 | 2690 |
2691 <para> | |
2692 It is often the case, however, that a video that looks progressive | |
2693 actually has very short parts of telecine mixed in. Unless you are | |
2694 sure, it is safest to treat the video as | |
2695 <link linkend="menc-feat-telecine-encode-mixedpt">mixed progressive and telecine</link>. | |
2696 The performance loss is small | |
2697 <link linkend="menc-feat-telecine-footnotes">[3]</link>. | |
2698 </para> | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2699 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2700 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2701 <sect3 id="menc-feat-telecine-encode-telecined"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2702 <title>Telecined</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2703 <para> |
14958 | 2704 Telecine can be reversed to retrieve the original 24000/1001 content, |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2705 using a process called inverse-telecine. |
14734 | 2706 <application>MPlayer</application> contains several filters to |
2707 accomplish this; the best filter, <option>pullup</option>, is described | |
2708 in the <link linkend="menc-feat-telecine-encode-mixedpt">mixed | |
2709 progressive and telecine</link> section. | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2710 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2711 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2712 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2713 <sect3 id="menc-feat-telecine-encode-interlaced"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2714 <title>Interlaced</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2715 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2716 For most practical cases it is not possible to retrieve a complete |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2717 progressive video from interlaced content. The only way to do so |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2718 without losing half of the vertical resolution is to double the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2719 framerate and try to "guess" what ought to make up the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2720 corresponding lines for each field (this has drawbacks - see method |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2721 3). |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2722 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2723 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2724 <orderedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2725 <listitem><para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2726 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2727 Encode the video in interlaced form. Normally, interlacing wreaks |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2728 havoc with the encoder's ability to compress well, but |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2729 <systemitem class="library">libavcodec</systemitem> has two |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2730 parameters specifically for dealing with storing interlaced video a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2731 bit better: <option> ildct</option> and <option>ilme</option>. Also, |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2732 using <option>mbd=2</option> is strongly recommended |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2733 <link linkend="menc-feat-telecine-footnotes">[2] </link> because it |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2734 will encode macroblocks as non-interlaced in places where there is |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2735 no motion. Note that <option>-ofps</option> is NOT needed here. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2736 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2737 <screen>mencoder dvd://1 -nosound -ovc lavc -lavcopts ildct:ilme:mbd=2</screen> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2738 </para></listitem> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
2739 <listitem><para> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2740 Use a deinterlacing filter before encoding. There are several of |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2741 these filters available to choose from, each with its own advantages |
11913 | 2742 and disadvantages. Consult <option>mplayer -pphelp</option> to see |
15329 | 2743 what is available (grep for "deint"), and search the |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2744 <ulink url="http://www.mplayerhq.hu/homepage/design6/info.html#mailing_lists"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2745 MPlayer mailing lists</ulink> to find many discussions about the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2746 various filters. Again, the framerate is not changing, so no |
11913 | 2747 <option>-ofps</option>. Also, deinterlacing should be done after |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2748 cropping <link linkend="menc-feat-telecine-footnotes">[1]</link> and |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2749 before scaling. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2750 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2751 <screen>mencoder dvd://1 -nosound -vf pp=lb -ovc lavc</screen> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2752 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2753 <listitem><para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2754 Unfortunately, this option is buggy with |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2755 <application>MEncoder</application>; it ought to work well with |
15329 | 2756 <application>MEncoder G2</application>, but that is not here yet. You |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2757 might experience crahes. Anyway, the purpose of <option> -vf |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2758 tfields</option> is to create a full frame out of each field, which |
14958 | 2759 makes the framerate 60000/1001. The advantage of this approach is that no |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2760 data is ever lost; however, since each frame comes from only one |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2761 field, the missing lines have to be interpolated somehow. There are |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2762 no very good methods of generating the missing data, and so the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2763 result will look a bit similar to when using some deinterlacing |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2764 filters. Generating the missing lines creates other issues, as well, |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2765 simply because the amount of data doubles. So, higher encoding |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2766 bitrates are required to maintain quality, and more CPU power is |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2767 used for both encoding and decoding. tfields has several different |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2768 options for how to create the missing lines of each frame. If you |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2769 use this method, then Reference the manual, and chose whichever |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2770 option looks best for your material. Note that when using |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2771 <option>tfields</option> you |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
2772 <emphasis role="bold">have to</emphasis> specify both |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2773 <option>-fps</option> and <option>-ofps</option> to be twice the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2774 framerate of your original source. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2775 |
14958 | 2776 <screen>mencoder dvd://1 -nosound -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2777 </para></listitem> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
2778 <listitem><para> |
14734 | 2779 If you plan on downscaling dramatically, you can extract and encode |
15329 | 2780 only one of the two fields. Of course, you will lose half the vertical |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2781 resolution, but if you plan on downscaling to at most 1/2 of the |
15329 | 2782 original, the loss will not matter much. The result will be a |
14958 | 2783 progressive 30000/1001 frames per second file. The procedure is to use |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2784 <option>-vf field</option>, then crop |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2785 <link linkend="menc-feat-telecine-footnotes">[1]</link> and scale |
15329 | 2786 appropriately. Remember that you will have to adjust the scale to |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2787 compensate for the vertical resolution being halved. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2788 <screen>mencoder dvd://1 -nosound -vf field=0 -ovc lavc</screen> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2789 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2790 </orderedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2791 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2792 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2793 <sect3 id="menc-feat-telecine-encode-mixedpt"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2794 <title>Mixed progressive and telecine</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2795 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2796 In order to turn mixed progressive and telecine video into entirely |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2797 progressive video, the telecined parts have to be |
14734 | 2798 inverse-telecined. There are three ways to accomplish this, |
2799 described below. Note that you should | |
2800 <emphasis role="bold">always</emphasis> inverse-telecine before any | |
15329 | 2801 rescaling; unless you really know what you are doing, |
14734 | 2802 inverse-telecine before cropping, too |
2803 <link linkend="menc-feat-telecine-footnotes">[1]</link>. | |
14958 | 2804 <option>-ofps 24000/1001</option> is needed here because the output video |
2805 will be 24000/1001 frames per second. | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2806 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2807 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2808 <itemizedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2809 <listitem><para> |
14734 | 2810 <option>-vf pullup</option> is designed to inverse-telecine |
2811 telecined material while leaving progressive data alone. In order to | |
2812 work properly, <option>pullup</option> <emphasis role="bold">must</emphasis> | |
2813 be followed by the <option>softskip</option> filter or | |
2814 else <application>MEncoder</application> will crash. | |
2815 <option>pullup</option> is, however, the cleanest and most | |
2816 accurate method available for encoding both telecine and | |
2817 "mixed progressive and telecine". | |
2818 | |
14958 | 2819 <screen>mencoder dvd://1 -nosound -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen> |
14734 | 2820 </para> |
2821 | |
2822 | |
2823 </listitem> | |
2824 <listitem><para> | |
2825 An older method | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2826 is to, rather than inverse-telecine the telecined parts, telecine |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2827 the non-telecined parts and then inverse-telecine the whole |
11913 | 2828 video. Sound confusing? softpulldown is a filter that goes through |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2829 a video and makes the entire file telecined. If we follow |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2830 softpulldown with either <option>detc</option> or |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2831 <option>ivtc</option>, the final result will be entirely |
14958 | 2832 progressive. <option>-ofps 24000/1001</option> is needed. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2833 |
14958 | 2834 <screen>mencoder dvd://1 -nosound -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2835 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2836 </listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2837 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2838 <listitem><para> |
15329 | 2839 I have not used <option>-vf filmdint</option> myself, but here is what |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2840 D Richard Felker III has to say: |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2841 |
15329 | 2842 <blockquote><para>It is OK, but IMO it tries to deinterlace rather |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2843 than doing inverse telecine too often (much like settop DVD |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2844 players & progressive TVs) which gives ugly flickering and |
15329 | 2845 other artifacts. If you are going to use it, you at least need to |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2846 spend some time tuning the options and watching the output first |
15329 | 2847 to make sure it is not messing up.</para></blockquote> |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2848 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2849 </itemizedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2850 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2851 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2852 <sect3 id="menc-feat-telecine-encode-mixedpi"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2853 <title>Mixed progressive and interlaced</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2854 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2855 There are two options for dealing with this category, each of |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2856 which is a compromise. You should decide based on the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2857 duration/location of each type. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2858 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2859 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2860 <itemizedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2861 <listitem><para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2862 Treat it as progressive. The interlaced parts will look interlaced, |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2863 and some of the interlaced fields will have to be dropped, resulting |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2864 in a bit of uneven jumpiness. You can use a postprocessing filter if |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2865 you want to, but it may slightly degrade the progressive parts. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2866 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2867 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2868 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2869 This option should definitely not be used if you want to eventually |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2870 display the video on an interlaced device (with a TV card, for |
14958 | 2871 example). If you have interlaced frames in a 24000/1001 frames per |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2872 second video, they will be telecined along with the progressive |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2873 frames. Half of the interlaced "frames" will be displayed for three |
14958 | 2874 fields' duration (3/(60000/1001) seconds), resulting in a flicking |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2875 "jump back in time" effect that looks quite bad. If you |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2876 even attempt this, you <emphasis role="bold">must</emphasis> use a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2877 deinterlacing filter like <option>lb</option> or |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2878 <option>l5</option>. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2879 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2880 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2881 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2882 It may also be a bad idea for progressive display, too. It will drop |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2883 pairs of consecutive interlaced fields, resulting in a discontinuity |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2884 that can be more visible than with the second method, which shows |
14958 | 2885 some progressive frames twice. 30000/1001 frames per second interlaced |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2886 video is already a bit choppy because it really should be shown at |
15329 | 2887 60000/1001 fields per second, so the duplicate frames do not stand out as |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2888 much. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2889 </para> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
2890 |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2891 <para> |
15329 | 2892 Either way, it is best to consider your content and how you intend to |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2893 display it. If your video is 90% progressive and you never intend to |
15329 | 2894 show it on a TV, you should favor a progressive approach. If it is |
2895 only half progressive, you probably want to encode it as if it is all | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2896 interlaced. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2897 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2898 </listitem> |
12758
250ce1b2ef8f
improved DVD ripping guide by Jason Tackaberry <tack@sault.org>
diego
parents:
12615
diff
changeset
|
2899 |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2900 <listitem><para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2901 Treat it as interlaced. Some frames of the progressive parts will |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2902 need to be duplicated, resulting in uneven jumpiness. Again, |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2903 deinterlacing filters may slightly degrade the progressive parts. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2904 </para></listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2905 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2906 </itemizedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2907 </sect3> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2908 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2909 </sect2> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2910 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2911 <sect2 id="menc-feat-telecine-footnotes"> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2912 <title>Footnotes</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2913 <orderedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2914 <listitem><formalpara> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2915 <title>About cropping:</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2916 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2917 Video data on DVDs are stored in a format called YUV 4:2:0. In YUV |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2918 video, luma ("brightness") and chroma ("color") |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2919 are stored separately. Because the human eye is somewhat less |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2920 sensitive to color than it is to brightness, in a YUV 4:2:0 picture |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2921 there is only one chroma pixel for every four luma pixels. In a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2922 progressive picture, each square of four luma pixels (two on each |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2923 side) has one common chroma pixel. You must crop progressive YUV |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2924 4:2:0 to even resolutions, and use even offsets. For example, |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2925 <option>crop=716:380:2:26</option> is OK but |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2926 <option>crop=716:380:3:26 </option> is not. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2927 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2928 </formalpara> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2929 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2930 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2931 When you are dealing with interlaced YUV 4:2:0, the situation is a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2932 bit more complicated. Instead of every four luma pixels in the |
11913 | 2933 <emphasis>frame</emphasis> sharing a chroma pixel, every four luma |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2934 pixels in each <emphasis> field</emphasis> share a chroma |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2935 pixel. When fields are interlaced to form a frame, each scanline is |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2936 one pixel high. Now, instead of all four luma pixels being in a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2937 square, there are two pixels side-by-side, and the other two pixels |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2938 are side-by-side two scanlines down. The two luma pixels in the |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2939 intermediate scanline are from the other field, and so share a |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2940 different chroma pixel with two luma pixels two scanlines away. All |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2941 this confusion makes it necessary to have vertical crop dimensions |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2942 and offsets be multiples of four. Horizontal can stay even. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2943 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2944 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2945 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2946 For telecined video, I recommend that cropping take place after |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2947 inverse telecining. Once the video is progressive you only need to |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2948 crop by even numbers. If you really want to gain the slight speedup |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2949 that cropping first may offer, you must crop vertically by multiples |
15329 | 2950 of four or else the inverse-telecine filter will not have proper data. |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2951 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2952 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2953 <para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2954 For interlaced (not telecined) video, you must always crop |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2955 vertically by multiples of four unless you use <option>-vf |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2956 field</option> before cropping. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2957 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2958 </listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2959 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2960 <listitem><formalpara> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2961 <title>About encoding parameters and quality:</title> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2962 <para> |
15329 | 2963 Just because I recommend <option>mbd=2</option> here does not mean it |
2964 should not be used elsewhere. Along with <option>trell</option>, | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2965 <option>mbd=2</option> is one of the two |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2966 <systemitem class="library">libavcodec</systemitem> options that |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2967 increases quality the most, and you should always use at least those |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2968 two unless the drop in encoding speed is prohibitive (e.g. realtime |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2969 encoding). There are many other options to |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2970 <systemitem class="library">libavcodec</systemitem> that increase |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2971 encoding quality (and decrease encoding speed) but that is beyond |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2972 the scope of this document. |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2973 </para> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2974 </formalpara> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2975 </listitem> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2976 |
14734 | 2977 <listitem><formalpara> |
2978 <title>About the performance of pullup:</title> | |
2979 <para> | |
2980 It is safe to use <option>pullup</option> (along with <option>softskip | |
2981 </option>) on progressive video, and is usually a good idea unless | |
2982 the source has been definitively verified to be entirely progressive. | |
2983 The performace loss is small for most cases. On a bare-minimum encode, | |
2984 <option>pullup</option> causes <application>MEncoder</application> to | |
2985 be 50% slower. Adding sound processing and advanced <option>lavcopts | |
14828
37112d48fb50
grammar fix by Corey Hickey <bugfood-ml at fatooh dot org>
diego
parents:
14734
diff
changeset
|
2986 </option> overshadows that difference, bringing the performance |
14734 | 2987 decrease of using <option>pullup</option> down to 2%. |
2988 </para> | |
2989 </formalpara> | |
2990 </listitem> | |
2991 | |
11905
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2992 </orderedlist> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2993 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2994 </sect2> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2995 |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2996 </sect1> |
e1730b82a762
Telecine HOWTO by Corey Hickey <bugfood-ml@fatooh.org>, some modifications
diego
parents:
11823
diff
changeset
|
2997 |
9675 | 2998 </chapter> |