25279
|
1 <?xml version="1.0" encoding="utf-8"?>
|
26253
|
2 <!-- 38% synced with r22753 (row 2069) -->
|
25279
|
3 <chapter id="encoding-guide">
|
|
4 <title>La codifica con <application>MEncoder</application></title>
|
|
5
|
|
6 <sect1 id="menc-feat-dvd-mpeg4">
|
|
7 <title>Produrre un rip di un film da DVD in un
|
|
8 MPEG-4 ("DivX") di alta qualità</title>
|
|
9
|
|
10 <para>
|
25449
|
11 Una domanda frequente è "Come posso generare il rip con la migliore qualità
|
25279
|
12 per una dimensione data?". Un'altra domanda è "Come posso fare il rip da DVD
|
|
13 migliore in assoluto? Non mi interessa la dimensione del file, voglio solo la
|
|
14 più alta qualità."
|
|
15 </para>
|
|
16
|
|
17 <para>
|
|
18 L'ultima domanda è perlomeno forse posta malamente. Dopo tutto, se non ti
|
|
19 interessa la dimensione del file, perché non ti copi semplicemente l'intero
|
|
20 flusso video MPEG-2 dal DVD? Certo, avrai un AVI di 5GB, prendere o lasciare,
|
|
21 ma se vuoi la miglior qualità e non ti importa della dimensione, è
|
|
22 sicuramente la scelta migliore.
|
|
23 </para>
|
|
24
|
|
25 <para>
|
|
26 Invero, la ragione per cui vuoi codificare un DVD in MPEG-4 è proprio perché
|
|
27 ti interessa <emphasis role="bold">davvero</emphasis> la dimensione del file.
|
|
28 </para>
|
|
29
|
|
30 <para>
|
|
31 E' difficile offrire una ricetta da libro su come generare un rip da DVD in
|
|
32 qualità molto alta. Bisogna considerare vari fattori, e dovresti comprendere
|
|
33 questi dettagli, altrimenti alla fine probabilmente sarai insoddisfatto del
|
|
34 risultato. Più sotto evidenziamo alcuni di questi argomenti e poi passiamo ad
|
|
35 esaminare un esempio. Partiamo dal principio che per codificare il video tu
|
|
36 stia usando <systemitem class="library">libavcodec</systemitem> anche se la
|
|
37 teoria si applica allo stesso modo agli altri codec.
|
|
38 </para>
|
|
39
|
|
40 <para>
|
|
41 Se questo ti sembra troppo, dovresti probabilmente usare una delle belle
|
|
42 interfacce elencate nella
|
|
43 <ulink url="http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends">sezione su MEncoder</ulink>
|
|
44 nella pagina dei progetti collegati (related projects).
|
|
45 In tal modo riuscirai ad ottenere rip di alta qualità senza pensarci troppo,
|
|
46 dato che la maggior parte di questi strumenti sono progettati per prendere
|
|
47 decisioni sagge al tuo posto.
|
|
48 </para>
|
|
49
|
|
50 <!-- ********** -->
|
|
51
|
|
52 <sect2 id="menc-feat-dvd-mpeg4-preparing-encode">
|
|
53 <title>Prepararsi alla codifica: identificare il materiale sorgente e la frequenza fotogrammi (framerate)</title>
|
|
54
|
|
55 <para>
|
|
56 Prima ancora di pensare a codificare un film, devi fare alcuni passi
|
|
57 preliminari.
|
|
58 </para>
|
|
59
|
|
60 <para>
|
|
61 Il primo e più importante passo prima della codifica dovrebbe essere
|
|
62 determinare il tipo di contenuto che stai trattando.
|
|
63 Se il tuo materiale di partenza arriva da un DVD o da TV in
|
|
64 broadcast/via cavo/satellite, sarà salvato in uno dei due formati: NTSC per
|
|
65 il Nord America e il Giappone, PAL per l'Europa, etc...
|
|
66 E' importante tuttavia comprendere che questo è solo il formato per la
|
|
67 trasmissione in televisione, e spesso <emphasis role="bold">non</emphasis>
|
|
68 corrisponde al formato originario del film.
|
|
69 L'esperienza insegna che il materiale NTSC è molto più difficile da
|
|
70 codificare, perché ci sono più elementi da identificare nel sorgente.
|
|
71 Per generare una codifica adeguata, devi sapere il formato originario.
|
|
72 Il non tenerne conto porterà a molti __flaws__ nella tua codifica, inclusi
|
|
73 artefatti orrendi __combing__ (interlacing) e fotogrammi duplicati o addirittura
|
|
74 perduti.
|
25449
|
75 Oltre ad essere brutti, gli artefatti influenzano negativamente l'efficienza
|
25279
|
76 della codifica: otterrai una peggior qualità a parità di bitrate.
|
|
77 </para>
|
|
78
|
|
79
|
|
80 <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps">
|
|
81 <title>Identificare la frequenza fotogrammi (framerate) del sorgente</title>
|
|
82
|
|
83 <para>
|
|
84 C'è qui un elenco di tipi comuni di materiale sorgente, dove facilmente si
|
|
85 trovano e le loro proprietà:
|
|
86 </para>
|
|
87
|
|
88 <itemizedlist>
|
|
89 <listitem><para>
|
|
90 <emphasis role="bold">Film standard</emphasis>: prodotti per la visione
|
|
91 su schermi da cinema a 24fps.
|
|
92 </para></listitem>
|
|
93 <listitem><para>
|
|
94 <emphasis role="bold">Video PAL</emphasis>: registrati con una videocamera
|
|
95 PAL a 50 campi al secondo.
|
|
96 Un campo è composto dalle sole linee pari o dispari di un fotogramma.
|
|
97 La televisione è stata progettata per aggiornarle alternativamente come un
|
|
98 metodo economico di compressione analogica.
|
|
99 L'occhio umano teoricamente compensa la cosa, ma una volta che capisci come
|
|
100 funziona l'interlacciatura imparerai a vederla anche in TV e non ti piacerà
|
|
101 più la TV.
|
|
102 Due campi <emphasis role="bold">non</emphasis> fanno un fotogramma intero,
|
|
103 poiché sono registrati a 1/50 di secondo di distanza nel tempo e quindi non
|
|
104 si allineano a meno che non ci sia movimento alcuno.
|
|
105 </para></listitem>
|
|
106 <listitem><para>
|
|
107 <emphasis role="bold">Video NTSC</emphasis>: registrati con una videocamera
|
|
108 NTSC a 60000/1001 campi al secondi, o 60 campi al secondo nell'era precedente
|
|
109 al colore.
|
|
110 Per il resto sono simili ai PAL.
|
|
111 </para></listitem>
|
|
112 <listitem><para>
|
|
113 <emphasis role="bold">Animazione</emphasis>: solitamente disegnati a 24fps,
|
|
114 ma se ne trovano anche in tipologie con frequenza di fotogrammi mista.
|
|
115 </para></listitem>
|
|
116 <listitem><para>
|
|
117 <emphasis role="bold">Computer Graphics (CG)</emphasis>: possono essere con
|
|
118 qualsiasi frequenza di fotogrammi, ma alcuni sono più comuni di altri;
|
|
119 sono tipici 24 e 30 fotogrammi al secondo per NTSC e 25fps per PAL.
|
|
120 </para></listitem>
|
|
121 <listitem><para>
|
|
122 <emphasis role="bold">Vecchi Film</emphasis>: varie e più basse frequenze di
|
|
123 fotogrammi.
|
|
124 </para></listitem>
|
|
125 </itemizedlist>
|
|
126 </sect3>
|
|
127
|
|
128
|
|
129 <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material">
|
|
130 <title>Identificare il materiale sorgente</title>
|
|
131
|
|
132 <para>
|
|
133 I film composti da fotogrammi sono indicati come "progressivi", mentre quelli
|
|
134 composti da campi indipendenti sono chiamati "interlacciati" o video - anche se
|
|
135 quest'ultimo termine è ambiguo.
|
|
136 </para>
|
|
137
|
|
138 <para>
|
|
139 Per complicare ulteriormente le cose, alcuni film possono essere un misto di
|
|
140 molti dei suddetti.
|
|
141 </para>
|
|
142
|
|
143 <para>
|
|
144 La più importante distinzione da farsi tra tutti questi formati è che alcuni
|
|
145 sono basati su fotogrammi mentre gli altri sono basati su campi.
|
|
146 <emphasis role="bold">Ogniqualvolta</emphasis> un film viene preparato per la
|
|
147 visualizzazione in televisione (DVD inclusi), viene convertito in un formato
|
|
148 basato su campi.
|
|
149 I vari metodi con cui si può fare sono conosciuti nel loro insieme come
|
|
150 "telecine", di cui il tristemente famoso "3:2 pulldown" NTSC è una tipologia.
|
|
151 A meno che il materiale originale sia anch'esso basato su campi (e con la stessa
|
|
152 frequenza di campi) otterrai un filmato in un formato diverso da quello che è
|
|
153 in origine.
|
|
154 </para>
|
|
155
|
|
156 <itemizedlist>
|
|
157 <title>Ci sono vari tipi usuali di "pulldown":</title>
|
|
158 <listitem><para>
|
|
159 <emphasis role="bold">Pulldown PAL 2:2</emphasis>: il più bello di tutti.
|
|
160 Ciascun fotogramma viene mostrato per la durata di due campi, estraendo le
|
|
161 linee pari e dispari e mostrandole alternativamente.
|
|
162 Se il materiale di origine è a 24fps questo processo velocizza il filmato
|
|
163 del 4%.
|
|
164 </para></listitem>
|
|
165 <listitem><para>
|
|
166 <emphasis role="bold">Pulldown PAL 2:2:2:2:2:2:2:2:2:2:2:3</emphasis>:
|
|
167 Ogni dodicesimo fotogramma viene mostrato per la durata di tre campi, invece
|
|
168 che solamente per due.
|
|
169 Questo evita il problema dell'aumento del 4% di velocità, ma rende il
|
|
170 processo molto più difficile da __reversare__.
|
|
171 Solitamente viene usato nelle produzioni musicali, dove modificare del 4% la
|
|
172 velocità rovinerebbe pesantemente la colonna sonora.
|
|
173 </para></listitem>
|
|
174 <listitem><para>
|
|
175 <emphasis role="bold">Telecine NTSC 3:2</emphasis>: i fotogrammi vengono
|
|
176 mostrati alternativamente per la durata di 3 o 2 campi.
|
|
177 Questo porta ad una frequenza di campi di 2.5 volte la frequenza orginaria.
|
|
178 Il risultato viene anche leggermente rallentato da 60 campi al secondo fino a
|
|
179 60000/1001 campi al secondo, per mantenere la frequenza dei campi di NTSC.
|
|
180 </para></listitem>
|
|
181 <listitem><para>
|
|
182 <emphasis role="bold">Pulldown NTSC 2:2</emphasis>: utilizzato per mostrare
|
|
183 materiale a 30fps su NTSC.
|
|
184 Carino, proprio come il pulldown PAL 2:2.
|
|
185 </para></listitem>
|
|
186 </itemizedlist>
|
|
187
|
|
188 <para>
|
|
189 Ci sono anche alcuni metodi per convertire tra video NTSC e PAL, ma gli
|
|
190 arogmenti relativi non sono obiettivo di questa guida.
|
|
191 Se ti trovi di fronte a un film di questo genere e lo vuoi codificare, la tua
|
|
192 scelta migliore è cercarne una copia nel formato originale.
|
|
193 La conversione tra questi due formati è altamente distruttiva e non può
|
|
194 essere __reversed__ in maniera pulita, perciò la tua codifica __soffrirà__
|
|
195 molto se eseguita da una sorgente convertita.
|
|
196 </para>
|
|
197
|
|
198 <para>
|
|
199 Quando il video viene salvato du un DVD, coppie consecutive di campi sono
|
|
200 raggruppati in un fotogramma, anche se non sono pensati per esser mostrati
|
|
201 nello stesso momento.
|
|
202 Lo standard MPEG-2 usato sui DVD e per la TV digitale fornisce un modo sia per
|
|
203 codificare i fotogrammi progressivi originali, che uno per memorizzare
|
|
204 nell'intestazione del fotogramma il numero dei campi per cui il fotogramma
|
|
205 stesso debba essere mostrato.
|
|
206 Se viene usato questo metodo il filmato verrà spesso indicato come
|
|
207 "soft telecine", visto che il procedimento indica semplicemente al lettore DVD
|
|
208 di applicare il pulldown al film, invece che modificare il film stesso.
|
|
209 Questa situazione è decisamente preferibile, dato che può essere facilmente
|
|
210 __reversed__ (__actually ignored__) dal condificatore, e dato che mantiene la
|
|
211 massima qualità.
|
|
212 Tuttavia, molti studi di produzione DVD e di trasmissione non usano tecniche di
|
|
213 codifica appropriate, ma al contrario producono filmati con "hard telecine", in
|
|
214 cui i campi sono sotanzialmente duplicati nell'MPEG-2 codificato.
|
|
215 </para>
|
|
216
|
|
217 <para>
|
|
218 Le modalità per gestire questi casi verranno descritte
|
|
219 <link linkend="menc-feat-telecine">più avanti in questa guida</link>.
|
|
220 Per adesso ti lasciamo alcune indicazioni su come identificare il tipo di
|
|
221 materiale che stai trattando:
|
|
222 </para>
|
|
223
|
|
224 <itemizedlist>
|
|
225 <title>Regioni NTSC:</title>
|
|
226 <listitem><para>
|
|
227 Se <application>MPlayer</application> dice che la frequenza fotogrammi passa
|
|
228 a 24000/1001 durante la visione del film e non ritorna come prima, è quasi
|
|
229 sicuramente un qualche contenuto progressivo che è stato modificato in
|
|
230 "soft telecine".
|
|
231 </para></listitem>
|
|
232 <listitem><para>
|
|
233 Se <application>MPlayer</application> dice che la frequenza fotogrammi va
|
|
234 avanti e indietro tra 24000/1001 e 30000/1001 e ogni tanto vedi delle "righe",
|
|
235 allora ci sono varie possibilità.
|
|
236 Le parti a 24000/1001 fps sono quasi certamente contenuto progressivo, in
|
|
237 "soft telecine", ma le parti a 30000/1001 fps possono essere sia contenuto in
|
|
238 "hard telecine" a 24000/1001 fps che video NTSC a 60000/1001 campi al secondo.
|
|
239 Usa le stesse linee guida dei due casi seguenti per determinare quale.
|
|
240 </para></listitem>
|
|
241 <listitem><para>
|
|
242 Se <application>MPlayer</application> non mostra mai una modifica alla
|
|
243 frequenza dei fotogrammi e ogni singolo fotogramma con del movimento appare
|
|
244 "rigato", il tuo filmato è video NTSC a 60000/1001 campi al secondo.
|
|
245 </para></listitem>
|
|
246 <listitem><para>
|
|
247 Se <application>MPlayer</application> non mostra mai una modifica alla
|
|
248 frequenza dei fotogrammi e due fotogrammi ogni cinque sono "rigati", il tuo
|
|
249 film è contenuto a 24000/1001fps in "hard telecine".
|
|
250 </para></listitem>
|
|
251 </itemizedlist>
|
|
252
|
|
253 <itemizedlist>
|
|
254 <title>Regioni PAL:</title>
|
|
255 <listitem><para>
|
|
256 Se non vedi mai alcuna "riga", il tuo film è pulldown 2:2.
|
|
257 </para></listitem>
|
|
258 <listitem><para>
|
|
259 Se vedi delle "righe" che vanno e vengono ogni mezzo secondo,
|
|
260 allora il tuo film è pulldown 2:2:2:2:2:2:2:2:2:2:2:3.
|
|
261 </para></listitem>
|
|
262 <listitem><para>
|
|
263 Se vedi sempre "righe" durante il movimento, allora il tuo film è video
|
|
264 PAL a 50 campi al secondo.
|
|
265 </para></listitem>
|
|
266 </itemizedlist>
|
|
267
|
|
268 <note><title>Consiglio:</title>
|
|
269 <para>
|
|
270 <application>MPlayer</application> può rallentare la riproduzione del film
|
|
271 con l'opzione -speed o riprodurlo fotogramma per fotogramma.
|
|
272 Prova ad usare <option>-speed</option> 0.2 per guardare molto lentamente il
|
|
273 film o premi ripetutamente il tasto "<keycap>.</keycap>" per riprodurre un
|
|
274 fotogramma per volta ed identificare la sequenza, se non riesci a vederla a
|
|
275 velocità normale.
|
|
276 </para>
|
|
277 </note>
|
|
278 </sect3>
|
|
279 </sect2>
|
|
280
|
|
281 <!-- ********** -->
|
|
282
|
|
283 <sect2 id="menc-feat-dvd-mpeg4-2pass">
|
|
284 <title>Quantizzatore costante vs. multipassaggio</title>
|
|
285
|
|
286 <para>
|
|
287 E' possibile codificare il filmato in un'ampia gamma di qualità.
|
|
288 Con i codificatori video moderni e un pelo di compressione pre-codec
|
|
289 (ridimensionando e ripulendo), è possibile raggiungere una qualità molto
|
|
290 buona in 700 MB, per un film di 90-110 minuti in widescreen.
|
|
291 Inoltre tutti i film tranne i più lunghi possono essere codificati con una
|
|
292 qualità pressoché perfetta in 1400 MB.
|
|
293 </para>
|
|
294
|
|
295 <para>
|
|
296 Ci sono tre approcci per codificare il video: bitrate costante (CBR),
|
|
297 quantizzatore costante, e multipassaggio (ABR, o bitrate medio).
|
|
298 </para>
|
|
299
|
|
300 <para>
|
|
301 La complessità dei fotogrammi di un filmato, e di conseguenza il numero di
|
|
302 bit necessari per comprimerli, può variare molto da una scena ad un'altra.
|
|
303 I codificatori video moderni possono adattarsi via via a queste necessità
|
|
304 e cambiare il bitrate.
|
|
305 In modalità semplici come CBR, tuttavia, i codificatori non sanno il bitrate
|
|
306 necessario alle scene venture e perciò non possono stare sopra al bitrate
|
|
307 richiesto per lunghi periodi di tempo.
|
|
308 Modalità più avanzate, come la codifica in multipassaggio, possono tener
|
|
309 conto delle statistiche del passo precedente; questo corregge il problema
|
|
310 suddetto.
|
|
311 </para>
|
|
312
|
|
313 <note><title>Nota:</title>
|
|
314 <para>
|
|
315 La maggior parte dei codec che gestisce la codifica in ABR può usare solo la
|
|
316 codifica a due passaggi mentre altri come
|
|
317 <systemitem class="library">x264</systemitem>,
|
|
318 <systemitem class="library">Xvid</systemitem> e
|
|
319 <systemitem class="library">libavcodec</systemitem> gestiscono il
|
|
320 multipassaggio, che migliora leggermente la qualità ad ogni passo, anche se
|
|
321 tale moglioramento non è più misurabile né visibile veramente oltre il
|
|
322 quarto passo o giù di lì.
|
|
323 Perciò in questa sezione due passaggi e multipassaggio avranno lo stesso
|
|
324 significato.
|
|
325 </para>
|
|
326 </note>
|
|
327
|
|
328 <para>
|
|
329 In ambedue i modi, il codec video (come
|
|
330 <systemitem class="library">libavcodec</systemitem>) spezza il fotogramma video
|
|
331 in macroblocchi da 16x16 pixel e poi applica un quantizzatore a ciascun
|
|
332 macroblocco. Più basso è il quantizzatore, migliore sarà la qualità e
|
|
333 più alto il bitrate.
|
|
334 Il metodo usato dal codificatore del filmato per determinare quale quantizzatore
|
|
335 utilizzare per un dato macroblocco varia ed è altamente configurabile.
|
|
336 (Questa è una semplificazione estrema del vero processo, ma il concetto di base
|
|
337 è comodo per capire.)
|
|
338 </para>
|
|
339
|
|
340 <para>
|
|
341 Quando specifichi un bitrate constante, il codec video codificherà il video,
|
|
342 scartando dettagli tanto quanto è necessario e il meno possibile, in modo da
|
|
343 rimanere al di sotto del bitrate voluto. Se non ti interessa davvero la
|
|
344 dimensione del file, potresti anche usare CBR e specificare un bitrate
|
|
345 infinito. (In pratica, questo significa un valore abbastanza alto da non porre
|
|
346 limiti, come 10000Kbit.) Con nessun limite sul bitrate, il risultato è che il
|
|
347 codec userà il quantizzatore più basso possibile per ciascun macroblocco
|
|
348 (come specificato da <option>vqmin</option> per
|
|
349 <systemitem class="library">libavcodec</systemitem>, che è 2 di default).
|
|
350 Appena specifichi un bitrate abbastanza basso tale che il codec venga forzato
|
|
351 ad utilizzare un quantizzatore più alto, allora stai sicuramente diminuendo la
|
|
352 qualità del tuo video.
|
|
353 Per evitarlo, dovresti probabilmente ridurre la dimensione del tuo video,
|
|
354 seguendo il metodo descritto più avanti in questa guida.
|
|
355 In generale dovresti evitare del tutto CBR se ti interessa la qualità.
|
|
356 </para>
|
|
357
|
|
358 <para>
|
|
359 Con il quantizzatore costante, il codec utilizza lo stesso quantizzatore per
|
|
360 ogni macroblocco, come specificato dall'opzione <option>vqscale</option> (per
|
|
361 <systemitem class="library">libavcodec</systemitem>).
|
|
362 Se vuoi la più alta qualità possibile di rip, sempre ignorantdo il bitrate,
|
|
363 puoi usare <option>vqscale=2</option>.
|
|
364 Ciò porterà gli stessi bitrate e PSNR (peak signal-to-noise ratio) come CBR
|
|
365 con <option>vbitrate</option>=infinito e <option>vqmin</option> di default a 2.
|
|
366 </para>
|
|
367
|
|
368 <para>
|
|
369 Il problema con la quantizzazione costante è che usa il quantizzatore indicato
|
|
370 sia che il macroblocco ne abbia bisogno o no. Perciò è possibile che venga
|
|
371 usato un quantizzatore più alto su un macroblocco senza sacrificare la
|
|
372 qualità visiva. Perché sprecare i bit di un quantizzatore basso che non
|
|
373 serve? La tua CPU ha tanti cicli fin quando c'è tempo, ma c'è solo un certo
|
|
374 numero di bit sul tuo disco rigido.
|
|
375 </para>
|
|
376
|
|
377 <para>
|
|
378 Con una codifica a due passi, il primo codificherà il filmato come se fosse
|
|
379 CBR, ma manterrà una registrazione delle caratteristiche di ogni fotogramma.
|
|
380 Questi dati sono poi utilizzati durante il secondo passo in modo da effettuare
|
|
381 scelte intelligenti su quale quantizzatore usare. Durante le scene con azione
|
|
382 veloce o molti dettagliate, verrano usati più probabilmente quantizzatori più
|
|
383 alti, e durante scene lente o con pochi dettagli, verranno usati quantizzatori
|
|
384 più bassi. Solitamente è molto più importante la quantità di movimento
|
|
385 che la quantità di dettagli.
|
|
386 </para>
|
|
387
|
|
388 <para>
|
|
389 Se usi <option>vqscale=2</option>, allora stai sprecando dei bit. Se usi
|
|
390 <option>vqscale=3</option>, allora non stai ottenendo la miglior qualità.
|
|
391 Supponi di rippare un DVD a <option>vqscale=3</option> e che il risultato sia
|
|
392 1800Kbit. Se fai una codifica a due passi con <option>vbitrate=1800</option> il
|
|
393 video risultante avrà una <emphasis role="bold">qualità superiore</emphasis>
|
|
394 a <emphasis role="bold">parità di bitrate</emphasis>.
|
|
395 </para>
|
|
396
|
|
397 <para>
|
|
398 Dato che ora sei convinto che i due passaggi siano la strada da percorrere, la
|
|
399 vera domanda adesso è quale bitrate usare? La risposta à che non c'è una
|
|
400 risposta definitiva. Idealmente vuoi scegliere un bitrate che porti al miglior
|
|
401 equilibrio tra qualità e dimensione del file. Tutto ciò varia in dipendenza
|
|
402 del video di origine.
|
|
403 </para>
|
|
404
|
|
405 <para>
|
|
406 Se la dimensione non è importante, un buon punto di partenza per un rip di
|
|
407 qualità molto elevata è intorno a 2000Kbit più o meno 200Kbit.
|
|
408 Per video con scene di azione veloce o con molti dettagli, oppure se
|
|
409 semplicemente hai l'occhio critico, potresti scegliere 2400 o 2600.
|
|
410 Per alcuni DVD potresti non notare alcuna differenza a 1400Kbit. Sperimentare
|
|
411 con alcune scene a vari bitrate è una buona idea per farsi un'opinione.
|
|
412 </para>
|
|
413
|
|
414 <para>
|
|
415 Se punti a una data dimensione, dovrai calcolare il bitrate in un qualche modo.
|
|
416 Prima di farlo, però, devi sapere quanto spazio devi riservare per la traccia
|
|
417 (le tracce) audio, per cui devi dapprima fare il
|
|
418 <link linkend="menc-feat-dvd-mpeg4-audio">rip di queste</link>.
|
|
419 Puoi calcolare il bitrate con l'equazione che segue:
|
|
420 <systemitem>bitrate = (dimensione_voluta_in_Mbytes - dimensione_audio_in_Mbytes)
|
|
421 * 1024 * 1024 / lunghezza_in_secondi * 8 / 1000</systemitem>
|
|
422 Per esempio, per far stare un film di due ore su un CD da 702MB, con 60MB di
|
|
423 traccia audio, il bitrate video diventerà:
|
|
424 <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000
|
|
425 = 740kbps</systemitem>
|
|
426 </para>
|
|
427 </sect2>
|
|
428
|
|
429 <!-- ********** -->
|
|
430
|
|
431 <sect2 id="menc-feat-dvd-mpeg4-constraints">
|
|
432 <title>Vincoli per una codifica efficiente</title>
|
|
433
|
|
434 <para>
|
|
435 A causa della natura del tipo di compressione MPEG, ci sono alcuni vincoli da
|
|
436 seguire per avere la massima qualità.
|
|
437 L'MPEG divide il video in quadrati da 16x16 chiamati macroblocchi, ciascuno di
|
|
438 essi composto da blocchi 4x4 con informazioni sulla luminanza (intensità) e
|
|
439 due blocchi da 8x8 a metà risoluzione per la crominanza (colore) (uno per
|
|
440 l'asse rosso-ciano e l'altro per l'asse blu-giallo).
|
|
441 Anche se la larghezza e l'altezza del tuo filmato non sono multipli di 16 il
|
|
442 codificatore userà tanti macroblocchi 16x16 in modo da coprire tutta la
|
|
443 superficie dell'immagine, e lo spazio in esubero sarà sprecato.
|
|
444 Indi, per migliorare la qualità a una dimensione prefissata è una brutta
|
|
445 idea utilizzare dimensioni che non siano multiple di 16.
|
|
446 </para>
|
|
447
|
|
448 <para>
|
|
449 La maggior parte dei DVD ha anche alcune con bordi neri sui lati. Lasciarli lì
|
|
450 avrà un'influenza <emphasis role="bold">molto</emphasis> negativa sulla
|
|
451 qualità in svariati modi.
|
|
452 </para>
|
|
453
|
|
454 <orderedlist>
|
|
455 <listitem>
|
|
456 <para>
|
|
457 Il tipo di compressione MPEG è pesantemente dipendente dalle trasformazioni
|
|
458 di dominio frequenti, in particolare la "trasformazione discreta del coseno"
|
|
459 (Discrete Cosine Transform (DCT)), che xxièe' simile alla trasformazione di
|
|
460 Fourier. Quest'approccio di codifica è efficiente nella rappresentazione di
|
|
461 motivi e transizioni delicate, ma trova difficoltà con spigoli più
|
|
462 definiti. Per codificarli deve usare molti più bit oppure apparirà un
|
|
463 artefatto conosciuto come 'ringing'.
|
|
464 </para>
|
|
465
|
|
466 <para>
|
|
467 La trasformazione di frequenza (DCT) prende luogo separatemente in ogni
|
|
468 macroblocco (praticamente in ogni blocco) perciò questo problema si applica
|
|
469 solo quando lo spigolo definito è dentro a un blocco. Se il bordo nero inizia
|
|
470 esattamente sul lato di un multiplo di 16, questo non e' un problema.
|
|
471 Tuttavia i bordi neri sui DVD difficilmente sono ben allineati, perciò
|
|
472 nella realtà dovrai sempre tagliarli via per evitare questi problemi.
|
|
473 </para>
|
|
474 </listitem>
|
|
475 </orderedlist>
|
|
476
|
|
477 <para>
|
|
478 Oltre alle trasformazioni del dominio di frequenza, il tipo di compressione
|
|
479 MPEG usa dei vettori di movimento per rappresetare le variazioni da un
|
|
480 fotogramma al successivo. Naturalmente i vettori di movimento funzionano molto
|
|
481 meno bene per i nuovi contenuti che arrivano dai bordi dell'immagine, dato che
|
|
482 non erano presenti nel fotogramma precedente. Fintanto che l'immagine arriva
|
|
483 fino al bordo dell'area codificata, i vettori di movimento non incontrano
|
|
484 alcun problema con li contenuto che esce dall'immagine. Tuttavia ci possono
|
|
485 esser problemi quando ci sono dei bordi neri:
|
|
486 </para>
|
|
487
|
|
488 <orderedlist continuation="continues">
|
|
489 <listitem>
|
|
490 <para>
|
|
491 Per ogni macroblocco il tipo di compressione MPEG memorizza un vettore, che
|
|
492 identifica quale parte del fotogramma precedente debba essere copiata nel
|
|
493 macroblocco stesso, come base per predire il fotogramma successivo. Serve
|
|
494 codificare solo le differenze restanti. Se un macroblocco oltrepassa il
|
|
495 bordo dell'immagine e contiene parte del bordo nero, allora i vettori di
|
|
496 movimento provenienti da altre zone dell'immagine ricopriranno il bordo
|
|
497 nero. Questo significa che si devono utilizzare molti bit o per riannerire il
|
|
498 bordo che è stato ricoperto, oppure (più verosimilmente) un vettore di
|
|
499 movimento non sarà proprio usato e tutti i cambiamenti in questo
|
|
500 macroblocco dovranno venir esplicitamente codificate. In un modo o nell'altro
|
|
501 si ricuce di gran lunga l'efficienza della codifica.
|
|
502 </para>
|
|
503
|
|
504 <para>
|
|
505 Inoltre questo problema si applica solo se i bordi neri non sono allinati
|
|
506 su limiti di multipli di 16.
|
|
507 </para>
|
|
508 </listitem>
|
|
509
|
|
510 <listitem>
|
|
511 <para>
|
|
512 Immagina infine di avere un macroblocco all'interno dell'immagine, ed un
|
|
513 oggetto che passa da questo blocco verso il bordo dell'immagine. La
|
|
514 codifica MPEG non può dire "copia la parte che è dentro all'immagine, ma
|
|
515 non il bordo nero". Perciò anche il bordo nero vi verrà copiato
|
|
516 all'interno, e molti bit saranno sprecati codificando l'immagine che si
|
|
517 suppone stia lì.
|
|
518 </para>
|
|
519
|
|
520 <para>
|
|
521 Se l'immagine arriva al limite della superficie codificata, l'MPEG ha una
|
|
522 particolare ottimizzazione che consta nel copiare ripetutamente i pixel sul
|
|
523 bordo dell'immagine quando un vettore di movimento arriva dall'esterno della
|
|
524 superficie codificata. Questa funzionalità diventa inutile quando il film
|
|
525 ha dei bordi neri. Diversamente dai problemi 1 e 2, allineare i bordi a
|
|
526 multipli di 16 in questo caso non aiuta.
|
|
527 </para>
|
|
528 </listitem>
|
|
529
|
|
530 <listitem><para>
|
|
531 A dispetto del fatto che i bordi siano completamente neri e non cambino mai,
|
|
532 c'è perlomeno un piccolo spreco nell'avere più macroblocchi.
|
|
533 </para></listitem>
|
|
534 </orderedlist>
|
|
535
|
|
536 <para>
|
|
537 Per tutte queste ragioni si consiglia di tagliar via completamente i bordi neri.
|
|
538 Inoltre, se c'è una zona di rumore/distorsione sui bordi dell'immagine,
|
|
539 tagliarla migliorerà ancora l'efficienza di codifica. I puristi videofili che
|
|
540 vogliono mantenere il più possibile l'originale potrebbero obiettare su questo
|
|
541 taglio, ma a meno di non codificare a una quantizzazione costante, la qualità
|
|
542 guadagnata tagliando sorpasserà di gran lunga la quantità di informazioni
|
|
543 perse sui bordi.
|
|
544 </para>
|
|
545 </sect2>
|
|
546
|
|
547 <!-- ********** -->
|
|
548
|
|
549 <sect2 id="menc-feat-dvd-mpeg4-crop">
|
|
550 <title>Tagliare e Ridimensionare</title>
|
|
551
|
|
552 <para>
|
|
553 Ricorda dalla sezione precedente che la dimensione finale dell'immagine che
|
|
554 codifichi dovrebbe essere un multiplo di 16 (sia in larghezza che altezza).
|
|
555 Si può ottenere ciò tagliando, ridimensionando o combinando le due cose.
|
|
556 </para>
|
|
557
|
|
558 <para>
|
|
559 Quando tagli, ci sono alcune linee guida che si devono seguire per evitare di
|
|
560 rovinare il tuo filmato.
|
|
561 Il formato YUV abituale, 4:2:0, memorizza le informazioni sulla crominanza
|
|
562 (colore) sottocampionate, per es. la crominanza viene campionata in ogni
|
|
563 direzione solo la metà di quanto venga la luminanza (intensità).
|
|
564 Osserva questo diagramma, dove L indica i punti di campionamente della
|
|
565 luminanza e C quelli della crominanza.
|
|
566 </para>
|
|
567
|
|
568 <informaltable>
|
|
569 <?dbhtml table-width="40%" ?>
|
|
570 <?dbfo table-width="40%" ?>
|
|
571 <tgroup cols="8" align="center">
|
|
572 <colspec colnum="1" colname="col1"/>
|
|
573 <colspec colnum="2" colname="col2"/>
|
|
574 <colspec colnum="3" colname="col3"/>
|
|
575 <colspec colnum="4" colname="col4"/>
|
|
576 <colspec colnum="5" colname="col5"/>
|
|
577 <colspec colnum="6" colname="col6"/>
|
|
578 <colspec colnum="7" colname="col7"/>
|
|
579 <colspec colnum="8" colname="col8"/>
|
|
580 <spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
|
|
581 <spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
|
|
582 <spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
|
|
583 <spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
|
|
584 <tbody>
|
|
585 <row>
|
|
586 <entry>L</entry>
|
|
587 <entry>L</entry>
|
|
588 <entry>L</entry>
|
|
589 <entry>L</entry>
|
|
590 <entry>L</entry>
|
|
591 <entry>L</entry>
|
|
592 <entry>L</entry>
|
|
593 <entry>L</entry>
|
|
594 </row>
|
|
595 <row>
|
|
596 <entry spanname="spa1-2">C</entry>
|
|
597 <entry spanname="spa3-4">C</entry>
|
|
598 <entry spanname="spa5-6">C</entry>
|
|
599 <entry spanname="spa7-8">C</entry>
|
|
600 </row>
|
|
601 <row>
|
|
602 <entry>L</entry>
|
|
603 <entry>L</entry>
|
|
604 <entry>L</entry>
|
|
605 <entry>L</entry>
|
|
606 <entry>L</entry>
|
|
607 <entry>L</entry>
|
|
608 <entry>L</entry>
|
|
609 <entry>L</entry>
|
|
610 </row>
|
|
611 <row>
|
|
612 <entry>L</entry>
|
|
613 <entry>L</entry>
|
|
614 <entry>L</entry>
|
|
615 <entry>L</entry>
|
|
616 <entry>L</entry>
|
|
617 <entry>L</entry>
|
|
618 <entry>L</entry>
|
|
619 <entry>L</entry>
|
|
620 </row>
|
|
621 <row>
|
|
622 <entry spanname="spa1-2">C</entry>
|
|
623 <entry spanname="spa3-4">C</entry>
|
|
624 <entry spanname="spa5-6">C</entry>
|
|
625 <entry spanname="spa7-8">C</entry>
|
|
626 </row>
|
|
627 <row>
|
|
628 <entry>L</entry>
|
|
629 <entry>L</entry>
|
|
630 <entry>L</entry>
|
|
631 <entry>L</entry>
|
|
632 <entry>L</entry>
|
|
633 <entry>L</entry>
|
|
634 <entry>L</entry>
|
|
635 <entry>L</entry>
|
|
636 </row>
|
|
637 </tbody>
|
|
638 </tgroup>
|
|
639 </informaltable>
|
|
640
|
|
641 <para>
|
|
642 Come puoi vedere, le righe e le colonne dell'immagine vengono sempre a coppie.
|
|
643 Quindi i tuoi valori di spostamento e dimensione <emphasis>devono</emphasis>
|
|
644 essere numeri pari.
|
|
645 Se non lo sono la crominanza non sarà più allineata correttamente con la
|
|
646 luminanza.
|
|
647 In teoria è possibile tagliare con uno spostamento dispari, ma richiede che la
|
|
648 crominanza venga ricampionata, il che potenzialmente è un'operazione in perdita
|
|
649 e non è gestita dal filtro crop.
|
|
650 </para>
|
|
651
|
|
652 <para>
|
|
653 Inoltre, il video interlacciato viene campionato come segue:
|
|
654 </para>
|
|
655
|
|
656 <informaltable>
|
|
657 <?dbhtml table-width="80%" ?>
|
|
658 <?dbfo table-width="80%" ?>
|
|
659 <tgroup cols="16" align="center">
|
|
660 <colspec colnum="1" colname="col1"/>
|
|
661 <colspec colnum="2" colname="col2"/>
|
|
662 <colspec colnum="3" colname="col3"/>
|
|
663 <colspec colnum="4" colname="col4"/>
|
|
664 <colspec colnum="5" colname="col5"/>
|
|
665 <colspec colnum="6" colname="col6"/>
|
|
666 <colspec colnum="7" colname="col7"/>
|
|
667 <colspec colnum="8" colname="col8"/>
|
|
668 <colspec colnum="9" colname="col9"/>
|
|
669 <colspec colnum="10" colname="col10"/>
|
|
670 <colspec colnum="11" colname="col11"/>
|
|
671 <colspec colnum="12" colname="col12"/>
|
|
672 <colspec colnum="13" colname="col13"/>
|
|
673 <colspec colnum="14" colname="col14"/>
|
|
674 <colspec colnum="15" colname="col15"/>
|
|
675 <colspec colnum="16" colname="col16"/>
|
|
676 <spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
|
|
677 <spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
|
|
678 <spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
|
|
679 <spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
|
|
680 <spanspec spanname="spa9-10" namest="col9" nameend="col10"/>
|
|
681 <spanspec spanname="spa11-12" namest="col11" nameend="col12"/>
|
|
682 <spanspec spanname="spa13-14" namest="col13" nameend="col14"/>
|
|
683 <spanspec spanname="spa15-16" namest="col15" nameend="col16"/>
|
|
684 <tbody>
|
|
685 <row>
|
|
686 <entry namest="col1" nameend="col8">Campo superiore</entry>
|
|
687 <entry namest="col9" nameend="col16">Campo inferiore</entry>
|
|
688 </row>
|
|
689 <row>
|
|
690 <entry>L</entry>
|
|
691 <entry>L</entry>
|
|
692 <entry>L</entry>
|
|
693 <entry>L</entry>
|
|
694 <entry>L</entry>
|
|
695 <entry>L</entry>
|
|
696 <entry>L</entry>
|
|
697 <entry>L</entry>
|
|
698 <entry></entry>
|
|
699 <entry></entry>
|
|
700 <entry></entry>
|
|
701 <entry></entry>
|
|
702 <entry></entry>
|
|
703 <entry></entry>
|
|
704 <entry></entry>
|
|
705 <entry></entry>
|
|
706 </row>
|
|
707 <row>
|
|
708 <entry spanname="spa1-2">C</entry>
|
|
709 <entry spanname="spa3-4">C</entry>
|
|
710 <entry spanname="spa5-6">C</entry>
|
|
711 <entry spanname="spa7-8">C</entry>
|
|
712 <entry></entry>
|
|
713 <entry></entry>
|
|
714 <entry></entry>
|
|
715 <entry></entry>
|
|
716 <entry></entry>
|
|
717 <entry></entry>
|
|
718 <entry></entry>
|
|
719 <entry></entry>
|
|
720 </row>
|
|
721 <row>
|
|
722 <entry></entry>
|
|
723 <entry></entry>
|
|
724 <entry></entry>
|
|
725 <entry></entry>
|
|
726 <entry></entry>
|
|
727 <entry></entry>
|
|
728 <entry></entry>
|
|
729 <entry></entry>
|
|
730 <entry>L</entry>
|
|
731 <entry>L</entry>
|
|
732 <entry>L</entry>
|
|
733 <entry>L</entry>
|
|
734 <entry>L</entry>
|
|
735 <entry>L</entry>
|
|
736 <entry>L</entry>
|
|
737 <entry>L</entry>
|
|
738 </row>
|
|
739 <row>
|
|
740 <entry>L</entry>
|
|
741 <entry>L</entry>
|
|
742 <entry>L</entry>
|
|
743 <entry>L</entry>
|
|
744 <entry>L</entry>
|
|
745 <entry>L</entry>
|
|
746 <entry>L</entry>
|
|
747 <entry>L</entry>
|
|
748 <entry></entry>
|
|
749 <entry></entry>
|
|
750 <entry></entry>
|
|
751 <entry></entry>
|
|
752 <entry></entry>
|
|
753 <entry></entry>
|
|
754 <entry></entry>
|
|
755 <entry></entry>
|
|
756 </row>
|
|
757 <row>
|
|
758 <entry></entry>
|
|
759 <entry></entry>
|
|
760 <entry></entry>
|
|
761 <entry></entry>
|
|
762 <entry></entry>
|
|
763 <entry></entry>
|
|
764 <entry></entry>
|
|
765 <entry></entry>
|
|
766 <entry spanname="spa9-10">C</entry>
|
|
767 <entry spanname="spa11-12">C</entry>
|
|
768 <entry spanname="spa13-14">C</entry>
|
|
769 <entry spanname="spa15-16">C</entry>
|
|
770 </row>
|
|
771 <row>
|
|
772 <entry></entry>
|
|
773 <entry></entry>
|
|
774 <entry></entry>
|
|
775 <entry></entry>
|
|
776 <entry></entry>
|
|
777 <entry></entry>
|
|
778 <entry></entry>
|
|
779 <entry></entry>
|
|
780 <entry>L</entry>
|
|
781 <entry>L</entry>
|
|
782 <entry>L</entry>
|
|
783 <entry>L</entry>
|
|
784 <entry>L</entry>
|
|
785 <entry>L</entry>
|
|
786 <entry>L</entry>
|
|
787 <entry>L</entry>
|
|
788 </row>
|
|
789 <row>
|
|
790 <entry>L</entry>
|
|
791 <entry>L</entry>
|
|
792 <entry>L</entry>
|
|
793 <entry>L</entry>
|
|
794 <entry>L</entry>
|
|
795 <entry>L</entry>
|
|
796 <entry>L</entry>
|
|
797 <entry>L</entry>
|
|
798 <entry></entry>
|
|
799 <entry></entry>
|
|
800 <entry></entry>
|
|
801 <entry></entry>
|
|
802 <entry></entry>
|
|
803 <entry></entry>
|
|
804 <entry></entry>
|
|
805 <entry></entry>
|
|
806 </row>
|
|
807 <row>
|
|
808 <entry spanname="spa1-2">C</entry>
|
|
809 <entry spanname="spa3-4">C</entry>
|
|
810 <entry spanname="spa5-6">C</entry>
|
|
811 <entry spanname="spa7-8">C</entry>
|
|
812 <entry></entry>
|
|
813 <entry></entry>
|
|
814 <entry></entry>
|
|
815 <entry></entry>
|
|
816 <entry></entry>
|
|
817 <entry></entry>
|
|
818 <entry></entry>
|
|
819 <entry></entry>
|
|
820 </row>
|
|
821 <row>
|
|
822 <entry></entry>
|
|
823 <entry></entry>
|
|
824 <entry></entry>
|
|
825 <entry></entry>
|
|
826 <entry></entry>
|
|
827 <entry></entry>
|
|
828 <entry></entry>
|
|
829 <entry></entry>
|
|
830 <entry>L</entry>
|
|
831 <entry>L</entry>
|
|
832 <entry>L</entry>
|
|
833 <entry>L</entry>
|
|
834 <entry>L</entry>
|
|
835 <entry>L</entry>
|
|
836 <entry>L</entry>
|
|
837 <entry>L</entry>
|
|
838 </row>
|
|
839 <row>
|
|
840 <entry>L</entry>
|
|
841 <entry>L</entry>
|
|
842 <entry>L</entry>
|
|
843 <entry>L</entry>
|
|
844 <entry>L</entry>
|
|
845 <entry>L</entry>
|
|
846 <entry>L</entry>
|
|
847 <entry>L</entry>
|
|
848 <entry></entry>
|
|
849 <entry></entry>
|
|
850 <entry></entry>
|
|
851 <entry></entry>
|
|
852 <entry></entry>
|
|
853 <entry></entry>
|
|
854 <entry></entry>
|
|
855 <entry></entry>
|
|
856 </row>
|
|
857 <row>
|
|
858 <entry></entry>
|
|
859 <entry></entry>
|
|
860 <entry></entry>
|
|
861 <entry></entry>
|
|
862 <entry></entry>
|
|
863 <entry></entry>
|
|
864 <entry></entry>
|
|
865 <entry></entry>
|
|
866 <entry spanname="spa9-10">C</entry>
|
|
867 <entry spanname="spa11-12">C</entry>
|
|
868 <entry spanname="spa13-14">C</entry>
|
|
869 <entry spanname="spa15-16">C</entry>
|
|
870 </row>
|
|
871 <row>
|
|
872 <entry></entry>
|
|
873 <entry></entry>
|
|
874 <entry></entry>
|
|
875 <entry></entry>
|
|
876 <entry></entry>
|
|
877 <entry></entry>
|
|
878 <entry></entry>
|
|
879 <entry></entry>
|
|
880 <entry>L</entry>
|
|
881 <entry>L</entry>
|
|
882 <entry>L</entry>
|
|
883 <entry>L</entry>
|
|
884 <entry>L</entry>
|
|
885 <entry>L</entry>
|
|
886 <entry>L</entry>
|
|
887 <entry>L</entry>
|
|
888 </row>
|
|
889 </tbody>
|
|
890 </tgroup>
|
|
891 </informaltable>
|
|
892
|
|
893 <para>
|
|
894 Come puoi notare, il motivo non si ripete fino a dopo 4 linee.
|
|
895 Quindi per il video interlacciato, il tuo spostamento sull'asse y e l'altezza
|
|
896 devono essere multipli di 4.
|
|
897 </para>
|
|
898
|
|
899 <para>
|
|
900 La risoluzione nativa DVD è 720x480 per NTSC e 720x576 per PAL, ma c'è un
|
|
901 flag per l'aspetto che indica se è full-screen (4:3) o wide-screen (16:9).
|
|
902 Molti (se non quasi tutti) i DVD in widescreen non sono esattamente 16:9 e
|
|
903 possono essere sia 1.85:1 o 2.35:1 (cinescope). Questo significa che nel video
|
|
904 ci saranno bordi neri che bisogna tagliare via.
|
|
905 </para>
|
|
906
|
|
907 <para>
|
|
908 <application>MPlayer</application> fornisce un filtro che rileva i valori di
|
|
909 taglio e fornisce il rettangolo per crop (<option>-vf cropdetect</option>).
|
|
910 Esegui <application>MPlayer</application> con <option>-vf cropdetect</option> ed
|
|
911 emetterà le impostazioni di taglio per crop al fine di rimuovere i bordi.
|
|
912 Dovresti lasciare andare avanti il film abbastanza da ottenere valori di taglio
|
|
913 precisi.
|
|
914 </para>
|
|
915
|
|
916 <para>
|
|
917 Dopodiché prova con <application>MPlayer</application> i valori ottenuti usando
|
|
918 la linea comando emessa da <option>cropdetect</option>, e correggi il
|
|
919 rettangolo se e come serve.
|
|
920 Il filtro <option>rectangle</option> può esserti di aiuto, dato che ti
|
|
921 permette di impostare interattivamente la posizione del rettangolo di taglio
|
|
922 sopra al filmato.
|
|
923 Ricordati di seguire le linee guida sui multipli in modo da non disallineare
|
|
924 i piani di crominanza.
|
|
925 </para>
|
|
926
|
|
927 <para>
|
|
928 In talune occasioni, il ridimensionamento può essere indesiderabile.
|
|
929 Il ridimensionamento sulla direzione verticale è difficoltoso con video
|
|
930 interlacciato e se vuoi mantenere l'interlacciamento, dovresti evitare il
|
|
931 ridimensionamento.
|
|
932 Se non ridimensionerai, ma vuoi comunque usare dimensioni multiple di 16,
|
|
933 dovrai tagliare di più.
|
|
934 Evita di tagliare di meno, dato che i bordi neri sono un male per la codifica!
|
|
935 </para>
|
|
936
|
|
937 <para>
|
|
938 Dato che MPEG-4 usa macroblocchi 16x16 vorrai esser sicuro che ambedue le
|
|
939 dimensioni del video che stai per codificare siano multiple di 16, altrimenti
|
|
940 perderai in qualità, soprattutto a bitrate più bassi. Puoi farlo abbassando
|
|
941 la larghezza e l'altezza del rettangolo di taglio al multiplo di 16 più vicino.
|
|
942 Come detto precedentemente, quando tagli, vorrai aumentare lo scostamento Y
|
|
943 della metà della differenza tra la nuova e la vecchia altezza, in modo che il
|
|
944 video risultante sia preso dal centro del fotogramma. Inoltre, a causa del modo
|
|
945 in cui il video DVD viene campionato, assicurati che lo scostamento sia un
|
|
946 numero pari. (Infatti, come regola, non utilizzare mai valori dispari per alcun
|
|
947 parametro quando tagli e ridimensioni un video.) Se non ti va di scartare dei
|
|
948 pixel in più, potresti piuttosto preferire il ridimensionamento del video.
|
|
949 Prenderemo in esame questa situazione più avanti.
|
|
950 Puoi in verità lasciare che tutte le considerazioni suddette vengano fatte
|
|
951 dal filtro <option>cropdetect</option>, visto che ha un parametro
|
|
952 <option>round</option> facoltativo, che è impostato a 16 di default.
|
|
953 </para>
|
|
954
|
|
955 <para>
|
|
956 Fai anche attenzione ai pixel "mezzi neri" sui bordi. Assicurati di tagliare
|
|
957 anch'essi, altrimenti sprecherai bit più utili altrove.
|
|
958 </para>
|
|
959
|
|
960 <para>
|
|
961 Dopo aver detto e fatto tutto ciò, probabilmente avrei un vide i cui pixel
|
|
962 non saranno proprio 1.85:1 o 2.35:1, ma piuttosto un valore vicino. Potresti
|
|
963 calcolare a mano il nuovo rapporto di aspetto, ma
|
|
964 <application>MEncoder</application> ha un'opzione per <systemitem
|
|
965 class="library">libavcodec</systemitem> chiamata <option>autoaspect</option>
|
|
966 che lo farà per te. Non aumentare assolutamente le dimensioni del video per
|
|
967 avere i pixel quadrati, a meno che tu non voglia sprecare il tuo spazio disco.
|
|
968 Il ridimensionamento dovrebbe essere eseguito in riproduzione, e per definire
|
|
969 la risoluzione giusta il riproduttore userà l'aspetto memorizzato nell'AVI.
|
|
970 Sfortunatamente non tutti i riproduttori verificano l'informazione sul rapporto
|
|
971 perciò potresti voler comunque effettuare il ridimensionamento.
|
|
972 </para>
|
|
973 </sect2>
|
|
974
|
|
975 <!-- ********** -->
|
|
976
|
|
977 <sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate">
|
|
978 <title>Scegliere la risoluzione e il bitrate</title>
|
|
979
|
|
980 <para>
|
|
981 Other parameters such as scaling, cropping, etc. will
|
|
982 <emphasis role="bold">not</emphasis> alter the file size unless you
|
|
983 change the bitrate as well!.
|
|
984 A meno che tu non stia per codificare con quantizzazione costante devi
|
|
985 impostare un bitrate.
|
|
986 La logica del bitrate è abbastanza semplice.
|
|
987 Normalmente il bitrate viene misurato in kilobit (1000 bit) al secondo.
|
|
988 La dimensione del filmato sul disco è il bitrate moltiplicato per la durata
|
|
989 del filmato, più un piccolo quantitativo in "surplus" (vedi per esempio la
|
|
990 sezione sul
|
|
991 <link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">contenitore AVI</link>).
|
|
992 Altri parametri come ridimensionamento, taglio, etc...
|
|
993 <emphasis role="bold">non</emphasis> influiscono sulla dimensione del file a
|
|
994 meno che tu non cambi anche il bitrate!
|
|
995 </para>
|
|
996
|
|
997 <para>
|
|
998 Il bitrate <emphasis role="bold">non</emphasis> è direttamente proporzionale
|
|
999 alla risoluzione.
|
|
1000 Tanto per capirci, un file 320x240 a 200 kbit/sec non avrà la stessa qualità
|
|
1001 dello stesso filmato a 640x480 e 800 kbit/sec!
|
|
1002 Ci sono due ragioni per ciò:
|
|
1003 <orderedlist>
|
|
1004 <listitem><para>
|
|
1005 <emphasis role="bold">Percettiva</emphasis>: noti di più gli artefatti MPEG
|
|
1006 quando sono più grandi!
|
|
1007 Gli artefatti appaiono a livello dei blocchi (8x8).
|
|
1008 Il tuo occhio non noterà errori in 4800 piccoli blocchi tanti quanti ne
|
|
1009 vedrà in 1200 grossi blocchi (assumendo che tu li stia ridimensionando tutti
|
|
1010 e due a schermo intero).
|
|
1011 </para></listitem>
|
|
1012 <listitem><para>
|
|
1013 <emphasis role="bold">Teorica</emphasis> : quando rimpicciolisci un immagine
|
|
1014 ma usi la stessa dimensione dei blocchi (8x8) per la trasformazione spaziale
|
|
1015 della frequenza, hai più dati nelle bande ad alta frequenza. In parole
|
|
1016 povere, ogni pixel contiene più dettagli di quanti ne contenesse prima.
|
|
1017 Quindi anche se la tua immagine rimpicciolita contiene 1/4 delle informazioni
|
|
1018 sulle direzioni spaziali, potrebbe ancora contenere una gran parte delle
|
|
1019 informazioni nel dominio delal frequenza (assumendo che le alte frequenze
|
|
1020 siano sotto-utilizzate nell'immagine di origine a 640x480).
|
|
1021 </para></listitem>
|
|
1022 </orderedlist>
|
|
1023 </para>
|
|
1024
|
|
1025 <para>
|
|
1026 Guide precendenti hanno consigliato di scegliere un bitrate e una risoluzione
|
|
1027 in base ad un approccio "bit al secondo", ma di solito ciò non è valido a
|
|
1028 causa delle ragioni suddette.
|
|
1029 Una stima migliore pare essere che il bitrate è proporzionale alla radice
|
|
1030 quadrata della risoluzione, per cui 320x240 e 400 kbit/sec sarà
|
|
1031 paragonabile a 640x480 a 800 kbit/sec.
|
|
1032 Tuttavia ciò non è stato verificato con certezza empirica o teorica.
|
|
1033 Inoltre, dato che i filmati hanno diversi livelli di disturbo, dettaglio, angoli
|
|
1034 di movimento, etc..., è vano dare consigli generici su bit per lunghezza della
|
|
1035 diagonale (analogamente a bit per pixel, usando la radice quadrata).
|
|
1036 </para>
|
|
1037 <para>
|
|
1038 Finora abbiamo parlato della difficoltà nel scegliere un bitrate e una
|
|
1039 risoluzione.
|
|
1040 </para>
|
|
1041
|
|
1042
|
|
1043 <sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute">
|
|
1044 <title>Calcolare la risoluzione</title>
|
|
1045
|
|
1046 <para>
|
|
1047 I passaggi seguenti ti guideranno nel calcolo della risoluzione per la tua
|
|
1048 codifica senza distorcere troppo il video, tenendo in considerazione vari tipo
|
|
1049 di informazioni riguardo la sorgente video.
|
|
1050 Per prima cosa dovresti calcolare il rapporto di aspetto codificato:
|
|
1051 <systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem>
|
|
1052
|
|
1053 <itemizedlist>
|
|
1054 <title>dove:</title>
|
|
1055 <listitem><para>
|
|
1056 Wc e Hc sono la larghezza e l'altezza del video tagliato,
|
|
1057 </para></listitem>
|
|
1058 <listitem><para>
|
|
1059 ARa è il rapporto di aspetto mostrato, che di solito è 4/3 o 16/9,
|
|
1060 </para></listitem>
|
|
1061 <listitem><para>
|
|
1062 PRdvd à il rapporto del pixel del DVD che è uguale a 1.25=(720/576) per DVD
|
|
1063 PAL e 1.5=(720/480) per DVD NTSC.
|
|
1064 </para></listitem>
|
|
1065 </itemizedlist>
|
|
1066 </para>
|
|
1067
|
|
1068 <para>
|
|
1069 Dopo puoi calcolare la risoluzione X e Y, basandoti su un dato fattore
|
|
1070 di qualità di compressione (Compression Quality, CQ):
|
|
1071 <systemitem>ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem>
|
|
1072 and
|
|
1073 <systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem>
|
|
1074 </para>
|
|
1075
|
|
1076 <para>
|
|
1077 Okay, ma cos'è la CQ?
|
|
1078 Il CQ rappresenta il numero di bit per pixel e per fotogramma in codifica.
|
|
1079 Parlando più semplicemente, più alto è la CQ, più difficilmente si vedranno
|
|
1080 codificati degli artefatti.
|
25449
|
1081 Tuttavia, se desideri una particolare dimensione per il tuo film (per esempio
|
|
1082 1 o 2 CD), hai un numero limitato di bit da utilizzare; devi quindi trovare un
|
|
1083 buon compromesso tra compressione e qualità.
|
25279
|
1084 </para>
|
|
1085
|
|
1086 <para>
|
|
1087 La CQ dipende dal bitrate, dall'efficienza del codec video e dalla risoluzione
|
|
1088 del filmato.
|
|
1089 Per alzare la CQ, di solito dovrai rimpicciolire il filmato visto che il bitrate
|
|
1090 viene calcolato in funzione della dimensione voluta e della lunghezza del
|
|
1091 filmato, che sono delle costanti.
|
|
1092 Con codec MPEG-4 ASP come <systemitem class="library">Xvid</systemitem> e
|
|
1093 <systemitem class="library">libavcodec</systemitem>, una CQ inferiore a 0.18
|
|
1094 solitamente genera un'immagine abbastanza squadrettata, perché non ci sono
|
|
1095 abbastanza bit per codificare l'informazione di ogni macroblocco. (MPEG4, come
|
|
1096 molti altri codec, ragruppa i pixel in blocchi di pixel per comprimere
|
|
1097 l'immagine; se non ci sono abbastanza bit, si vedono i bordi dei blocchi.)
|
|
1098 E' saggio anche prendere una CQ compresa tra 0.20 e 0.22 per un rip a 1 CD,
|
|
1099 e 0.26-0.28 per un rip a 2 CD con impostazioni standard di codifica.
|
|
1100 Opzioni più evolute di codifica come quelle qui indicate per
|
|
1101 <link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link>
|
|
1102 e
|
|
1103 <link linkend="menc-feat-xvid-example-settings"><systemitem class="library">Xvid</systemitem></link>
|
|
1104 dovrebbero permetterti di ottenere la stessa qualità con CQ compresa tra
|
|
1105 0.18 e 0.20 per un rip da 1 CD, e da 0.24 a 0.26 per 2 CD.
|
|
1106 Con codec MPEG-4 AVC come <systemitem class="library">x264</systemitem>,
|
|
1107 puoi usare una CQ che varia da 0.14 a 0.16 con opzioni standard di codifica, e
|
|
1108 dovresti riuscire a scendere tra 0.10 e 0.12 con <link linkend="menc-feat-x264-example-settings">impostazioni avanzate di codifica
|
|
1109 <systemitem class="library">x264</systemitem></link>.
|
|
1110 </para>
|
|
1111
|
|
1112 <para>
|
|
1113 Prendi per favore nota che CQ è solo un valore indicativo, dato che dipende dal
|
|
1114 contenuto che viene codificato, una CQ di 0.18 può andar bene per un Bergman,
|
|
1115 mentre per un film come Matrix, che contiene molte scene ad alta velocità, no.
|
|
1116 D'altro canto è inutile portare la CQ oltre 0.30 dato che sprecherai dei bit
|
|
1117 senza avere alcun guadagno visibile in qualità.
|
|
1118 Nota anche che come detto precedentemente in questa guida, per video a bassa
|
|
1119 risoluzione serve una CQ più alta (in rapporto, per esempio, alla risoluzione
|
|
1120 DVD) perché si vedano bene.
|
|
1121 </para>
|
|
1122 </sect3>
|
|
1123 </sect2>
|
|
1124
|
|
1125 <!-- ********** -->
|
|
1126
|
|
1127 <sect2 id="menc-feat-dvd-mpeg4-filtering">
|
|
1128 <title>Filtraggio</title>
|
|
1129
|
|
1130 <para>
|
|
1131 Imparare come usare i filtri video di <application>MEncoder</application> è
|
|
1132 essenziale per produrre delle buone codfiche.
|
|
1133 Tutta l'elaborazione video è eseguita attraverso i filtri -- taglio,
|
|
1134 ridimensionamento, aggiustamento del colore, rimozione del disturbo, rilevamento
|
|
1135 margini, deinterlacciatura, telecine, telecine inverso, e deblocco, solo per
|
|
1136 nominarne qualcuno.
|
|
1137 Insieme con la vasta gamma di formati di entrata gestiti, la varietà dei
|
|
1138 filtri disponibili in <application>MEncoder</application> è uno dei suoi
|
|
1139 più grandi vantaggi sugli altri programmi similari.
|
|
1140 </para>
|
|
1141
|
|
1142 <para>
|
|
1143 I filtri vengono caricati in catena usando l'opzione -vf:
|
|
1144
|
|
1145 <screen>-vf filtro1=opzioni,filtro2=opzioni,...</screen>
|
|
1146
|
|
1147 La maggior parte dei filtri riceve alcune opzioni numeriche separate da due
|
|
1148 punti, ma la sintassi per le opzioni cambia da filtro a filtro, indi leggiti la
|
|
1149 pagina man per i dettagli sul filtro che desideri usare.
|
|
1150 </para>
|
|
1151
|
|
1152 <para>
|
|
1153 I filtri lavorano sul video nell'ordine in cui vengono caricati.
|
|
1154 Per esempio la catena seguente:
|
|
1155
|
|
1156 <screen>-vf crop=688:464:12:4,scale=640:464</screen>
|
|
1157
|
|
1158 dapprima taglia la zona 688x464 dell'immagine con uno scostamento dall'alto a
|
|
1159 sinistra di (12,4), e poi ridimensiona il risultato a 640x464.
|
|
1160 </para>
|
|
1161
|
|
1162 <para>
|
|
1163 Taluni filtri devono essere caricati all'inizio o vicino all'inizio della
|
|
1164 catena di filtri, in modo da trarre vantaggio dalle informazioni che arrivano
|
|
1165 dal decoder video, che potrebbero essere perse o invalidate da altri filtri.
|
|
1166 Gli esempi principali sono <option>pp</option> (post elaborazione
|
|
1167 (postprocessing), solo quando esegue operazioni di deblock o dering),
|
|
1168 <option>spp</option> (un altra post elaborazione per eliminare artefatti MPEG),
|
|
1169 <option>pullup</option> (telecine inverso), e <option>softpulldown</option>
|
|
1170 (per passare da telecine soft a hard).
|
|
1171 </para>
|
|
1172
|
|
1173 <para>
|
|
1174 In generale vorrai filtrare il meno possibile in modo da rimaner fedele alla
|
|
1175 sorgente DVD originale. Il taglio è spesso necessario (com detto sopra), ma
|
|
1176 evita di ridimensionare il video. Anche se alcune volte si preferisce
|
|
1177 rimpicciolire per poter usare quantizzatori più alti, vogliamo evitare ciò:
|
|
1178 ricorda che abbiamo sin dall'inizio deciso di investire bit in qualità.
|
|
1179 </para>
|
|
1180
|
|
1181 <para>
|
|
1182 In più, non reimpostare la gamma, il contrasto, la luminosità, etc...
|
|
1183 Quello che si vede bene sul tuo schermo potrebbe non vedersi bene su altro.
|
|
1184 Queste modifiche dovrebbero esser fatte solo durante la riproduzione.
|
|
1185 </para>
|
|
1186
|
|
1187 <para>
|
|
1188 Una cosa che voresti però fare è tuttavia far passare il video attraverso un
|
|
1189 leggero filtro di rimozione disturbo, come <option>-vf hqdn3d=2:1:2</option>.
|
|
1190 Ancora, è una questione di poter meglio utilizzare quei bit: perché sprecarli
|
|
1191 codificando disturbo mentre puoi semplicemente aggiungerlo di nuovo durante la
|
|
1192 riproduzione? Alzando i parametri per <option>hqdn3d</option> aumenterà
|
|
1193 ancora la compressione, ma se aumenti troppo i valori, rischi un degrado pesante
|
|
1194 dell'immagine. I valori sopra consigliati (<option>2:1:2</option>) sono
|
|
1195 abbastanza conservativi; sentiti libero di sperimentare con valori più alti e
|
|
1196 verificare da solo il risultato.
|
|
1197 </para>
|
|
1198 </sect2>
|
|
1199
|
|
1200 <!-- ********** -->
|
|
1201
|
|
1202 <sect2 id="menc-feat-dvd-mpeg4-interlacing">
|
|
1203 <title>Interlacciamento e Telecine</title>
|
|
1204
|
|
1205 <para>
|
|
1206 Quasi tutti i film vengono ripresi a 24 fps. Dato che NTSC è 30000/1001 fps,
|
|
1207 si devono eseguire alcune elaborazioni affinché questo video a 24 fps sia
|
|
1208 letto al giusto framerate NTSC. Il processo è chiamato "3:2 pulldown", meglio
|
|
1209 conosciuto come "telecine" (poiché pulldown viene spesso applicato durante il
|
|
1210 processo di telecine), e descritto rozzamente, agisce rallentando il film a
|
|
1211 24000/1001 fps, e ripetendo ogni quarto fotogramma.
|
|
1212 </para>
|
|
1213
|
|
1214 <para>
|
|
1215 Non viene invece eseguita alcuna elaborazione sul video per i DVD PAL, che
|
|
1216 girano a 25 fps. (Tecnicamente, PAL può subire il telecine, chiamato
|
|
1217 "2:2 pulldown", ma non è usanza abituale.) Il film a 24 fps viene
|
|
1218 semplicemente riprodotto a 25 fps. Il risultato è che il filmato è leggermente
|
|
1219 più veloce, ma a meno che tu non sia un alieno, probabilmente non noterai la
|
|
1220 differenza.
|
|
1221 La maggior parte dei DVD PAL hanno audio corretto ai picchi, in modo che quando
|
|
1222 siano riprodotti a 25 fps le cose suonino giuste, anche se la traccia audio
|
|
1223 (e quindi tutto il filmato) ha un tempo di riproduzione che è il 4% inferiore
|
|
1224 ai DVD NTSC.
|
|
1225 </para>
|
|
1226
|
|
1227 <para>
|
|
1228 A causa del fatto che il video nei DVD PAL non è stato alterato, non dovrai
|
|
1229 preoccuperti molto della frequenza fotogrammi. La sorgente è 25 fps, e il tuo
|
|
1230 rip sarà a 25 fps. Tuttavia, se stai codificando un film da DVD NTSC,
|
|
1231 potresti dover applicare il telecine inverso.
|
|
1232 </para>
|
|
1233
|
|
1234 <para>
|
|
1235 Per film ripresi a 24 fps, il video sul DVD NTSC è o con telecine a 30000/1001,
|
|
1236 oppure è progressivo a 24000/1001 fps e destinato a subire il telecine al volo
|
|
1237 da un lettore DVD. D'altro canto le serie TV sono solitamente solo
|
|
1238 interlacciate, senza telecine. Questa non è una regola ferrea: alcune serie TV
|
|
1239 sono interlacciate (come Buffy the Vampire Slayer) mentre alcune sono un misto
|
|
1240 di progressivo e interlacciato (come Angel, o 24).
|
|
1241 </para>
|
|
1242
|
|
1243 <para>
|
|
1244 Si consiglia vivamente di leggere la sezione su
|
|
1245 <link linkend="menc-feat-telecine">Come trattare il telecine e l'interlacciamento nei DVD NTSC</link>
|
|
1246 per imparare come gestire le varie possibilità.
|
|
1247 </para>
|
|
1248
|
|
1249 <para>
|
|
1250 Ciononostante, se stai principalmente rippando solo film, solitamente ti
|
|
1251 troverai di fronte a video a 24 fps progressivo o con telecine, nel qual caso
|
|
1252 puoi usare il filtro <option>pullup</option> <option>-vf
|
|
1253 pullup,softskip</option>.
|
|
1254 </para>
|
|
1255 </sect2>
|
|
1256
|
|
1257 <!-- ********** -->
|
|
1258
|
|
1259 <sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced">
|
|
1260 <title>Codificare video interlacciato</title>
|
|
1261
|
|
1262 <para>
|
|
1263 Se il film che vuoi codificare è interlacciato (video NTSC o PAL) dovrai
|
|
1264 scegliere se vuoi de-interlacciare o no.
|
|
1265 Se da un lato de-interlacciare renderà il tuo filmato utilizzabile su
|
|
1266 schermi a scansione progressiva come monitor di computer o proiettori, porta
|
|
1267 con sé un costo: la frequenza dei campi di 50 o 60000/1001 campi al secondo
|
|
1268 viene dimezzata a 25 o 30000/1001 fotogrammi al secondo, e circa la metà delle
|
|
1269 informazioni nel tuo film saranno perdute, in scene con movimento significativo.
|
|
1270 </para>
|
|
1271
|
|
1272 <para>
|
|
1273 Per di più, se stai codificando puntando ad alta qualità di archiviazione.
|
|
1274 si consiglia di non de-interlacciare.
|
|
1275 Puoi sempre de-interlacciare il film durante la riproduzione attraverso
|
|
1276 dispositivi a scansione progressiva.
|
|
1277 La potenza dei computer attuali forza per i riproduttori l'utilizzo di un filtro
|
|
1278 di de-interlacciamento, che porta un leggero degrado dell'immagine.
|
|
1279 Ma i lettori del futuro saranno in grado di simulare lo schermo di una TV,
|
|
1280 de-interlacciando a piena frequenza di campi e interpolando 50 o 60000/1001
|
|
1281 fotogrammi interi al secondo dal video interlacciato
|
|
1282 </para>
|
|
1283
|
|
1284 <para>
|
|
1285 Bisogna porre speciale attenzione quando si lavora con video interlacciato:
|
|
1286 </para>
|
|
1287
|
|
1288 <orderedlist>
|
|
1289 <listitem><para>
|
|
1290 Altezza e scostamento del taglio devono essere multipli di 4.
|
|
1291 </para></listitem>
|
|
1292 <listitem><para>
|
|
1293 Qualsiasi ridimensionamento verticale va fatto in modalità interlacciata.
|
|
1294 </para></listitem>
|
|
1295 <listitem><para>
|
|
1296 I filtri di post elaborazione e di rimozione disturbo potrebbero non
|
|
1297 funzionare come ci si aspetta a meno che tu non ponga particolare attenzione
|
|
1298 per farli lavorare su un campo per volta, e possono rovinare il video quando
|
|
1299 usati in modo non corretto.
|
|
1300 </para></listitem>
|
|
1301 </orderedlist>
|
|
1302
|
|
1303 <para>
|
|
1304 Tenendo a mente queste cose, ecco il nostro primo esempio:
|
|
1305 <screen>
|
|
1306 mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \
|
|
1307 vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
|
|
1308 </screen>
|
|
1309 Nota le opzioni <option>ilme</option> e <option>ildct</option>.
|
|
1310 </para>
|
|
1311 </sect2>
|
|
1312
|
|
1313 <!-- ********** -->
|
|
1314
|
|
1315 <sect2 id="menc-feat-dvd-mpeg4-av-sync">
|
25449
|
1316 <title>Note sulla sincronizzazione Audio/Video</title>
|
|
1317
|
|
1318 <para>
|
|
1319 Gli algoritmi di sincronizzazione audio/video di
|
|
1320 <application>MEncoder</application> sono stati progettati con l'intento di
|
|
1321 recuperare file con sincronia danneggiata.
|
|
1322 In alcuni casi tuttavia, possono generare inutili duplicazioni o scarti di
|
|
1323 fotogrammi, e possibilmente leggera desincronia A/V quando vengono usati con
|
|
1324 sorgenti buone (i problemi di sincronizzazione A/V accadono solo se elabori o
|
|
1325 copi la traccia audio mentre transcodifichi il video, il che è decisamente
|
|
1326 consigliato).
|
|
1327 Perciò potresti dover passare ad una sincronizzazione di base con l'opzione
|
|
1328 <option>-mc 0</option>, o metterla nel tuo file di configurazione
|
|
1329 <systemitem>~/.mplayer/mencoder</systemitem>, sempre che tu stia lavorando con
|
|
1330 buone sorgenti (DVD, acquisizione TV, rip MPEG-4 ad alta qualità, etc) e non
|
|
1331 con file ASF/RM/MOV rovinati.
|
|
1332 </para>
|
|
1333
|
|
1334 <para>
|
|
1335 Se vuoi proteggerti ulteriormente da strani salti e duplicazioni di fotogrammi,
|
|
1336 puoi usare sia <option>-mc 0</option> che <option>-noskip</option>.
|
|
1337 Questo disabiliterà <emphasis>tutte</emphasis> le sincronizzazioni A/V, e
|
|
1338 copierà i fotogrammi uno ad uno, perciò è inutilizzabile se stai usando dei
|
|
1339 filtri che aggiungono o rimuovono arbitrariamente fotogrammi, ovvero se il
|
|
1340 tuo file sorgente ha una frequenza fotogrammi non costante!
|
|
1341 Quindi l'utilizzo di <option>-noskip</option> in linea di massima si sconsiglia.
|
|
1342 </para>
|
|
1343
|
|
1344 <para>
|
|
1345 Si sa che la cosiddetta codifica audio in "tre passi", che
|
|
1346 <application>MEncoder</application> gestisce, può causare desincronizzazione
|
|
1347 A/V.
|
|
1348 Il che capiterà prontamente se viene usata insieme con alcuni filtri, per cui
|
|
1349 si consiglia di <emphasis>non</emphasis> usare la modalità audio a tre passi.
|
|
1350 Questa caratteristica viene lasciata solo per finalità di compatibilità e
|
|
1351 per utenti esperti che sanno quando sia adeguato usarla e quando no.
|
|
1352 Se non hai mai sentito parlar prima della modalità a tre passi, dimenticati
|
|
1353 di averla anche solo sentita nominare!
|
|
1354 </para>
|
|
1355
|
|
1356 <para>
|
|
1357 Ci sono anche stati rapporti di desincronia A/V codificando con
|
|
1358 <application>MEncoder</application> da stdin.
|
|
1359 Non farlo! Usa sempre come ingresso un file o un dispositivo CD/DVD/etc.
|
25279
|
1360 </para>
|
|
1361 </sect2>
|
|
1362
|
|
1363 <!-- ********** -->
|
|
1364
|
|
1365 <sect2 id="menc-feat-dvd-mpeg4-codec">
|
25449
|
1366 <title>Scegliere il codec video</title>
|
|
1367
|
|
1368 <para>
|
|
1369 Quale possa esere il miglior codec video dipende da molti fattori, come
|
|
1370 dimensione, qualità, possibilita di farne lo streaming, usabilit, diffusione,
|
|
1371 alcuni dei quali dipendono fortemente dai gusti personali e dalle variabili
|
|
1372 tecniche in gioco.
|
25279
|
1373 </para>
|
|
1374 <itemizedlist>
|
|
1375 <listitem>
|
|
1376 <para>
|
25449
|
1377 E' abbastanza facile da capire che i codec più recenti sono fatti per
|
|
1378 aumentare qualità e compressione.
|
|
1379 Quindi gli autori di questa guida e moltra altra gente suggeriscono che non
|
|
1380 potete sbagliare
|
25279
|
1381 <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'><para>
|
25449
|
1382 Fai comunque attenzione: la decodifica di video MPEG-4 AVC a risoluzione DVD
|
|
1383 richiede una macchina veloce (per es. un Pentium 4 oltre 1.5GHz o un Pentium
|
|
1384 M superiore a 1GHz).
|
25279
|
1385 </para></footnote>
|
25449
|
1386 quando scegliete un qualche codec MPEG-4 AVC come
|
|
1387 <systemitem class="library">x264</systemitem> piuttosto che un codec MPEG-4
|
|
1388 ASP come l'MPEG-4 di <systemitem class="library">libavcodec</systemitem> o
|
25279
|
1389 <systemitem class="library">Xvid</systemitem>.
|
25449
|
1390 (Per sviluppatori avenzati di codec potrebbe essere interessante leggere
|
|
1391 l'opinione di Michael Niedermayer sul
|
|
1392 "<ulink url="http://guru.multimedia.cx/?p=10">perché MPEG-4 ASP faccia schifo</ulink>"
|
|
1393 (in inglese).)
|
|
1394 Analogamente dovresti ottenere una miglior qualità usando MPEG-4 ASP rispetto
|
|
1395 a quella ottenuta con codec MPEG-2.
|
25279
|
1396 </para>
|
|
1397
|
|
1398 <para>
|
25449
|
1399 Tuttavia, i codec più recenti che sono sotto pesante sviluppo possono avere
|
|
1400 problemi che non sono ancora stati scoperti, e che possono rovinare una
|
|
1401 codifica.
|
|
1402 Questo è semplicemente il contrappasso per usare la tecnologia di punta.
|
25279
|
1403 </para>
|
|
1404
|
|
1405 <para>
|
25449
|
1406 Inoltre iniziare ad utilizzare un codec nuovo richiede l'utilizzo di un po'
|
|
1407 di tempo per familiarizzare con le sue opzioni, affinché tu sappia cosa
|
|
1408 impostare per ottenere la qualità dell'immagine voluta.
|
25279
|
1409 </para>
|
|
1410 </listitem>
|
|
1411
|
|
1412 <listitem><para>
|
25449
|
1413 <emphasis role="bold">Compatibilità Hardware</emphasis>:
|
|
1414 Solitamente ci va un po' di tempo prima che i lettori da tavolo incomincino ad
|
|
1415 includere il supporto per il video codec più recente.
|
|
1416 Il risultato è che la maggior parte legge MPEG-1 (come i VCD, XVCD e KVCD),
|
|
1417 MPEG-2 (come DVD, SVCD e KVCD) e MPEG-4 ASP (come DivX,
|
|
1418 LMP4 di <systemitem class="library">libavcodec</systemitem> e
|
25279
|
1419 <systemitem class="library">Xvid</systemitem>)
|
25449
|
1420 (attenzione: solitamente non sono gestite tutte le caratteristiche
|
|
1421 MPEG-4 ASP).
|
|
1422 Fai per favore riferimento alle specifiche tecniche del tuo lettore (ove
|
|
1423 disponibili) o cerca su internet per ulteriori informazioni.
|
25279
|
1424 </para></listitem>
|
|
1425
|
|
1426 <listitem>
|
|
1427 <para>
|
25449
|
1428 <emphasis role="bold">Miglior qualità per tempo di codifica</emphasis>:
|
|
1429 Codec che sono in giro da parecchio tempo (come MPEG-4 di
|
|
1430 <systemitem class="library">libavcodec</systemitem> e
|
|
1431 <systemitem class="library">Xvid</systemitem>) sono spesso molto ottimizzati
|
|
1432 con ogni tipo di algoritmo furbo e codice SIMD in assembly.
|
|
1433 Per questo tendono a fornire il miglior rapporto tra qualità e tempo di
|
|
1434 codifica. Tuttavia, possono avere delle opzioni avanzate che, quando
|
|
1435 abilitate, rendono la codifica molto lenta fornendo poco guadagno.
|
25279
|
1436 </para>
|
|
1437
|
|
1438 <para>
|
25449
|
1439 Se stai cercando di incrementare la velocità dovresti cercare di non
|
|
1440 modificare troppo le impostazioni di default del codec video (anche se
|
|
1441 dovresti comunque provare le altre opzioni che sono citate in altre sezioni
|
|
1442 di questa guida).
|
25279
|
1443 </para>
|
|
1444
|
|
1445 <para>
|
25449
|
1446 Puoi tenere in considerazione anche la scelta di un codec che possa eseguire
|
|
1447 elaborazioni multi-thread, anche se ciò è utile solo per utenti di macchine
|
|
1448 con più di una CPU.
|
|
1449 MPEG-4 di <systemitem class="library">libavcodec</systemitem> lo permette,
|
|
1450 ma il guadagno in velocità è limitato, e c'è un leggere effetto negativo
|
|
1451 sulla qualità dell'immagine.
|
|
1452 La codifica multi-thread di <systemitem class="library">Xvid</systemitem>,
|
|
1453 attivata dall'opzione <option>threads</option>, può essere usata per
|
|
1454 accelerare la velocità di codifica — tipicamente di circa il 40-60%
|
|
1455 — con poco se non nessun degrado dell'immagine.
|
|
1456 Anche <systemitem class="library">x264</systemitem> permette la codifica in
|
|
1457 multi-thread, la quale attualmente velocizza la codifica del 94% per core di
|
|
1458 CPU mentre abbassa il PSNR tra 0.005dB e 0.01dB, con impostazioni tipiche.
|
25279
|
1459 </para>
|
|
1460 </listitem>
|
|
1461
|
|
1462 <listitem>
|
|
1463 <para>
|
25449
|
1464 <emphasis role="bold">Gusto personale</emphasis>:
|
|
1465 Qui è dove capita l'irrazionale: per la stessa ragione per cui alcuni
|
|
1466 restano attaccati a DivX 3 per anni, mentre nuovi codec stanno
|
|
1467 facendo meraviglie, alcuni personaggi preferiranno
|
|
1468 <systemitem class="library">Xvid</systemitem> o MPEG-4 di
|
|
1469 <systemitem class="library">libavcodec</systemitem> a
|
25279
|
1470 <systemitem class="library">x264</systemitem>.
|
|
1471 </para>
|
|
1472 <para>
|
25449
|
1473 Dovresti prendere le tue decisioni; non prendere consigli da gente che
|
|
1474 fanno giuramenti su un codec.
|
|
1475 Prendi alcuni pezzi di esempio da sorgenti grezze e compara le diverse
|
|
1476 opzioni di codifica e di codec per trovare quello che ti garba di più.
|
|
1477 Il miglior codec è quello che riesci a gestire al meglio, e quello che ai
|
|
1478 tuoi occhi e sul tuo schermo si vede meglio.
|
25279
|
1479 <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'><para>
|
25449
|
1480 La stessa codifica potrebbe non apparire uguale sullo schermo di qualcun
|
|
1481 altro o se riprodotta con un decodificatore differente, perciò controlla
|
|
1482 i tuoi risultati riproducendoli in diverse condizioni.
|
25279
|
1483 </para></footnote>!
|
|
1484 </para>
|
|
1485 </listitem>
|
|
1486 </itemizedlist>
|
|
1487
|
|
1488 <para>
|
25449
|
1489 Fai per favore riferimento alla sezione
|
|
1490 <link linkend="menc-feat-selecting-codec">selezionare codec e formati contenitore</link>
|
|
1491 per avere un elenco dei codec usabili.
|
25279
|
1492 </para>
|
|
1493 </sect2>
|
|
1494
|
|
1495 <!-- ********** -->
|
|
1496
|
|
1497 <sect2 id="menc-feat-dvd-mpeg4-audio">
|
|
1498 <title>Audio</title>
|
|
1499
|
|
1500 <para>
|
25449
|
1501 L'audio è un problema di decisamente più facile soluzione: se ti interessa la
|
|
1502 qualità, lascialo semplicemente com'è.
|
|
1503 Anche i flussi AC-3 5.1 sono al massimo a 448Kbit/s, e ne valgono ogni bit.
|
|
1504 Potresti esser tentato di trascodificare l'audio in Vorbis ad alta qualità, ma
|
|
1505 solo perché a tutt'oggi non hai un decodificatore AC-3 pass-through ciò non
|
|
1506 significa che non ne avrai uno in futuro. Assicura un futuro ai tuoi rip da DVD
|
|
1507 preservando il flusso in AC-3.
|
|
1508 Puoi mantenere il flusso AC-3 anche copiandolo direttamente nel flusso video
|
|
1509 <link linkend="menc-feat-mpeg4">durante la codifica</link>.
|
|
1510 Puoi anche estrarre il flusso AC-3 al fine di farne il mux in contenitori come
|
|
1511 NUT o Matroska.
|
25279
|
1512 <screen>
|
25449
|
1513 mplayer <replaceable>file_sorgente.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>suono.ac3</replaceable>
|
25279
|
1514 </screen>
|
25449
|
1515 effettuerà il dump della traccia audio numero 129 dal file
|
|
1516 <replaceable>file_sorgente.vob</replaceable> nel file
|
|
1517 <replaceable>suono.ac3</replaceable> (NB: i file VOB da DVD spesso usano una
|
|
1518 numerazione dell'audio diversa, il che significa che la traccia audio 129 è la
|
|
1519 seconda traccia del file).
|
|
1520 </para>
|
|
1521
|
|
1522 <para>
|
|
1523 Alcune volte invece, non hai davvero altra scelta se non comprimere
|
|
1524 ulteriormente il suono per poter usare più bit per il video.
|
|
1525 La maggior parte delle persone sceglie di comprimere l'audio con i codec MP3
|
|
1526 ovvero Vorbis.
|
|
1527 Mentre quest'ultimo è un codec decisamente efficiente per lo spazio, MP3 è
|
|
1528 meglio supportato dai lettori da tavolo, anche se la situazione sta cambiando.
|
|
1529 </para>
|
|
1530
|
|
1531 <para>
|
|
1532 <emphasis>Non</emphasis> usare <option>-nosound</option> mentre codifichi un
|
|
1533 file con dell'audio, anche se farai la codifica e il mux dell'audio
|
|
1534 separatamente in seguito.
|
|
1535 Anche se potesse andar bene in casi ideali, facilmente usare
|
|
1536 <option>-nosound</option> nasconderà alcuni problemi nelle tue impostazioni di
|
|
1537 codifica sulla riga comando.
|
|
1538 In altre parole mantenere la colonna sonora durante la codifica ti assicura,
|
|
1539 a patto che tu non veda messaggi del tipo
|
|
1540 <quote>Troppi pacchetti audio nel buffer</quote>, di ottenere un'adeguata
|
|
1541 sincronizzazione.
|
|
1542 </para>
|
|
1543
|
|
1544 <para>
|
|
1545 Devi fare in modo che <application>MEncoder</application> processi il suono.
|
|
1546 Puoi per esempio copiare la colonna sonora originaria durante la codifica con
|
|
1547 <option>-oac copy</option>, o convertirla in un "leggero" PCM WAV mono a 4 kHz
|
|
1548 con <option>-oac pcm -channels 1 -srate 4000</option>.
|
|
1549 In caso contrario in alcuni casi verrà generato un file video che sarà
|
|
1550 desincronizzato con l'audio.
|
|
1551 Casi del genere sono quelli in cui il numero dei fotogrammi video nel file di
|
|
1552 origine non corrisponde alla lunghezza totale dei fotogrammi audio oppure
|
|
1553 ogniqualvolta vi siano delle discontinuità/splice in cui mancano o ci sono
|
|
1554 fotogrammi audio in più.
|
|
1555 Il modo giusto di gestire questo tipo di problemi è inserire del silenzio o
|
|
1556 tagliare l'audio in quei punti.
|
|
1557 Tuttavia <application>MPlayer</application> non è in grado di farlo, per cui se
|
|
1558 fai il demux dell'audio AC-3 e lo codifichi con un'altro programma (o ne fai il
|
|
1559 dump in PCM con <application>MPlayer</application>), gli splice rimarranno
|
|
1560 sbagliati e l'unico modo per correggerli è scartare/duplicare fotogrammi video
|
|
1561 nel punto di splice.
|
|
1562 Fintantochè <application>MEncoder</application> vede l'audio mentre codifica il
|
|
1563 video, può eseguire questo scarto/duplicazione (che solitamente è OK, dato che
|
|
1564 capita con scene nere o cambi scena), ma se <application>MEncoder</application>
|
|
1565 non vede l'audio, processerà i fotogrammi così come sono e alla fine non
|
|
1566 corrisponderanno al flusso audio finale quando per esempio inserirai i flussi
|
|
1567 audio e video dentro a un file Matroska.
|
|
1568 </para>
|
|
1569
|
|
1570 <para>
|
|
1571 Prima di tutto dovrai convertire l'audio DVD in un file WAV che il codec audio
|
|
1572 possa usare come ingresso.
|
|
1573 Per esempio:
|
25279
|
1574 <screen>
|
25449
|
1575 mplayer <replaceable>file_sorgente.vob</replaceable> -ao pcm:file=<replaceable>suono_destinazione.wav</replaceable> \
|
25279
|
1576 -vc dummy -aid 1 -vo null
|
|
1577 </screen>
|
25449
|
1578 eseguirà il dump della seconda traccia audio dal file
|
|
1579 <replaceable>file_sorgente.vob</replaceable> sul file
|
|
1580 <replaceable>suono_destinazione.wav</replaceable>.
|
|
1581 Potresti voler normalizzare il suono prima della codifica, visto che le tracce
|
|
1582 audio dei DVD spesso sono registrate a volumi bassi.
|
|
1583 Puoi usare per esempio lo strumento <application>normalize</application>, che
|
|
1584 è disponibile nella maggior parte delle distribuzioni.
|
|
1585 Se stai usando Windows, lo stesso mestiere lo può fare uno strumento tipo
|
|
1586 <application>BeSweet</application>.
|
|
1587 Effettuerai la compressione in Vorbis ovvero in MP3.
|
|
1588
|
|
1589 Per esempio:
|
|
1590 <screen>oggenc -q1 <replaceable>suono_destinazione.wav</replaceable></screen>
|
|
1591 codificherà <replaceable>suono_destinazione.wav</replaceable> con qualità
|
|
1592 di codifica 1, che equivale circa a 80Kb/s, ed è la qualità minima in cui
|
|
1593 dovresti codificare se ti interessa la qualità.
|
|
1594 Fai per favore attenzione che attualmente <application>MEncoder</application>
|
|
1595 non è in grado di fare il mux di tracce audio Vorbis nel file di uscita,
|
|
1596 perché gestisce solo contenitori AVI e MPEG in uscita, ognuno dei quali può
|
|
1597 portare a problemi di sincronizzazione audio/video durante la riproduzione con
|
|
1598 alcuni lettori quando il file AVI contiene flussi audio VBR come Vorbis.
|
|
1599 Non preoccuparti, questa documentazione ti mostrerà come tu possa farlo
|
|
1600 comunque con programmi di terze parti.
|
25279
|
1601 </para>
|
|
1602 </sect2>
|
|
1603
|
|
1604 <!-- ********** -->
|
|
1605
|
|
1606 <sect2 id="menc-feat-dvd-mpeg4-muxing">
|
|
1607 <title>Muxing</title>
|
|
1608
|
|
1609 <para>
|
26192
|
1610 Ora che hai codificato il tuo video, vorrai verosimilmente farne il mux in un
|
|
1611 contenitore di filmati con una o più tracce audio, come AVI, MPEG, Matroska o
|
|
1612 NUT.
|
|
1613 <application>MEncoder</application> è attualmente in grado di generare in modo
|
|
1614 nativo solo video in formati contenitore MPEG o AVI.
|
|
1615 Per esempio:
|
25279
|
1616 <screen>
|
26192
|
1617 mencoder -oac copy -ovc copy -o <replaceable>film_in_uscita.avi</replaceable> \
|
|
1618 -audiofile <replaceable>audio_in_ingresso.mp2</replaceable> <replaceable>video_in_ingresso.avi</replaceable>
|
25279
|
1619 </screen>
|
26192
|
1620 Questo miscelerà i file video <replaceable>video_in_ingresso.avi</replaceable>
|
|
1621 e audio <replaceable>audio_in_ingresso.mp2</replaceable> nel file AVI
|
|
1622 <replaceable>film_in_uscita.avi</replaceable>.
|
|
1623 Questo comando funziona con audio MPEG-1 layer I, II e III (più comunemente
|
|
1624 conosciuto come MP3), WAV e qualche altro formato audio.
|
|
1625 </para>
|
|
1626
|
|
1627 <para>
|
|
1628 <application>MEncoder</application> vanta un supporto sperimentale per
|
|
1629 <systemitem class="library">libavformat</systemitem>, che è una libreria del
|
|
1630 progetto FFmpeg che può fare il mux e il demux di svariati contenitori.
|
|
1631 Per esempio:
|
25279
|
1632 <screen>
|
26192
|
1633 mencoder -oac copy -ovc copy -o <replaceable>film_di_uscita.asf</replaceable> -audiofile <replaceable>audio_in_ingresso.mp2</replaceable> \
|
|
1634 <replaceable>video_in_ingresso.avi</replaceable> -of lavf -lavfopts format=asf
|
25279
|
1635 </screen>
|
26192
|
1636 Questo farà la stessa cosa dell'esempio precedente, trannce che il contenitore
|
|
1637 di uscita sarà ASF.
|
|
1638 Per favore nota che questo supporto è altamente sperimentale (ma migliora di
|
|
1639 giorno in giorno), e funzionerà solo se hai compilato
|
|
1640 <application>MPlayer</application> con il supporto per
|
|
1641 <systemitem class="library">libavformat</systemitem> abilitato (il che
|
|
1642 significa che una versione precompilata nella maggior parte dei casi non
|
|
1643 funzionerà).
|
25279
|
1644 </para>
|
|
1645
|
|
1646
|
|
1647 <sect3 id="menc-feat-dvd-mpeg4-muxing-filter-issues">
|
26192
|
1648 <title>Migliorare il mux e l'affidabilità di sincronizzazione A/V</title>
|
|
1649
|
|
1650 <para>
|
|
1651 Potresti avere dei seri problemi di sincronizzazione cercando di fare il mux
|
|
1652 del tuo video con alcune tracce audio, indipendentemente da come tu corregga il
|
|
1653 ritardo audio, non otterrai mai una sincronia corretta.
|
|
1654 Ciò potrebbe succedere quando usi un qualche filtro video che scarti o duplichi
|
|
1655 alcuni fotogrammi, come il filtro di telecine inverso.
|
|
1656 Si consiglia vivamente di appendere il filtro video <option>harddup</option>
|
|
1657 alla fine della catena dei filtri, per evitare questo tipo di problema.
|
|
1658 </para>
|
|
1659
|
|
1660 <para>
|
|
1661 Senza <option>harddup</option>, se <application>MEncoder</application> vuole
|
|
1662 duplicare un fotogramma, chiede al muxer di mettere un segno sul contenitore
|
|
1663 affinché l'ultimo fotogramma venga mostrato di nuovo per mantenere la
|
|
1664 sincronia, senza scriverne effettivamente alcuno.
|
|
1665 Con <option>harddup</option>, <application>MEncoder</application> farà
|
|
1666 semplicemente passare di nuovo l'ultimo fotogramma nella catena di filtri.
|
|
1667 Questo significa che il codificatore riceve <emphasis>esattamente</emphasis> lo
|
|
1668 stesso fotogramma due volte, e lo comprime.
|
|
1669 Ciò genera un file leggermente più grosso, ma non causerà problemi
|
|
1670 effettuando il demux o il remux in altri formati contenitore.
|
|
1671 </para>
|
|
1672
|
|
1673 <para>
|
|
1674 Potresti non avere altra scelta che usare <option>harddup</option> con formati
|
|
1675 contenitore che non siano così legati a <application>MEncoder</application>
|
|
1676 come quelli gestiti attraverso
|
|
1677 <systemitem class="library">libavformat</systemitem>, e che possano non gestire
|
|
1678 la duplicazione fotogrammi a livello contenitore.
|
25279
|
1679 </para>
|
|
1680 </sect3>
|
|
1681
|
|
1682
|
|
1683 <sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations">
|
26192
|
1684 <title>Limitazioni del contenitore AVI</title>
|
|
1685
|
|
1686 <para>
|
|
1687 Anche se AVI è il formato contenitore più ampiamente gestito dopo MPEG-1, ha
|
|
1688 anche molti gravi inconvenienti.
|
|
1689 Forse il più ovvio è lo spreco di banda.
|
|
1690 Per ogni blocco del file AVI, 24 byte sono sprecati per intestazione e indice.
|
|
1691 Questo porta a poco più di 5 MB per ora, o 1-2.5% di dimensione supplementare
|
|
1692 per un film da 700 MB. Potrebbe non sembrare poi così tanto, ma potrebbe far
|
|
1693 la differenza tra poter utilizzare 700 oppure 714 kbit/sec per il video, e ogni
|
|
1694 bit è importante per la qualità.
|
|
1695 </para>
|
|
1696
|
|
1697 <para>
|
|
1698 Oltre a questa grave inefficenza, AVI ha anche le grandi limitazioni che
|
|
1699 seguono:
|
25279
|
1700 </para>
|
|
1701
|
|
1702 <orderedlist>
|
|
1703 <listitem><para>
|
26192
|
1704 Può essere immagazzinato solo contenuto a fps costanti. Questo è decisamente
|
|
1705 limitante se il materiale di origine che vuoi codificare è contenuto misto,
|
|
1706 per esempio un misto di video NTSC e film.
|
|
1707 Ci sono invero alcuni trucchi che possono essere usati per salvare negli AVI
|
|
1708 contenuto a frequenza di fotogrammi mista, ma aumentano il (già immenso)
|
|
1709 spreco di banda di cinque volte o giù di lì e quindi non sono pratici.
|
25279
|
1710 </para></listitem>
|
|
1711 <listitem><para>
|
26192
|
1712 L'audio nei file AVI deve essere a bitrate costante (CBR) o a dimensione di
|
|
1713 fotogramma fissa (per es. tutti i fotogrammi decodificano lo stesso numero di
|
|
1714 campioni).
|
|
1715 Sfortunatamente, il codec più efficente, Vorbis, non ha alcuna delle suddette
|
|
1716 caratteristiche.
|
|
1717 Se decidi di salvare il tuo film in AVI, dovrai perciò usare un codec meno
|
|
1718 efficente, come MP3 o AC-3.
|
25279
|
1719 </para></listitem>
|
|
1720 </orderedlist>
|
|
1721
|
|
1722 <para>
|
26192
|
1723 Detto tutto ciò, <application>MEncoder</application> non gestisce attualmente
|
|
1724 la codifica in uscita a fps variabile o la codifica in Vorbis.
|
|
1725 Quindi non noterai le limitazioni su citate se
|
|
1726 <application>MEncoder</application> è l'unico strumento che userai per produrre
|
|
1727 le tue codifiche.
|
|
1728 Tuttavia è possibile usare <application>MEncoder</application> solo per la
|
|
1729 codifica del video, e poi utilizzare strumenti di terze parti per codificare
|
|
1730 l'audio e farne il mux in un altro formato contenitore.
|
25279
|
1731 </para>
|
|
1732 </sect3>
|
|
1733
|
|
1734
|
|
1735 <sect3 id="menc-feat-dvd-mpeg4-muxing-matroska">
|
26192
|
1736 <title>Mux nel contenitore Matroska</title>
|
|
1737
|
|
1738 <para>
|
|
1739 Matroska è un formato contenitore libero, a standard aperti, che punta ad
|
|
1740 offrire molte caratteristiche avanzate, che contenitori più vecchi come AVI non
|
|
1741 sono in grado di manipolare.
|
|
1742 Per esempio Matroska supporta contenuto audio a bitrate variabile (VBR),
|
|
1743 frequenza fotogrammi variabile (VFR), capitoli, file allegati, codice di
|
|
1744 gestione errori (EDC) e Codec A/V moderni come "Advanced Audio Coding" (AAC),
|
|
1745 "Vorbis" or "MPEG-4 AVC" (H.264), comparato al nulla gestito da AVI.
|
|
1746 </para>
|
|
1747
|
|
1748 <para>
|
|
1749 Gli strumenti necessari per creare file Matroska sono chiamati nel loro insieme
|
|
1750 <application>mkvtoolnix</application> e sono disponibili per la maggior parte
|
|
1751 delle piattaforme Unix, così come per <application>Windows</application>.
|
|
1752 Dato che Matroska è uno standard aperto, potresti trovare altri strumenti che
|
|
1753 ti tornino più utili, ma dato che mkvtoolnix è il più diffuso, ed è
|
|
1754 supportato dal team stesso di Matroska, illustreremo il suo solo utilizzo.
|
|
1755 </para>
|
|
1756
|
|
1757 <para>
|
|
1758 Probabilmente il modo più semplice di avvicinarsi a Matroska è utilizzare
|
|
1759 <application>MMG</application>, il frontend grafico fornito con
|
|
1760 <application>mkvtoolnix</application>, e seguire la <ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guida della GUI di mkvmerge (mmg)</ulink>.
|
|
1761 </para>
|
|
1762
|
|
1763 <para>
|
|
1764 Puoi anche fare il mux dei file audio e video usando la riga comando:
|
25279
|
1765 <screen>
|
26192
|
1766 mkvmerge -o <replaceable>destinazione.mkv</replaceable> <replaceable>video_sorgente.avi</replaceable> <replaceable>audio_sorgente1.mp3</replaceable> <replaceable>audio_sorgente2.ac3</replaceable>
|
25279
|
1767 </screen>
|
26192
|
1768 Questo unirà il file video <replaceable>video_sorgente.avi</replaceable> e i
|
|
1769 due file audio <replaceable>audio_sorgente1.mp3</replaceable> e
|
|
1770 <replaceable>audio_sorgente2.ac3</replaceable> nel file Matroska
|
|
1771 <replaceable>destinazione.mkv</replaceable>.
|
|
1772 Matroska, come detto precedentemente, è in grado di far molto più di questo,
|
|
1773 come tracce audio multiple (inclusa una fine sincronia audio/video), capitoli,
|
|
1774 sottotitoli, salti, etc...
|
|
1775 Fai per favore riferimento alla documentazione di queste applicazioni per
|
|
1776 maggiori delucidazioni.
|
25279
|
1777 </para>
|
|
1778 </sect3>
|
|
1779 </sect2>
|
|
1780 </sect1>
|
|
1781
|
|
1782
|
|
1783 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
1784
|
|
1785
|
|
1786 <sect1 id="menc-feat-telecine">
|
26192
|
1787 <title>Come trattare telecine e interlacciamento nei DVD NTSC</title>
|
25279
|
1788
|
|
1789 <sect2 id="menc-feat-telecine-intro">
|
26192
|
1790 <title>Introduzione</title>
|
25279
|
1791
|
|
1792 <formalpara>
|
26192
|
1793 <title>Cos'è telecine?</title>
|
|
1794 <para>
|
|
1795 Se non comprendi molto quello che è scritto in questo documento, leggi la
|
|
1796 <ulink url="http://en.wikipedia.org/wiki/Telecine">definizione di telecine su Wikipedia</ulink>
|
|
1797 (<ulink url="http://en.wikipedia.org/wiki/Telecine">pagina inglese</ulink>).
|
|
1798 E' una descrizione comprensibile e ragionevolmente completa di cosa si indichi
|
|
1799 con telecine.
|
25279
|
1800 </para></formalpara>
|
|
1801
|
|
1802 <formalpara>
|
26192
|
1803 <title>Una nota riguardo i numeri.</title>
|
|
1804 <para>
|
|
1805 Molti documenti, inclusa la guida su indicata, fanno riferimento al valore dei
|
|
1806 campi per secondo del video NTSC come 59.94 e i valori corrispondenti di
|
|
1807 fotogrammi al secondo come 29.97 (con telecine e interlacciamento) e 23.976
|
|
1808 (per il progressivo). Per semplicità alcune documentazioni arrotondano tali
|
|
1809 cifre a 60, 30 e 24.
|
25279
|
1810 </para></formalpara>
|
|
1811
|
|
1812 <para>
|
26192
|
1813 Strettamente parlando, tutti questi numeri sono approssimati. Il video NTSC in
|
|
1814 bianco e nero era esattamente 60 campi al secondo, ma successivamente venne
|
|
1815 scelto 60000/1001 per incastrare i dati del colore e rimanere compatibili con
|
|
1816 le televisioni bianco e nero contemporanee. Anche il video NTSC digitale (come
|
|
1817 quello sui DVD) è a 60000/1001 campi al secondo. Da ciò discende che il video
|
|
1818 interlacciato e telecine è 30000/1001 fotogrammi al secondo; il video
|
|
1819 progressivo è 24000/1001 fotogrammi al secondo.
|
|
1820 </para>
|
|
1821
|
|
1822 <para>
|
|
1823 Precedenti versioni della documentazioni di <application>MEncoder</application>
|
|
1824 a molti post archiviati della mailig list fanno riferimento a 59.94, 29.97 e
|
|
1825 23.976.
|
|
1826 Tutta la documentazioni di <application>MEncoder</application> è stata
|
|
1827 aggiornata per usare i valori in frazione, e anche tu dovresti usare questi.
|
|
1828 </para>
|
|
1829
|
|
1830 <para>
|
|
1831 <option>-ofps 23.976</option> è sbagliato.
|
|
1832 <option>-ofps 24000/1001</option> dovrebbe invece essere usato.
|
25279
|
1833 </para>
|
|
1834
|
|
1835 <formalpara>
|
26192
|
1836 <title>Come viene usato telecine.</title>
|
25279
|
1837 <para>
|
26192
|
1838 Tutto il video pensato per essere riprodotto su televisione NTSC deve essere a
|
|
1839 60000/1001 campi al secondo. I film per la TV e gli spettacoli sono spesso
|
|
1840 registrati direttamente a 60000/1001 campi al secondo, ma la stragrande
|
|
1841 maggioranzna dei film per cinema è filmata a 24 o 24000/1001 fotogrammi al
|
|
1842 secondo. Quando i film da cinema vengono masterizzati su DVD, il video viene
|
|
1843 quindi convertito per la televisione usando un processo chiamato telecine
|
|
1844 (o telecinema).
|
25279
|
1845 </para></formalpara>
|
|
1846
|
|
1847 <para>
|
26192
|
1848 Su un DVD il video non è praticamente mai memorizzato con 60000/1001 campi al
|
|
1849 secondo. Per un video che originariamente era 60000/1001, ogni coppia di campi
|
|
1850 viene combinata in un fotogramma, risultando in 30000/1001 fotogrammi al
|
|
1851 secondo. I lettori DVD hardware leggono quindi un parametro codificato nel
|
|
1852 flusso video pe rdeterminare se le linee pari o quelle dispari debbano formare
|
|
1853 il primo campo.
|
|
1854 </para>
|
|
1855
|
|
1856 <para>
|
|
1857 Solitamente il contenuto a 24000/1001 fotogrammi per secondi resta così com'è
|
|
1858 quando viene codificato per un DVD, e il lettore DVD deve eseguire il telecine
|
|
1859 al momento. Alcune volte invece, il video subisce il telecine
|
|
1860 <emphasis>prima</emphasis> di essere scritto su DVD; anche se in origine era a
|
|
1861 24000/1001 fotogrammi al secondi, diventa 60000/1001 campi al secondo. Quando
|
|
1862 viene memorizzato su DVD, le coppie di campi vengono assemblate per formare
|
|
1863 30000/1001 fotogrammi al secondo.
|
|
1864 </para>
|
|
1865
|
|
1866 <para>
|
|
1867 Guardando i singoli fotogrammi generati da video a 60000/1001 campi al secondo,
|
|
1868 che sia telecine o no, l'interlacciamento è chiaramente visibile ovunque vi sia
|
|
1869 del movimento, dato che un campo (diciamo le linee pari) rappresenta un istante
|
|
1870 nel tempo 1/(60000/1001) secondi dopo l'altro. Riprodurre video interlacciato
|
|
1871 su un computer risulta brutto sia perché il monitor ha una risoluzione maggiore
|
|
1872 sia perché il video viene mostrato un fotogramma dopo l'altro invece che un
|
|
1873 campo dopo l'altro.
|
25279
|
1874 </para>
|
|
1875
|
|
1876 <itemizedlist>
|
26192
|
1877 <title>Note:</title>
|
25279
|
1878 <listitem><para>
|
26192
|
1879 Questa sezione si applica solo ai DVD NTSC, e non a quelli PAL.
|
25279
|
1880 </para></listitem>
|
|
1881 <listitem><para>
|
26192
|
1882 Le righe di esempio per <application>MEncoder</application> proposte nella
|
|
1883 documentazione <emphasis role="bold">non</emphasis> sono pensate per un
|
|
1884 utilizzo reale. Sono solo quelle minimali richieste per codificare la
|
|
1885 relativa categoria di video. Come fare buoni rip di DVD o configurare bene
|
|
1886 <systemitem class="library">libavcodec</systemitem> per la massima qualità
|
|
1887 non è lo scopo di questa documentazione.
|
25279
|
1888 </para></listitem>
|
|
1889 <listitem><para>
|
26192
|
1890 Ci sono alcune note a piè di pagina specifiche di questa guida, così
|
|
1891 indicate:
|
25279
|
1892 <link linkend="menc-feat-telecine-footnotes">[1]</link>
|
|
1893 </para></listitem>
|
|
1894 </itemizedlist>
|
|
1895 </sect2>
|
|
1896
|
|
1897 <!-- ********** -->
|
|
1898
|
|
1899 <sect2 id="menc-feat-telecine-ident">
|
26253
|
1900 <title>Come scoprire il tipo di video che possiedi</title>
|
25279
|
1901
|
|
1902 <sect3 id="menc-feat-telecine-ident-progressive">
|
26254
|
1903 <title>Progressivo</title>
|
26253
|
1904
|
|
1905 <para>
|
|
1906 Il video progressivo è stato originariamente filmato a 24000/1001 fps, e
|
|
1907 memorizzato sul DVD senza modifica alcuna.
|
|
1908 </para>
|
|
1909
|
|
1910 <para>
|
|
1911 Quando riproduci un DVD progressivo con <application>MPlayer</application>,
|
|
1912 <application>MPlayer</application> emette la riga seguente appena il video
|
|
1913 inizia la riproduzione:
|
25279
|
1914 <screen>
|
|
1915 demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
|
|
1916 </screen>
|
26253
|
1917 Da qui in poi, demux_mpg non dovrebbe mai comunicare di aver trovato
|
|
1918 "30000/1001 fps NTSC content" (contenuto NTSC a 30000/1001 fps).
|
|
1919 </para>
|
|
1920
|
|
1921 <para>
|
|
1922 Quando guardi video progressivo, non dovresti mai vedere alcuna interlacciatura.
|
|
1923 Fai tuttavia attenzione, poiché alcune volte c'è una piccola parte in telecine
|
|
1924 infilata dove non te la aspetteresti. Ho trovato alcuni DVD di spettacoli
|
|
1925 televisivi che hanno un secondo di telecine ad ogni cambio di scena, o anche in
|
|
1926 momenti casuali. Una volta ho guardato un DVD che aveva una prima parte
|
|
1927 progressiva e la seconda in telecine. Se vuoi esserne
|
|
1928 <emphasis>davvero</emphasis> certo, devi controllare tutto il video:
|
25279
|
1929 <screen>mplayer dvd://1 -nosound -vo null -benchmark</screen>
|
|
1930 Using <option>-benchmark</option> makes
|
26253
|
1931 L'utilizzo di <option>-benchmark</option> fa sì che
|
|
1932 <application>MPlayer</application> riproduca il filmato il più velocemente
|
|
1933 possibile; tuttavia, in dipendenza dal tuo hardware, può metterci un po'.
|
|
1934 Ogni volta che demux_mpg segnala un cambio nella frequenza fotogrammi
|
|
1935 (framerate), la linea immediatamente sopra ti dirà il tempo ove è cambiata.
|
|
1936 </para>
|
|
1937
|
|
1938 <para>
|
|
1939 Alcune volte il video progressivo sui DVD viene indicato come "soft-telecine"
|
|
1940 perché è fatto in modo che il lettore DVD esegua il telecine.
|
25279
|
1941 </para>
|
|
1942 </sect3>
|
|
1943
|
|
1944
|
|
1945 <sect3 id="menc-feat-telecine-ident-telecined">
|
26253
|
1946 <title>Telecine</title>
|
|
1947
|
|
1948 <para>
|
|
1949 Il video in telecine è stato filmato in origine a 24000/1001, ma ha subito il
|
|
1950 telecine <emphasis>prima</emphasis> di essere scritto sul DVD.
|
|
1951 </para>
|
|
1952
|
|
1953 <para>
|
|
1954 Quando <application>MPlayer</application> riproduce video in telecine non
|
|
1955 segnala (mai) alcun cambio di framerate.
|
|
1956 </para>
|
|
1957
|
|
1958 <para>
|
|
1959 Guardado un video in telecine, noterai artefatti che sembrano "lampeggiare":
|
|
1960 appaiono e scompaiono ripetutamente.
|
|
1961 Puoi notarlo meglio facendo quello che segue
|
25279
|
1962 <orderedlist>
|
|
1963 <listitem><screen>mplayer dvd://1</screen></listitem>
|
|
1964 <listitem><para>
|
26253
|
1965 Ricerca una parte con movimento.
|
25279
|
1966 </para></listitem>
|
|
1967 <listitem><para>
|
26253
|
1968 Usa il tasto <keycap>.</keycap> per avanzare di un fotogramma per volta.
|
25279
|
1969 </para></listitem>
|
|
1970 <listitem><para>
|
26253
|
1971 Guarda il pattern dei fotogrammi che paiono interlacciati e di quelli
|
|
1972 progressivi. Se il pattern che vedi è PPPII,PPPII,PPPII,... allora il video
|
|
1973 è in telecine. Se vedi qualche altro pattern, allora il video può aver
|
|
1974 subito il telecine attraverso qualche metodo strano;
|
|
1975 <application>MEncoder</application> può effettuare la conversione senza
|
|
1976 perdita da telecine non standard a progressivo. Se non vedi alcun pattern,
|
|
1977 allora molto probabilmente è interlacciato.
|
25279
|
1978 </para></listitem>
|
|
1979 </orderedlist>
|
|
1980 </para>
|
|
1981
|
|
1982 <para>
|
26253
|
1983 Alcune volte il video in telecine sui DVD viene indicato come "hard-telecine".
|
|
1984 Dato che l'hard-telecine è già a 60000/1001 campi al secondi, il lettore DVD
|
|
1985 riproduce il video senza elaborazione alcuna.
|
|
1986 </para>
|
|
1987
|
|
1988 <para>
|
|
1989 Un altro modo per scoprire se la tua sorgente è in telecine o no è riprodurla
|
|
1990 con le opzioni <option>-vf pullup</option> e <option>-v</option> da riga
|
|
1991 comando per vedere come <option>pullup</option> relaziona i fotogrammi.
|
|
1992 Se la sorgente è in telecine, dovresti vedere sulla console un pattern 3:2 con
|
|
1993 <systemitem>0+.1.+2</systemitem> e <systemitem>0++1</systemitem> che si
|
|
1994 alternano.
|
|
1995 Questa tecnica ha il vantaggio di evitare di guardare la sorgente per doverla
|
|
1996 identificare, il che può tornare utile se vuoi automatizzare la procedura di
|
|
1997 codifica ovvero se vuoi eseguire tale procedura in remoto su una connessione
|
|
1998 lenta.
|
25279
|
1999 </para>
|
|
2000 </sect3>
|
|
2001
|
|
2002
|
|
2003 <sect3 id="menc-feat-telecine-ident-interlaced">
|
26253
|
2004 <title>Interlacciato</title>
|
|
2005
|
|
2006 <para>
|
|
2007 Il video interlacciato è stato filmato in origine a 60000/1001 campi al
|
|
2008 secondo ed è memorizzato sul DVD a 30000/1001 fotogrammi al secondo. L'effetto
|
|
2009 di interlacciatura (spesso chimato "combing") è un risultato di coppie di
|
|
2010 campi che vengono combinate in fotogrammi. Ogni campo è spostato di
|
|
2011 1/(60000/1001) secondi e quando vengono mostrati contemporaneamente la
|
|
2012 differenza si nota.
|
|
2013 </para>
|
|
2014
|
|
2015 <para>
|
|
2016 Come per il video in telecine, <application>MPlayer</application> non dovrebbe
|
|
2017 mai segnalare alcun cambio di framerete, riproducendo contenuto interlacciato.
|
|
2018 </para>
|
|
2019
|
|
2020 <para>
|
|
2021 Quando guardi attentamente un video interlacciato avanzando fotogramma per
|
|
2022 fotogramma col tasto <keycap>.</keycap>, noterai che ogni singolo fotogramma è
|
|
2023 interlacciato.
|
25279
|
2024 </para>
|
|
2025 </sect3>
|
|
2026
|
|
2027
|
|
2028 <sect3 id="menc-feat-telecine-ident-mixedpt">
|
26253
|
2029 <title>Progressivo e telecine miscelati</title>
|
|
2030
|
|
2031 <para>
|
|
2032 Tutto il contenuto di un video "progressivo e telecine miscelato" è stato
|
|
2033 in origine filmato a 24000/1001 fotogrammi al secondo, ma alcune parti alla
|
|
2034 fine hanno subito il telecine.
|
|
2035 </para>
|
|
2036
|
|
2037 <para>
|
|
2038 Quando <application>MPlayer</application> riproduce questa tipologia di video
|
|
2039 salta (spesso ripetutamente) avanti e indietro tra "30000/1001 fps NTSC" e
|
|
2040 "24000/1001 fps progressive NTSC". Controlla le ultime righe dell'emissione di
|
|
2041 <application>MPlayer</application> per vedere questi messaggi.
|
|
2042 </para>
|
|
2043
|
|
2044 <para>
|
|
2045 Dovresti controllare le sezioni "30000/1001 fps NTSC" per assicurarti che siano
|
|
2046 davvero in telecine e non solamente interlacciate.
|
25279
|
2047 </para>
|
|
2048 </sect3>
|
|
2049
|
|
2050
|
|
2051 <sect3 id="menc-feat-telecine-ident-mixedpi">
|
26253
|
2052 <title>Progressivo e interlacciato miscelati</title>
|
|
2053
|
|
2054 <para>
|
|
2055 Nei contenuti con video "progressivo e interlacciato miscelati", il video
|
|
2056 progressivo e interlacciato sono mescolati tra loro.
|
|
2057 </para>
|
|
2058
|
|
2059 <para>
|
|
2060 Questa categoria è decisamente simile a "progressivo e telecine miscelato",
|
|
2061 fino a quando non controlli le parti a 30000/1001 fps e scopri che non hanno
|
|
2062 il pattern del telecine.
|
25279
|
2063 </para>
|
|
2064 </sect3>
|
|
2065 </sect2>
|
|
2066
|
|
2067 <!-- ********** -->
|
|
2068
|
|
2069 <sect2 id="menc-feat-telecine-encode">
|
|
2070 <title>How to encode each category</title>
|
|
2071 <para>
|
|
2072 As I mentioned in the beginning, example <application>MEncoder</application>
|
|
2073 lines below are <emphasis role="bold">not</emphasis> meant to actually be used;
|
|
2074 they only demonstrate the minimum parameters to properly encode each category.
|
|
2075 </para>
|
|
2076
|
|
2077
|
|
2078 <sect3 id="menc-feat-telecine-encode-progressive">
|
|
2079 <title>Progressive</title>
|
|
2080 <para>
|
|
2081 Progressive video requires no special filtering to encode. The only
|
|
2082 parameter you need to be sure to use is <option>-ofps 24000/1001</option>.
|
|
2083 Otherwise, <application>MEncoder</application>
|
|
2084 will try to encode at 30000/1001 fps and will duplicate frames.
|
|
2085 </para>
|
|
2086
|
|
2087 <para>
|
|
2088 <screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen>
|
|
2089 </para>
|
|
2090
|
|
2091 <para>
|
|
2092 It is often the case, however, that a video that looks progressive
|
|
2093 actually has very short parts of telecine mixed in. Unless you are
|
|
2094 sure, it is safest to treat the video as
|
|
2095 <link linkend="menc-feat-telecine-encode-mixedpt">mixed progressive and telecine</link>.
|
|
2096 The performance loss is small
|
|
2097 <link linkend="menc-feat-telecine-footnotes">[3]</link>.
|
|
2098 </para>
|
|
2099 </sect3>
|
|
2100
|
|
2101
|
|
2102 <sect3 id="menc-feat-telecine-encode-telecined">
|
|
2103 <title>Telecined</title>
|
|
2104
|
|
2105 <para>
|
|
2106 Telecine can be reversed to retrieve the original 24000/1001 content,
|
|
2107 using a process called inverse-telecine.
|
|
2108 <application>MPlayer</application> contains several filters to
|
|
2109 accomplish this; the best filter, <option>pullup</option>, is described
|
|
2110 in the <link linkend="menc-feat-telecine-encode-mixedpt">mixed
|
|
2111 progressive and telecine</link> section.
|
|
2112 </para>
|
|
2113 </sect3>
|
|
2114
|
|
2115
|
|
2116 <sect3 id="menc-feat-telecine-encode-interlaced">
|
|
2117 <title>Interlaced</title>
|
|
2118
|
|
2119 <para>
|
|
2120 For most practical cases it is not possible to retrieve a complete
|
|
2121 progressive video from interlaced content. The only way to do so
|
|
2122 without losing half of the vertical resolution is to double the
|
|
2123 framerate and try to "guess" what ought to make up the
|
|
2124 corresponding lines for each field (this has drawbacks - see method 3).
|
|
2125 </para>
|
|
2126
|
|
2127 <orderedlist>
|
|
2128 <listitem><para>
|
|
2129 Encode the video in interlaced form. Normally, interlacing wreaks
|
|
2130 havoc with the encoder's ability to compress well, but
|
|
2131 <systemitem class="library">libavcodec</systemitem> has two
|
|
2132 parameters specifically for dealing with storing interlaced video a
|
|
2133 bit better: <option> ildct</option> and <option>ilme</option>. Also,
|
|
2134 using <option>mbd=2</option> is strongly recommended
|
|
2135 <link linkend="menc-feat-telecine-footnotes">[2] </link> because it
|
|
2136 will encode macroblocks as non-interlaced in places where there is
|
|
2137 no motion. Note that <option>-ofps</option> is NOT needed here.
|
|
2138 <screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen>
|
|
2139 </para></listitem>
|
|
2140 <listitem><para>
|
|
2141 Use a deinterlacing filter before encoding. There are several of
|
|
2142 these filters available to choose from, each with its own advantages
|
|
2143 and disadvantages. Consult <option>mplayer -pphelp</option> and
|
|
2144 <option>mplayer -vf help</option> to see what is available
|
|
2145 (grep for "deint"), read Michael's Niedermayer
|
|
2146 <ulink url="http://guru.multimedia.cx/deinterlacing-filters/">Deinterlacing filters comparison</ulink>,
|
|
2147 and search the
|
|
2148 <ulink url="http://www.mplayerhq.hu/design7/mailing_lists.html">
|
|
2149 MPlayer mailing lists</ulink> to find many discussions about the
|
|
2150 various filters.
|
|
2151 Again, the framerate is not changing, so no
|
|
2152 <option>-ofps</option>. Also, deinterlacing should be done after
|
|
2153 cropping <link linkend="menc-feat-telecine-footnotes">[1]</link> and
|
|
2154 before scaling.
|
|
2155 <screen>mencoder dvd://1 -oac copy -vf yadif -ovc lavc</screen>
|
|
2156 </para></listitem>
|
|
2157 <listitem><para>
|
|
2158 Unfortunately, this option is buggy with
|
|
2159 <application>MEncoder</application>; it ought to work well with
|
|
2160 <application>MEncoder G2</application>, but that is not here yet. You
|
|
2161 might experience crahes. Anyway, the purpose of <option> -vf
|
|
2162 tfields</option> is to create a full frame out of each field, which
|
|
2163 makes the framerate 60000/1001. The advantage of this approach is that no
|
|
2164 data is ever lost; however, since each frame comes from only one
|
|
2165 field, the missing lines have to be interpolated somehow. There are
|
|
2166 no very good methods of generating the missing data, and so the
|
|
2167 result will look a bit similar to when using some deinterlacing
|
|
2168 filters. Generating the missing lines creates other issues, as well,
|
|
2169 simply because the amount of data doubles. So, higher encoding
|
|
2170 bitrates are required to maintain quality, and more CPU power is
|
|
2171 used for both encoding and decoding. tfields has several different
|
|
2172 options for how to create the missing lines of each frame. If you
|
|
2173 use this method, then Reference the manual, and chose whichever
|
|
2174 option looks best for your material. Note that when using
|
|
2175 <option>tfields</option> you
|
|
2176 <emphasis role="bold">have to</emphasis> specify both
|
|
2177 <option>-fps</option> and <option>-ofps</option> to be twice the
|
|
2178 framerate of your original source.
|
|
2179 <screen>
|
|
2180 mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
|
|
2181 -fps 60000/1001 -ofps 60000/1001<!--
|
|
2182 --></screen>
|
|
2183 </para></listitem>
|
|
2184 <listitem><para>
|
|
2185 If you plan on downscaling dramatically, you can extract and encode
|
|
2186 only one of the two fields. Of course, you will lose half the vertical
|
|
2187 resolution, but if you plan on downscaling to at most 1/2 of the
|
|
2188 original, the loss will not matter much. The result will be a
|
|
2189 progressive 30000/1001 frames per second file. The procedure is to use
|
|
2190 <option>-vf field</option>, then crop
|
|
2191 <link linkend="menc-feat-telecine-footnotes">[1]</link> and scale
|
|
2192 appropriately. Remember that you will have to adjust the scale to
|
|
2193 compensate for the vertical resolution being halved.
|
|
2194 <screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen>
|
|
2195 </para></listitem>
|
|
2196 </orderedlist>
|
|
2197 </sect3>
|
|
2198
|
|
2199
|
|
2200 <sect3 id="menc-feat-telecine-encode-mixedpt">
|
|
2201 <title>Mixed progressive and telecine</title>
|
|
2202
|
|
2203 <para>
|
|
2204 In order to turn mixed progressive and telecine video into entirely
|
|
2205 progressive video, the telecined parts have to be
|
|
2206 inverse-telecined. There are three ways to accomplish this,
|
|
2207 described below. Note that you should
|
|
2208 <emphasis role="bold">always</emphasis> inverse-telecine before any
|
|
2209 rescaling; unless you really know what you are doing,
|
|
2210 inverse-telecine before cropping, too
|
|
2211 <link linkend="menc-feat-telecine-footnotes">[1]</link>.
|
|
2212 <option>-ofps 24000/1001</option> is needed here because the output video
|
|
2213 will be 24000/1001 frames per second.
|
|
2214 </para>
|
|
2215
|
|
2216 <itemizedlist>
|
|
2217 <listitem><para>
|
|
2218 <option>-vf pullup</option> is designed to inverse-telecine
|
|
2219 telecined material while leaving progressive data alone. In order to
|
|
2220 work properly, <option>pullup</option> <emphasis role="bold">must</emphasis>
|
|
2221 be followed by the <option>softskip</option> filter or
|
|
2222 else <application>MEncoder</application> will crash.
|
|
2223 <option>pullup</option> is, however, the cleanest and most
|
|
2224 accurate method available for encoding both telecine and
|
|
2225 "mixed progressive and telecine".
|
|
2226 <screen>
|
|
2227 mencoder dvd://1 -oac copy -vf pullup,softskip
|
|
2228 -ovc lavc -ofps 24000/1001<!--
|
|
2229 --></screen>
|
|
2230 </para></listitem>
|
|
2231 <listitem><para>
|
|
2232 An older method
|
|
2233 is to, rather than inverse-telecine the telecined parts, telecine
|
|
2234 the non-telecined parts and then inverse-telecine the whole
|
|
2235 video. Sound confusing? softpulldown is a filter that goes through
|
|
2236 a video and makes the entire file telecined. If we follow
|
|
2237 softpulldown with either <option>detc</option> or
|
|
2238 <option>ivtc</option>, the final result will be entirely
|
|
2239 progressive. <option>-ofps 24000/1001</option> is needed.
|
|
2240 <screen>
|
|
2241 mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
|
|
2242 </screen>
|
|
2243 </para></listitem>
|
|
2244
|
|
2245 <listitem><para>
|
|
2246 I have not used <option>-vf filmdint</option> myself, but here is what
|
|
2247 D Richard Felker III has to say:
|
|
2248
|
|
2249 <blockquote><para>It is OK, but IMO it tries to deinterlace rather
|
|
2250 than doing inverse telecine too often (much like settop DVD
|
|
2251 players & progressive TVs) which gives ugly flickering and
|
|
2252 other artifacts. If you are going to use it, you at least need to
|
|
2253 spend some time tuning the options and watching the output first
|
|
2254 to make sure it is not messing up.
|
|
2255 </para></blockquote>
|
|
2256 </para></listitem>
|
|
2257 </itemizedlist>
|
|
2258 </sect3>
|
|
2259
|
|
2260
|
|
2261 <sect3 id="menc-feat-telecine-encode-mixedpi">
|
|
2262 <title>Mixed progressive and interlaced</title>
|
|
2263
|
|
2264 <para>
|
|
2265 There are two options for dealing with this category, each of
|
|
2266 which is a compromise. You should decide based on the
|
|
2267 duration/location of each type.
|
|
2268 </para>
|
|
2269
|
|
2270 <itemizedlist>
|
|
2271 <listitem>
|
|
2272 <para>
|
|
2273 Treat it as progressive. The interlaced parts will look interlaced,
|
|
2274 and some of the interlaced fields will have to be dropped, resulting
|
|
2275 in a bit of uneven jumpiness. You can use a postprocessing filter if
|
|
2276 you want to, but it may slightly degrade the progressive parts.
|
|
2277 </para>
|
|
2278
|
|
2279 <para>
|
|
2280 This option should definitely not be used if you want to eventually
|
|
2281 display the video on an interlaced device (with a TV card, for
|
|
2282 example). If you have interlaced frames in a 24000/1001 frames per
|
|
2283 second video, they will be telecined along with the progressive
|
|
2284 frames. Half of the interlaced "frames" will be displayed for three
|
|
2285 fields' duration (3/(60000/1001) seconds), resulting in a flicking
|
|
2286 "jump back in time" effect that looks quite bad. If you
|
|
2287 even attempt this, you <emphasis role="bold">must</emphasis> use a
|
|
2288 deinterlacing filter like <option>lb</option> or
|
|
2289 <option>l5</option>.
|
|
2290 </para>
|
|
2291
|
|
2292 <para>
|
|
2293 It may also be a bad idea for progressive display, too. It will drop
|
|
2294 pairs of consecutive interlaced fields, resulting in a discontinuity
|
|
2295 that can be more visible than with the second method, which shows
|
|
2296 some progressive frames twice. 30000/1001 frames per second interlaced
|
|
2297 video is already a bit choppy because it really should be shown at
|
|
2298 60000/1001 fields per second, so the duplicate frames do not stand out as
|
|
2299 much.
|
|
2300 </para>
|
|
2301
|
|
2302 <para>
|
|
2303 Either way, it is best to consider your content and how you intend to
|
|
2304 display it. If your video is 90% progressive and you never intend to
|
|
2305 show it on a TV, you should favor a progressive approach. If it is
|
|
2306 only half progressive, you probably want to encode it as if it is all
|
|
2307 interlaced.
|
|
2308 </para>
|
|
2309 </listitem>
|
|
2310
|
|
2311 <listitem><para>
|
|
2312 Treat it as interlaced. Some frames of the progressive parts will
|
|
2313 need to be duplicated, resulting in uneven jumpiness. Again,
|
|
2314 deinterlacing filters may slightly degrade the progressive parts.
|
|
2315 </para></listitem>
|
|
2316 </itemizedlist>
|
|
2317 </sect3>
|
|
2318 </sect2>
|
|
2319
|
|
2320 <!-- ********** -->
|
|
2321
|
|
2322 <sect2 id="menc-feat-telecine-footnotes">
|
|
2323 <title>Footnotes</title>
|
|
2324
|
|
2325 <orderedlist>
|
|
2326 <listitem>
|
|
2327 <formalpara>
|
|
2328 <title>About cropping:</title>
|
|
2329 <para>
|
|
2330 Video data on DVDs are stored in a format called YUV 4:2:0. In YUV
|
|
2331 video, luma ("brightness") and chroma ("color")
|
|
2332 are stored separately. Because the human eye is somewhat less
|
|
2333 sensitive to color than it is to brightness, in a YUV 4:2:0 picture
|
|
2334 there is only one chroma pixel for every four luma pixels. In a
|
|
2335 progressive picture, each square of four luma pixels (two on each
|
|
2336 side) has one common chroma pixel. You must crop progressive YUV
|
|
2337 4:2:0 to even resolutions, and use even offsets. For example,
|
|
2338 <option>crop=716:380:2:26</option> is OK but
|
|
2339 <option>crop=716:380:3:26 </option> is not.
|
|
2340 </para>
|
|
2341 </formalpara>
|
|
2342
|
|
2343 <para>
|
|
2344 When you are dealing with interlaced YUV 4:2:0, the situation is a
|
|
2345 bit more complicated. Instead of every four luma pixels in the
|
|
2346 <emphasis>frame</emphasis> sharing a chroma pixel, every four luma
|
|
2347 pixels in each <emphasis> field</emphasis> share a chroma
|
|
2348 pixel. When fields are interlaced to form a frame, each scanline is
|
|
2349 one pixel high. Now, instead of all four luma pixels being in a
|
|
2350 square, there are two pixels side-by-side, and the other two pixels
|
|
2351 are side-by-side two scanlines down. The two luma pixels in the
|
|
2352 intermediate scanline are from the other field, and so share a
|
|
2353 different chroma pixel with two luma pixels two scanlines away. All
|
|
2354 this confusion makes it necessary to have vertical crop dimensions
|
|
2355 and offsets be multiples of four. Horizontal can stay even.
|
|
2356 </para>
|
|
2357
|
|
2358 <para>
|
|
2359 For telecined video, I recommend that cropping take place after
|
|
2360 inverse telecining. Once the video is progressive you only need to
|
|
2361 crop by even numbers. If you really want to gain the slight speedup
|
|
2362 that cropping first may offer, you must crop vertically by multiples
|
|
2363 of four or else the inverse-telecine filter will not have proper data.
|
|
2364 </para>
|
|
2365
|
|
2366 <para>
|
|
2367 For interlaced (not telecined) video, you must always crop
|
|
2368 vertically by multiples of four unless you use <option>-vf
|
|
2369 field</option> before cropping.
|
|
2370 </para>
|
|
2371 </listitem>
|
|
2372
|
|
2373 <listitem><formalpara>
|
|
2374 <title>About encoding parameters and quality:</title>
|
|
2375 <para>
|
|
2376 Just because I recommend <option>mbd=2</option> here does not mean it
|
|
2377 should not be used elsewhere. Along with <option>trell</option>,
|
|
2378 <option>mbd=2</option> is one of the two
|
|
2379 <systemitem class="library">libavcodec</systemitem> options that
|
|
2380 increases quality the most, and you should always use at least those
|
|
2381 two unless the drop in encoding speed is prohibitive (e.g. realtime
|
|
2382 encoding). There are many other options to
|
|
2383 <systemitem class="library">libavcodec</systemitem> that increase
|
|
2384 encoding quality (and decrease encoding speed) but that is beyond
|
|
2385 the scope of this document.
|
|
2386 </para>
|
|
2387 </formalpara></listitem>
|
|
2388
|
|
2389 <listitem><formalpara>
|
|
2390 <title>About the performance of pullup:</title>
|
|
2391 <para>
|
|
2392 It is safe to use <option>pullup</option> (along with <option>softskip
|
|
2393 </option>) on progressive video, and is usually a good idea unless
|
|
2394 the source has been definitively verified to be entirely progressive.
|
|
2395 The performace loss is small for most cases. On a bare-minimum encode,
|
|
2396 <option>pullup</option> causes <application>MEncoder</application> to
|
|
2397 be 50% slower. Adding sound processing and advanced <option>lavcopts
|
|
2398 </option> overshadows that difference, bringing the performance
|
|
2399 decrease of using <option>pullup</option> down to 2%.
|
|
2400 </para>
|
|
2401 </formalpara></listitem>
|
|
2402 </orderedlist>
|
|
2403 </sect2>
|
|
2404 </sect1>
|
|
2405
|
|
2406
|
|
2407 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
2408
|
|
2409
|
|
2410 <sect1 id="menc-feat-enc-libavcodec">
|
|
2411 <title>Encoding with the <systemitem class="library">libavcodec</systemitem>
|
|
2412 codec family</title>
|
|
2413
|
|
2414 <para>
|
|
2415 <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
|
|
2416 provides simple encoding to a lot of interesting video and audio formats.
|
|
2417 You can encode to the following codecs (more or less up to date):
|
|
2418 </para>
|
|
2419
|
|
2420 <!-- ********** -->
|
|
2421
|
|
2422 <sect2 id="menc-feat-enc-libavcodec-video-codecs">
|
|
2423 <title><systemitem class="library">libavcodec</systemitem>'s
|
|
2424 video codecs</title>
|
|
2425
|
|
2426 <para>
|
|
2427 <informaltable frame="all">
|
|
2428 <tgroup cols="2">
|
|
2429 <thead>
|
|
2430 <row><entry>Video codec name</entry><entry>Description</entry></row>
|
|
2431 </thead>
|
|
2432 <tbody>
|
|
2433 <row>
|
|
2434 <entry>mjpeg</entry>
|
|
2435 <entry>Motion JPEG</entry>
|
|
2436 </row>
|
|
2437 <row>
|
|
2438 <entry>ljpeg</entry>
|
|
2439 <entry>lossless JPEG</entry>
|
|
2440 </row>
|
|
2441 <row>
|
|
2442 <entry>jpegls</entry>
|
|
2443 <entry>JPEG LS</entry>
|
|
2444 </row>
|
|
2445 <row>
|
|
2446 <entry>targa</entry>
|
|
2447 <entry>Targa image</entry>
|
|
2448 </row>
|
|
2449 <row>
|
|
2450 <entry>gif</entry>
|
|
2451 <entry>GIF image</entry>
|
|
2452 </row>
|
|
2453 <row>
|
|
2454 <entry>bmp</entry>
|
|
2455 <entry>BMP image</entry>
|
|
2456 </row>
|
|
2457 <row>
|
|
2458 <entry>png</entry>
|
|
2459 <entry>PNG image</entry>
|
|
2460 </row>
|
|
2461 <row>
|
|
2462 <entry>h261</entry>
|
|
2463 <entry>H.261</entry>
|
|
2464 </row>
|
|
2465 <row>
|
|
2466 <entry>h263</entry>
|
|
2467 <entry>H.263 </entry>
|
|
2468 </row>
|
|
2469 <row>
|
|
2470 <entry>h263p</entry>
|
|
2471 <entry>H.263+</entry>
|
|
2472 </row>
|
|
2473 <row>
|
|
2474 <entry>mpeg4</entry>
|
|
2475 <entry>ISO standard MPEG-4 (DivX, Xvid compatible)</entry>
|
|
2476 </row>
|
|
2477 <row>
|
|
2478 <entry>msmpeg4</entry>
|
|
2479 <entry>pre-standard MPEG-4 variant by MS, v3 (AKA DivX3)</entry>
|
|
2480 </row>
|
|
2481 <row>
|
|
2482 <entry>msmpeg4v2</entry>
|
|
2483 <entry>pre-standard MPEG-4 by MS, v2 (used in old ASF files)</entry>
|
|
2484 </row>
|
|
2485 <row>
|
|
2486 <entry>wmv1</entry>
|
|
2487 <entry>Windows Media Video, version 1 (AKA WMV7)</entry>
|
|
2488 </row>
|
|
2489 <row>
|
|
2490 <entry>wmv2</entry>
|
|
2491 <entry>Windows Media Video, version 2 (AKA WMV8)</entry>
|
|
2492 </row>
|
|
2493 <row>
|
|
2494 <entry>rv10</entry>
|
|
2495 <entry>RealVideo 1.0</entry>
|
|
2496 </row>
|
|
2497 <row>
|
|
2498 <entry>rv20</entry>
|
|
2499 <entry>RealVideo 2.0</entry>
|
|
2500 </row>
|
|
2501 <row>
|
|
2502 <entry>mpeg1video</entry>
|
|
2503 <entry>MPEG-1 video</entry>
|
|
2504 </row>
|
|
2505 <row>
|
|
2506 <entry>mpeg2video</entry>
|
|
2507 <entry>MPEG-2 video</entry>
|
|
2508 </row>
|
|
2509 <row>
|
|
2510 <entry>huffyuv</entry>
|
|
2511 <entry>lossless compression</entry>
|
|
2512 </row>
|
|
2513 <row>
|
|
2514 <entry>ffvhuff</entry>
|
|
2515 <entry>FFmpeg modified huffyuv lossless</entry>
|
|
2516 </row>
|
|
2517 <row>
|
|
2518 <entry>asv1</entry>
|
|
2519 <entry>ASUS Video v1</entry>
|
|
2520 </row>
|
|
2521 <row>
|
|
2522 <entry>asv2</entry>
|
|
2523 <entry>ASUS Video v2</entry>
|
|
2524 </row>
|
|
2525 <row>
|
|
2526 <entry>ffv1</entry>
|
|
2527 <entry>FFmpeg's lossless video codec</entry>
|
|
2528 </row>
|
|
2529 <row>
|
|
2530 <entry>svq1</entry>
|
|
2531 <entry>Sorenson video 1</entry>
|
|
2532 </row>
|
|
2533 <row>
|
|
2534 <entry>flv</entry>
|
|
2535 <entry>Sorenson H.263 used in Flash Video</entry>
|
|
2536 </row>
|
|
2537 <row>
|
|
2538 <entry>flashsv</entry>
|
|
2539 <entry>Flash Screen Video</entry>
|
|
2540 </row>
|
|
2541 <row>
|
|
2542 <entry>dvvideo</entry>
|
|
2543 <entry>Sony Digital Video</entry>
|
|
2544 </row>
|
|
2545 <row>
|
|
2546 <entry>snow</entry>
|
|
2547 <entry>FFmpeg's experimental wavelet-based codec</entry>
|
|
2548 </row>
|
|
2549 <row>
|
|
2550 <entry>zbmv</entry>
|
|
2551 <entry>Zip Blocks Motion Video</entry>
|
|
2552 </row>
|
|
2553 </tbody>
|
|
2554 </tgroup>
|
|
2555 </informaltable>
|
|
2556
|
|
2557 The first column contains the codec names that should be passed after the
|
|
2558 <literal>vcodec</literal> config,
|
|
2559 like: <option>-lavcopts vcodec=msmpeg4</option>
|
|
2560 </para>
|
|
2561
|
|
2562 <informalexample><para>
|
|
2563 An example with MJPEG compression:
|
|
2564 <screen>
|
|
2565 mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -ovc lavc -lavcopts vcodec=mjpeg -oac copy
|
|
2566 </screen>
|
|
2567 </para></informalexample>
|
|
2568 </sect2>
|
|
2569
|
|
2570 <!-- ********** -->
|
|
2571
|
|
2572 <sect2 id="menc-feat-enc-libavcodec-audio-codecs">
|
|
2573 <title><systemitem class="library">libavcodec</systemitem>'s
|
|
2574 audio codecs</title>
|
|
2575
|
|
2576 <para>
|
|
2577 <informaltable frame="all">
|
|
2578 <tgroup cols="2">
|
|
2579 <thead>
|
|
2580 <row><entry>Audio codec name</entry><entry>Description</entry></row>
|
|
2581 </thead>
|
|
2582 <tbody>
|
|
2583 <row>
|
|
2584 <entry>mp2</entry>
|
|
2585 <entry>MPEG Layer 2</entry>
|
|
2586 </row>
|
|
2587 <row>
|
|
2588 <entry>ac3</entry>
|
|
2589 <entry>AC-3, AKA Dolby Digital</entry>
|
|
2590 </row>
|
|
2591 <row>
|
|
2592 <entry>adpcm_ima_wav</entry>
|
|
2593 <entry>IMA adaptive PCM (4 bits per sample, 4:1 compression)</entry>
|
|
2594 </row>
|
|
2595 <row>
|
|
2596 <entry>sonic</entry>
|
|
2597 <entry>experimental FFmpeg lossy codec</entry>
|
|
2598 </row>
|
|
2599 <row>
|
|
2600 <entry>sonicls</entry>
|
|
2601 <entry>experimental FFmpeg lossless codec</entry>
|
|
2602 </row>
|
|
2603 <row>
|
|
2604 <entry>vorbis</entry>
|
|
2605 <entry>Xiph Ogg Vorbis codec</entry>
|
|
2606 </row>
|
|
2607 <row>
|
|
2608 <entry>wmav1</entry>
|
|
2609 <entry>Windows Media Audio v1 codec</entry>
|
|
2610 </row>
|
|
2611 <row>
|
|
2612 <entry>wmav2</entry>
|
|
2613 <entry>Windows Media Audio v2 codec</entry>
|
|
2614 </row>
|
|
2615 </tbody>
|
|
2616 </tgroup>
|
|
2617 </informaltable>
|
|
2618
|
|
2619 The first column contains the codec names that should be passed after the
|
|
2620 <literal>acodec</literal> option, like: <option>-lavcopts acodec=ac3</option>
|
|
2621 </para>
|
|
2622
|
|
2623 <informalexample><para>
|
|
2624 An example with AC-3 compression:
|
|
2625 <screen>
|
|
2626 mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -oac lavc -lavcopts acodec=ac3 -ovc copy
|
|
2627 </screen>
|
|
2628 </para></informalexample>
|
|
2629
|
|
2630 <para>
|
|
2631 Contrary to <systemitem class="library">libavcodec</systemitem>'s video
|
|
2632 codecs, its audio codecs do not make a wise usage of the bits they are
|
|
2633 given as they lack some minimal psychoacoustic model (if at all)
|
|
2634 which most other codec implementations feature.
|
|
2635 However, note that all these audio codecs are very fast and work
|
|
2636 out-of-the-box everywhere <application>MEncoder</application> has been
|
|
2637 compiled with <systemitem class="library">libavcodec</systemitem> (which
|
|
2638 is the case most of time), and do not depend on external libraries.
|
|
2639 </para>
|
|
2640 </sect2>
|
|
2641
|
|
2642 <!-- ********** -->
|
|
2643
|
|
2644 <sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options">
|
|
2645 <title>Encoding options of libavcodec</title>
|
|
2646
|
|
2647 <para>
|
|
2648 Ideally, you would probably want to be able to just tell the encoder to switch
|
|
2649 into "high quality" mode and move on.
|
|
2650 That would probably be nice, but unfortunately hard to implement as different
|
|
2651 encoding options yield different quality results depending on the source
|
|
2652 material. That is because compression depends on the visual properties of the
|
|
2653 video in question.
|
|
2654 For example, anime and live action have very different properties and
|
|
2655 thus require different options to obtain optimum encoding.
|
|
2656 The good news is that some options should never be left out, like
|
|
2657 <option>mbd=2</option>, <option>trell</option>, and <option>v4mv</option>.
|
|
2658 See below for a detailed description of common encoding options.
|
|
2659 </para>
|
|
2660
|
|
2661 <itemizedlist>
|
|
2662 <title>Options to adjust:</title>
|
|
2663 <listitem><para>
|
|
2664 <emphasis role="bold">vmax_b_frames</emphasis>: 1 or 2 is good, depending on
|
|
2665 the movie.
|
|
2666 Note that if you need to have your encode be decodable by DivX5, you
|
|
2667 need to activate closed GOP support, using
|
|
2668 <systemitem class="library">libavcodec</systemitem>'s <option>cgop</option>
|
|
2669 option, but you need to deactivate scene detection, which
|
|
2670 is not a good idea as it will hurt encode efficiency a bit.
|
|
2671 </para></listitem>
|
|
2672 <listitem><para>
|
|
2673 <emphasis role="bold">vb_strategy=1</emphasis>: helps in high-motion scenes.
|
|
2674 On some videos, vmax_b_frames may hurt quality, but vmax_b_frames=2 along
|
|
2675 with vb_strategy=1 helps.
|
|
2676 </para></listitem>
|
|
2677 <listitem><para>
|
|
2678 <emphasis role="bold">dia</emphasis>: motion search range. Bigger is better
|
|
2679 and slower.
|
|
2680 Negative values are a completely different scale.
|
|
2681 Good values are -1 for a fast encode, or 2-4 for slower.
|
|
2682 </para></listitem>
|
|
2683 <listitem><para>
|
|
2684 <emphasis role="bold">predia</emphasis>: motion search pre-pass.
|
|
2685 Not as important as dia. Good values are 1 (default) to 4. Requires preme=2
|
|
2686 to really be useful.
|
|
2687 </para></listitem>
|
|
2688 <listitem><para>
|
|
2689 <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Comparison function for
|
|
2690 motion estimation.
|
|
2691 Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate
|
|
2692 distortion).
|
|
2693 0 is fastest, and sufficient for precmp.
|
|
2694 For cmp and subcmp, 2 is good for anime, and 3 is good for live action.
|
|
2695 6 may or may not be slightly better, but is slow.
|
|
2696 </para></listitem>
|
|
2697 <listitem><para>
|
|
2698 <emphasis role="bold">last_pred</emphasis>: Number of motion predictors to
|
|
2699 take from the previous frame.
|
|
2700 1-3 or so help at little speed cost.
|
|
2701 Higher values are slow for no extra gain.
|
|
2702 </para></listitem>
|
|
2703 <listitem><para>
|
|
2704 <emphasis role="bold">cbp, mv0</emphasis>: Controls the selection of
|
|
2705 macroblocks. Small speed cost for small quality gain.
|
|
2706 </para></listitem>
|
|
2707 <listitem><para>
|
|
2708 <emphasis role="bold">qprd</emphasis>: adaptive quantization based on the
|
|
2709 macroblock's complexity.
|
|
2710 May help or hurt depending on the video and other options.
|
|
2711 This can cause artifacts unless you set vqmax to some reasonably small value
|
|
2712 (6 is good, maybe as low as 4); vqmin=1 should also help.
|
|
2713 </para></listitem>
|
|
2714 <listitem><para>
|
|
2715 <emphasis role="bold">qns</emphasis>: very slow, especially when combined
|
|
2716 with qprd.
|
|
2717 This option will make the encoder minimize noise due to compression
|
|
2718 artifacts instead of making the encoded video strictly match the source.
|
|
2719 Do not use this unless you have already tweaked everything else as far as it
|
|
2720 will go and the results still are not good enough.
|
|
2721 </para></listitem>
|
|
2722 <listitem><para>
|
|
2723 <emphasis role="bold">vqcomp</emphasis>: Tweak ratecontrol.
|
|
2724 What values are good depends on the movie.
|
|
2725 You can safely leave this alone if you want.
|
|
2726 Reducing vqcomp puts more bits on low-complexity scenes, increasing it puts
|
|
2727 them on high-complexity scenes (default: 0.5, range: 0-1. recommended range:
|
|
2728 0.5-0.7).
|
|
2729 </para></listitem>
|
|
2730 <listitem><para>
|
|
2731 <emphasis role="bold">vlelim, vcelim</emphasis>: Sets the single coefficient
|
|
2732 elimination threshold for luminance and chroma planes.
|
|
2733 These are encoded separately in all MPEG-like algorithms.
|
|
2734 The idea behind these options is to use some good heuristics to determine
|
|
2735 when the change in a block is less than the threshold you specify, and in
|
|
2736 such a case, to just encode the block as "no change".
|
|
2737 This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9
|
|
2738 seem to be good for live movies, but seem not to help with anime;
|
|
2739 when encoding animation, you should probably leave them unchanged.
|
|
2740 </para></listitem>
|
|
2741 <listitem><para>
|
|
2742 <emphasis role="bold">qpel</emphasis>: Quarter pixel motion estimation.
|
|
2743 MPEG-4 uses half pixel precision for its motion search by default,
|
|
2744 therefore this option comes with an overhead as more information will be
|
|
2745 stored in the encoded file.
|
|
2746 The compression gain/loss depends on the movie, but it is usually not very
|
|
2747 effective on anime.
|
|
2748 qpel always incurs a significant cost in CPU decode time (+25% in
|
|
2749 practice).
|
|
2750 </para></listitem>
|
|
2751 <listitem><para>
|
|
2752 <emphasis role="bold">psnr</emphasis>: does not affect the actual encoding,
|
|
2753 but writes a log file giving the type/size/quality of each frame, and
|
|
2754 prints a summary of PSNR (Peak Signal to Noise Ratio) at the end.
|
|
2755 </para></listitem>
|
|
2756 </itemizedlist>
|
|
2757
|
|
2758 <itemizedlist>
|
|
2759 <title>Options not recommended to play with:</title>
|
|
2760 <listitem><para>
|
|
2761 <emphasis role="bold">vme</emphasis>: The default is best.
|
|
2762 </para></listitem>
|
|
2763 <listitem><para>
|
|
2764 <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisual adaptive
|
|
2765 quantization.
|
|
2766 You do not want to play with those options if you care about quality.
|
|
2767 Reasonable values may be effective in your case, but be warned this is very
|
|
2768 subjective.
|
|
2769 </para></listitem>
|
|
2770 <listitem><para>
|
|
2771 <emphasis role="bold">scplx_mask</emphasis>: Tries to prevent blocky
|
|
2772 artifacts, but postprocessing is better.
|
|
2773 </para></listitem>
|
|
2774 </itemizedlist>
|
|
2775 </sect2>
|
|
2776
|
|
2777 <!-- ********** -->
|
|
2778
|
|
2779 <sect2 id="menc-feat-mpeg4-lavc-example-settings">
|
|
2780 <title>Encoding setting examples</title>
|
|
2781
|
|
2782 <para>
|
|
2783 The following settings are examples of different encoding
|
|
2784 option combinations that affect the speed vs quality tradeoff
|
|
2785 at the same target bitrate.
|
|
2786 </para>
|
|
2787
|
|
2788 <para>
|
|
2789 All the encoding settings were tested on a 720x448 @30000/1001 fps
|
|
2790 video sample, the target bitrate was 900kbps, and the machine was an
|
|
2791 AMD-64 3400+ at 2400 MHz in 64 bits mode.
|
|
2792 Each encoding setting features the measured encoding speed (in
|
|
2793 frames per second) and the PSNR loss (in dB) compared to the "very
|
|
2794 high quality" setting.
|
|
2795 Please understand that depending on your source, your machine type
|
|
2796 and development advancements, you may get very different results.
|
|
2797 </para>
|
|
2798
|
|
2799 <para>
|
|
2800 <informaltable frame="all">
|
|
2801 <tgroup cols="4">
|
|
2802 <thead>
|
|
2803 <row>
|
|
2804 <entry>Description</entry>
|
|
2805 <entry>Encoding options</entry>
|
|
2806 <entry>speed (in fps)</entry>
|
|
2807 <entry>Relative PSNR loss (in dB)</entry>
|
|
2808 </row>
|
|
2809 </thead>
|
|
2810 <tbody>
|
|
2811 <row>
|
|
2812 <entry>Very high quality</entry>
|
|
2813 <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry>
|
|
2814 <entry>6fps</entry>
|
|
2815 <entry>0dB</entry>
|
|
2816 </row>
|
|
2817 <row>
|
|
2818 <entry>High quality</entry>
|
|
2819 <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry>
|
|
2820 <entry>15fps</entry>
|
|
2821 <entry>-0.5dB</entry>
|
|
2822 </row>
|
|
2823 <row>
|
|
2824 <entry>Fast</entry>
|
|
2825 <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry>
|
|
2826 <entry>42fps</entry>
|
|
2827 <entry>-0.74dB</entry>
|
|
2828 </row>
|
|
2829 <row>
|
|
2830 <entry>Realtime</entry>
|
|
2831 <entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry>
|
|
2832 <entry>54fps</entry>
|
|
2833 <entry>-1.21dB</entry>
|
|
2834 </row>
|
|
2835 </tbody>
|
|
2836 </tgroup>
|
|
2837 </informaltable>
|
|
2838 </para>
|
|
2839 </sect2>
|
|
2840
|
|
2841 <!-- ********** -->
|
|
2842
|
|
2843 <sect2 id="custommatrices">
|
|
2844 <title>Custom inter/intra matrices</title>
|
|
2845
|
|
2846 <para>
|
|
2847 With this feature of
|
|
2848 <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
|
|
2849 you are able to set custom inter (I-frames/keyframes) and intra
|
|
2850 (P-frames/predicted frames) matrices. It is supported by many of the codecs:
|
|
2851 <systemitem>mpeg1video</systemitem> and <systemitem>mpeg2video</systemitem>
|
|
2852 are reported as working.
|
|
2853 </para>
|
|
2854
|
|
2855 <para>
|
|
2856 A typical usage of this feature is to set the matrices preferred by the
|
|
2857 <ulink url="http://www.kvcd.net/">KVCD</ulink> specifications.
|
|
2858 </para>
|
|
2859
|
|
2860 <para>
|
|
2861 The <emphasis role="bold">KVCD "Notch" Quantization Matrix:</emphasis>
|
|
2862 </para>
|
|
2863
|
|
2864 <para>
|
|
2865 Intra:
|
|
2866 <screen>
|
|
2867 8 9 12 22 26 27 29 34
|
|
2868 9 10 14 26 27 29 34 37
|
|
2869 12 14 18 27 29 34 37 38
|
|
2870 22 26 27 31 36 37 38 40
|
|
2871 26 27 29 36 39 38 40 48
|
|
2872 27 29 34 37 38 40 48 58
|
|
2873 29 34 37 38 40 48 58 69
|
|
2874 34 37 38 40 48 58 69 79
|
|
2875 </screen>
|
|
2876
|
|
2877 Inter:
|
|
2878 <screen>
|
|
2879 16 18 20 22 24 26 28 30
|
|
2880 18 20 22 24 26 28 30 32
|
|
2881 20 22 24 26 28 30 32 34
|
|
2882 22 24 26 30 32 32 34 36
|
|
2883 24 26 28 32 34 34 36 38
|
|
2884 26 28 30 32 34 36 38 40
|
|
2885 28 30 32 34 36 38 42 42
|
|
2886 30 32 34 36 38 40 42 44
|
|
2887 </screen>
|
|
2888 </para>
|
|
2889
|
|
2890 <para>
|
|
2891 Usage:
|
|
2892 <screen>
|
|
2893 mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc \
|
|
2894 -lavcopts inter_matrix=...:intra_matrix=...
|
|
2895 </screen>
|
|
2896 </para>
|
|
2897
|
|
2898 <para>
|
|
2899 <screen>
|
|
2900 mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts \
|
|
2901 vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,\
|
|
2902 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,\
|
|
2903 29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79\
|
|
2904 :inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,\
|
|
2905 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,\
|
|
2906 36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
|
|
2907 </screen>
|
|
2908 </para>
|
|
2909 </sect2>
|
|
2910
|
|
2911 <!-- ********** -->
|
|
2912
|
|
2913 <sect2 id="menc-feat-dvd-mpeg4-example">
|
|
2914 <title>Example</title>
|
|
2915
|
|
2916 <para>
|
|
2917 So, you have just bought your shiny new copy of Harry Potter and the Chamber
|
|
2918 of Secrets (widescreen edition, of course), and you want to rip this DVD
|
|
2919 so that you can add it to your Home Theatre PC. This is a region 1 DVD,
|
|
2920 so it is NTSC. The example below will still apply to PAL, except you will
|
|
2921 omit <option>-ofps 24000/1001</option> (because the output framerate is the
|
|
2922 same as the input framerate), and of course the crop dimensions will be
|
|
2923 different.
|
|
2924 </para>
|
|
2925
|
|
2926 <para>
|
|
2927 After running <option>mplayer dvd://1</option>, we follow the process
|
|
2928 detailed in the section <link linkend="menc-feat-telecine">How to deal
|
|
2929 with telecine and interlacing in NTSC DVDs</link> and discover that it is
|
|
2930 24000/1001 fps progressive video, which means that we need not use an inverse
|
|
2931 telecine filter, such as <option>pullup</option> or
|
|
2932 <option>filmdint</option>.
|
|
2933 </para>
|
|
2934
|
|
2935 <para id="menc-feat-dvd-mpeg4-example-crop">
|
|
2936 Next, we want to determine the appropriate crop rectangle, so we use the
|
|
2937 cropdetect filter:
|
|
2938 <screen>mplayer dvd://1 -vf cropdetect</screen>
|
|
2939 Make sure you seek to a fully filled frame (such as a bright scene,
|
|
2940 past the opening credits and logos), and
|
|
2941 you will see in <application>MPlayer</application>'s console output:
|
|
2942 <screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen>
|
|
2943 We then play the movie back with this filter to test its correctness:
|
|
2944 <screen>mplayer dvd://1 -vf crop=720:362:0:58</screen>
|
|
2945 And we see that it looks perfectly fine. Next, we ensure the width and
|
|
2946 height are a multiple of 16. The width is fine, however the height is
|
|
2947 not. Since we did not fail 7th grade math, we know that the nearest
|
|
2948 multiple of 16 lower than 362 is 352.
|
|
2949 </para>
|
|
2950
|
|
2951 <para>
|
|
2952 We could just use <option>crop=720:352:0:58</option>, but it would be nice
|
|
2953 to take a little off the top and a little off the bottom so that we
|
|
2954 retain the center. We have shrunk the height by 10 pixels, but we do not
|
|
2955 want to increase the y-offset by 5-pixels since that is an odd number and
|
|
2956 will adversely affect quality. Instead, we will increase the y-offset by
|
|
2957 4 pixels:
|
|
2958 <screen>mplayer dvd://1 -vf crop=720:352:0:62</screen>
|
|
2959 Another reason to shave pixels from both the top and the bottom is that we
|
|
2960 ensure we have eliminated any half-black pixels if they exist. Note that if
|
|
2961 your video is telecined, make sure the <option>pullup</option> filter (or
|
|
2962 whichever inverse telecine filter you decide to use) appears in the filter
|
|
2963 chain before you crop. If it is interlaced, deinterlace before cropping.
|
|
2964 (If you choose to preserve the interlaced video, then make sure your
|
|
2965 vertical crop offset is a multiple of 4.)
|
|
2966 </para>
|
|
2967
|
|
2968 <para>
|
|
2969 If you are really concerned about losing those 10 pixels, you might
|
|
2970 prefer instead to scale the dimensions down to the nearest multiple of 16.
|
|
2971 The filter chain would look like:
|
|
2972 <screen>-vf crop=720:362:0:58,scale=720:352</screen>
|
|
2973 Scaling the video down like this will mean that some small amount of
|
|
2974 detail is lost, though it probably will not be perceptible. Scaling up will
|
|
2975 result in lower quality (unless you increase the bitrate). Cropping
|
|
2976 discards those pixels altogether. It is a tradeoff that you will want to
|
|
2977 consider for each circumstance. For example, if the DVD video was made
|
|
2978 for television, you might want to avoid vertical scaling, since the line
|
|
2979 sampling corresponds to the way the content was originally recorded.
|
|
2980 </para>
|
|
2981
|
|
2982 <para>
|
|
2983 On inspection, we see that our movie has a fair bit of action and high
|
|
2984 amounts of detail, so we pick 2400Kbit for our bitrate.
|
|
2985 </para>
|
|
2986
|
|
2987 <para>
|
|
2988 We are now ready to do the two pass encode. Pass one:
|
|
2989 <screen>
|
|
2990 mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
|
|
2991 -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=1 \
|
|
2992 -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
|
|
2993 </screen>
|
|
2994 And pass two is the same, except that we specify <option>vpass=2</option>:
|
|
2995 <screen>
|
|
2996 mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
|
|
2997 -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=2 \
|
|
2998 -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
|
|
2999 </screen>
|
|
3000 </para>
|
|
3001
|
|
3002 <para>
|
|
3003 The options <option>v4mv:mbd=2:trell</option> will greatly increase the
|
|
3004 quality at the expense of encoding time. There is little reason to leave
|
|
3005 these options out when the primary goal is quality. The options
|
|
3006 <option>cmp=3:subcmp=3</option> select a comparison function that
|
|
3007 yields higher quality than the defaults. You might try experimenting with
|
|
3008 this parameter (refer to the man page for the possible values) as
|
|
3009 different functions can have a large impact on quality depending on the
|
|
3010 source material. For example, if you find
|
|
3011 <systemitem class="library">libavcodec</systemitem> produces too much
|
|
3012 blocky artifacting, you could try selecting the experimental NSSE as
|
|
3013 comparison function via <option>*cmp=10</option>.
|
|
3014 </para>
|
|
3015
|
|
3016 <para>
|
|
3017 For this movie, the resulting AVI will be 138 minutes long and nearly
|
|
3018 3GB. And because you said that file size does not matter, this is a
|
|
3019 perfectly acceptable size. However, if you had wanted it smaller, you
|
|
3020 could try a lower bitrate. Increasing bitrates have diminishing
|
|
3021 returns, so while we might clearly see an improvement from 1800Kbit to
|
|
3022 2000Kbit, it might not be so noticeable above 2000Kbit. Feel
|
|
3023 free to experiment until you are happy.
|
|
3024 </para>
|
|
3025
|
|
3026 <para>
|
|
3027 Because we passed the source video through a denoise filter, you may want
|
|
3028 to add some of it back during playback. This, along with the
|
|
3029 <option>spp</option> post-processing filter, drastically improves the
|
|
3030 perception of quality and helps eliminate blocky artifacts in the video.
|
|
3031 With <application>MPlayer</application>'s <option>autoq</option> option,
|
|
3032 you can vary the amount of post-processing done by the spp filter
|
|
3033 depending on available CPU. Also, at this point, you may want to apply
|
|
3034 gamma and/or color correction to best suit your display. For example:
|
|
3035 <screen>
|
|
3036 mplayer <replaceable>Harry_Potter_2.avi</replaceable> -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
|
|
3037 </screen>
|
|
3038 </para>
|
|
3039 </sect2>
|
|
3040 </sect1>
|
|
3041
|
|
3042
|
|
3043 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
3044
|
|
3045
|
|
3046 <sect1 id="menc-feat-xvid">
|
|
3047 <title>Encoding with the <systemitem class="library">Xvid</systemitem>
|
|
3048 codec</title>
|
|
3049
|
|
3050 <para>
|
|
3051 <systemitem class="library">Xvid</systemitem> is a free library for
|
|
3052 encoding MPEG-4 ASP video streams.
|
|
3053 Before starting to encode, you need to <link linkend="xvid">
|
|
3054 set up <application>MEncoder</application> to support it</link>.
|
|
3055 </para>
|
|
3056
|
|
3057 <para>
|
|
3058 This guide mainly aims at featuring the same kind of information
|
|
3059 as x264's encoding guide.
|
|
3060 Therefore, please begin by reading
|
|
3061 <link linkend="menc-feat-x264-encoding-options-intro">the first part</link>
|
|
3062 of that guide.
|
|
3063 </para>
|
|
3064
|
|
3065 <!-- ********** -->
|
|
3066
|
|
3067 <sect2 id="menc-feat-xvid-intro">
|
|
3068 <title>What options should I use to get the best results?</title>
|
|
3069
|
|
3070 <para>
|
|
3071 Please begin by reviewing the
|
|
3072 <systemitem class="library">Xvid</systemitem> section of
|
|
3073 <application>MPlayer</application>'s man page.
|
|
3074 This section is intended to be a supplement to the man page.
|
|
3075 </para>
|
|
3076
|
|
3077 <para>
|
|
3078 The Xvid default settings are already a good tradeoff between
|
|
3079 speed and quality, therefore you can safely stick to them if
|
|
3080 the following section puzzles you.
|
|
3081 </para>
|
|
3082 </sect2>
|
|
3083
|
|
3084 <!-- ********** -->
|
|
3085
|
|
3086 <sect2 id="menc-feat-xvid-encoding-options">
|
|
3087 <title>Encoding options of <systemitem class="library">Xvid</systemitem></title>
|
|
3088
|
|
3089 <itemizedlist>
|
|
3090 <listitem><para>
|
|
3091 <emphasis role="bold">vhq</emphasis>
|
|
3092 This setting affects the macroblock decision algorithm, where the
|
|
3093 higher the setting, the wiser the decision.
|
|
3094 The default setting may be safely used for every encode, while
|
|
3095 higher settings always help PSNR but are significantly slower.
|
|
3096 Please note that a better PSNR does not necessarily mean
|
|
3097 that the picture will look better, but tells you that it is
|
|
3098 closer to the original.
|
|
3099 Turning it off will noticeably speed up encoding; if speed is
|
|
3100 critical for you, the tradeoff may be worth it.
|
|
3101 </para></listitem>
|
|
3102 <listitem><para>
|
|
3103 <emphasis role="bold">bvhq</emphasis>
|
|
3104 This does the same job as vhq, but does it on B-frames.
|
|
3105 It has a negligible impact on speed, and slightly improves quality
|
|
3106 (around +0.1dB PSNR).
|
|
3107 </para></listitem>
|
|
3108 <listitem><para>
|
|
3109 <emphasis role="bold">max_bframes</emphasis>
|
|
3110 A higher number of consecutive allowed B-frames usually improves
|
|
3111 compressibility, although it may also lead to more blocking artifacts.
|
|
3112 The default setting is a good tradeoff between compressibility and
|
|
3113 quality, but you may increase it up to 3 if you are bitrate-starved.
|
|
3114 You may also decrease it to 1 or 0 if you are aiming at perfect
|
|
3115 quality, though in that case you should make sure your
|
|
3116 target bitrate is high enough to ensure that the encoder does not
|
|
3117 have to increase quantizers to reach it.
|
|
3118 </para></listitem>
|
|
3119 <listitem><para>
|
|
3120 <emphasis role="bold">bf_threshold</emphasis>
|
|
3121 This controls the B-frame sensitivity of the encoder, where a higher
|
|
3122 value leads to more B-frames being used (and vice versa).
|
|
3123 This setting is to be used together with <option>max_bframes</option>;
|
|
3124 if you are bitrate-starved, you should increase both
|
|
3125 <option>max_bframes</option> and <option>bf_threshold</option>,
|
|
3126 while you may increase <option>max_bframes</option> and reduce
|
|
3127 <option>bf_threshold</option> so that the encoder may use more
|
|
3128 B-frames in places that only <emphasis role="bold">really</emphasis>
|
|
3129 need them.
|
|
3130 A low number of <option>max_bframes</option> and a high value of
|
|
3131 <option>bf_threshold</option> is probably not a wise choice as it
|
|
3132 will force the encoder to put B-frames in places that would not
|
|
3133 benefit from them, therefore reducing visual quality.
|
|
3134 However, if you need to be compatible with standalone players that
|
|
3135 only support old DivX profiles (which only supports up to 1
|
|
3136 consecutive B-frame), this would be your only way to
|
|
3137 increase compressibility through using B-frames.
|
|
3138 </para></listitem>
|
|
3139 <listitem><para>
|
|
3140 <emphasis role="bold">trellis</emphasis>
|
|
3141 Optimizes the quantization process to get an optimal tradeoff
|
|
3142 between PSNR and bitrate, which allows significant bit saving.
|
|
3143 These bits will in return be spent elsewhere on the video,
|
|
3144 raising overall visual quality.
|
|
3145 You should always leave it on as its impact on quality is huge.
|
|
3146 Even if you are looking for speed, do not disable it until you
|
|
3147 have turned down <option>vhq</option> and all other more
|
|
3148 CPU-hungry options to the minimum.
|
|
3149 </para></listitem>
|
|
3150 <listitem><para>
|
|
3151 <emphasis role="bold">hq_ac</emphasis>
|
|
3152 Activates a better coefficient cost estimation method, which slightly
|
|
3153 reduces filesize by around 0.15 to 0.19% (which corresponds to less
|
|
3154 than 0.01dB PSNR increase), while having a negligible impact on speed.
|
|
3155 It is therefore recommended to always leave it on.
|
|
3156 </para></listitem>
|
|
3157 <listitem><para>
|
|
3158 <emphasis role="bold">cartoon</emphasis>
|
|
3159 Designed to better encode cartoon content, and has no impact on
|
|
3160 speed as it just tunes the mode decision heuristics for this type
|
|
3161 of content.
|
|
3162 </para></listitem>
|
|
3163 <listitem>
|
|
3164 <para>
|
|
3165 <emphasis role="bold">me_quality</emphasis>
|
|
3166 This setting is to control the precision of the motion estimation.
|
|
3167 The higher <option>me_quality</option>, the more
|
|
3168 precise the estimation of the original motion will be, and the
|
|
3169 better the resulting clip will capture the original motion.
|
|
3170 </para>
|
|
3171 <para>
|
|
3172 The default setting is best in all cases;
|
|
3173 thus it is not recommended to turn it down unless you are
|
|
3174 really looking for speed, as all the bits saved by a good motion
|
|
3175 estimation would be spent elsewhere, raising overall quality.
|
|
3176 Therefore, do not go any lower than 5, and even that only as a last
|
|
3177 resort.
|
|
3178 </para>
|
|
3179 </listitem>
|
|
3180 <listitem><para>
|
|
3181 <emphasis role="bold">chroma_me</emphasis>
|
|
3182 Improves motion estimation by also taking the chroma (color)
|
|
3183 information into account, whereas <option>me_quality</option>
|
|
3184 alone only uses luma (grayscale).
|
|
3185 This slows down encoding by 5-10% but improves visual quality
|
|
3186 quite a bit by reducing blocking effects and reduces filesize by
|
|
3187 around 1.3%.
|
|
3188 If you are looking for speed, you should disable this option before
|
|
3189 starting to consider reducing <option>me_quality</option>.
|
|
3190 </para></listitem>
|
|
3191 <listitem><para>
|
|
3192 <emphasis role="bold">chroma_opt</emphasis>
|
|
3193 Is intended to increase chroma image quality around pure
|
|
3194 white/black edges, rather than improving compression.
|
|
3195 This can help to reduce the "red stairs" effect.
|
|
3196 </para></listitem>
|
|
3197 <listitem><para>
|
|
3198 <emphasis role="bold">lumi_mask</emphasis>
|
|
3199 Tries to give less bitrate to part of the picture that the
|
|
3200 human eye cannot see very well, which should allow the encoder
|
|
3201 to spend the saved bits on more important parts of the picture.
|
|
3202 The quality of the encode yielded by this option highly depends
|
|
3203 on personal preferences and on the type and monitor settings
|
|
3204 used to watch it (typically, it will not look as good if it is
|
|
3205 bright or if it is a TFT monitor).
|
|
3206 </para></listitem>
|
|
3207 <listitem>
|
|
3208 <para>
|
|
3209 <emphasis role="bold">qpel</emphasis>
|
|
3210 Raise the number of candidate motion vectors by increasing
|
|
3211 the precision of the motion estimation from halfpel to
|
|
3212 quarterpel.
|
|
3213 The idea is to find better motion vectors which will in return
|
|
3214 reduce bitrate (hence increasing quality).
|
|
3215 However, motion vectors with quarterpel precision require a
|
|
3216 few extra bits to code, but the candidate vectors do not always
|
|
3217 give (much) better results.
|
|
3218 Quite often, the codec still spends bits on the extra precision,
|
|
3219 but little or no extra quality is gained in return.
|
|
3220 Unfortunately, there is no way to foresee the possible gains of
|
|
3221 <option>qpel</option>, so you need to actually encode with and
|
|
3222 without it to know for sure.
|
|
3223 </para>
|
|
3224 <para>
|
|
3225 <option>qpel</option> can be almost double encoding time, and
|
|
3226 requires as much as 25% more processing power to decode.
|
|
3227 It is not supported by all standalone players.
|
|
3228 </para>
|
|
3229 </listitem>
|
|
3230 <listitem><para>
|
|
3231 <emphasis role="bold">gmc</emphasis>
|
|
3232 Tries to save bits on panning scenes by using a single motion
|
|
3233 vector for the whole frame.
|
|
3234 This almost always raises PSNR, but significantly slows down
|
|
3235 encoding (as well as decoding).
|
|
3236 Therefore, you should only use it when you have turned
|
|
3237 <option>vhq</option> to the maximum.
|
|
3238 <systemitem class="library">Xvid</systemitem>'s GMC is more
|
|
3239 sophisticated than DivX's, but is only supported by few
|
|
3240 standalone players.
|
|
3241 </para></listitem>
|
|
3242 </itemizedlist>
|
|
3243 </sect2>
|
|
3244
|
|
3245 <!-- ********** -->
|
|
3246
|
|
3247 <sect2 id="menc-feat-xvid-encoding-profiles">
|
|
3248 <title>Encoding profiles</title>
|
|
3249
|
|
3250 <para>
|
|
3251 Xvid supports encoding profiles through the <option>profile</option> option,
|
|
3252 which are used to impose restrictions on the properties of the Xvid video
|
|
3253 stream such that it will be playable on anything which supports the
|
|
3254 chosen profile.
|
|
3255 The restrictions relate to resolutions, bitrates and certain MPEG-4
|
|
3256 features.
|
|
3257 The following table shows what each profile supports.
|
|
3258 </para>
|
|
3259
|
|
3260 <informaltable>
|
|
3261 <tgroup cols="16" align="center">
|
|
3262 <colspec colnum="1" colname="col1"/>
|
|
3263 <colspec colnum="2" colname="col2"/>
|
|
3264 <colspec colnum="3" colname="col3"/>
|
|
3265 <colspec colnum="4" colname="col4"/>
|
|
3266 <colspec colnum="5" colname="col5"/>
|
|
3267 <colspec colnum="6" colname="col6"/>
|
|
3268 <colspec colnum="7" colname="col7"/>
|
|
3269 <colspec colnum="8" colname="col8"/>
|
|
3270 <colspec colnum="9" colname="col9"/>
|
|
3271 <colspec colnum="10" colname="col10"/>
|
|
3272 <colspec colnum="11" colname="col11"/>
|
|
3273 <colspec colnum="12" colname="col12"/>
|
|
3274 <colspec colnum="13" colname="col13"/>
|
|
3275 <colspec colnum="14" colname="col14"/>
|
|
3276 <colspec colnum="15" colname="col15"/>
|
|
3277 <colspec colnum="16" colname="col16"/>
|
|
3278 <colspec colnum="17" colname="col17"/>
|
|
3279 <spanspec spanname="spa2-5" namest="col2" nameend="col5"/>
|
|
3280 <spanspec spanname="spa6-11" namest="col6" nameend="col11"/>
|
|
3281 <spanspec spanname="spa12-17" namest="col12" nameend="col17"/>
|
|
3282 <tbody>
|
|
3283 <row>
|
|
3284 <entry></entry>
|
|
3285 <entry spanname="spa2-5">Simple</entry>
|
|
3286 <entry spanname="spa6-11">Advanced Simple</entry>
|
|
3287 <entry spanname="spa12-17">DivX</entry>
|
|
3288 </row>
|
|
3289 <row>
|
|
3290 <entry>Profile name</entry>
|
|
3291 <entry>0</entry>
|
|
3292 <entry>1</entry>
|
|
3293 <entry>2</entry>
|
|
3294 <entry>3</entry>
|
|
3295 <entry>0</entry>
|
|
3296 <entry>1</entry>
|
|
3297 <entry>2</entry>
|
|
3298 <entry>3</entry>
|
|
3299 <entry>4</entry>
|
|
3300 <entry>5</entry>
|
|
3301 <entry>Handheld</entry>
|
|
3302 <entry>Portable NTSC</entry>
|
|
3303 <entry>Portable PAL</entry>
|
|
3304 <entry>Home Theater NTSC</entry>
|
|
3305 <entry>Home Theater PAL</entry>
|
|
3306 <entry>HDTV</entry>
|
|
3307 </row>
|
|
3308 <row>
|
|
3309 <entry>Width [pixels]</entry>
|
|
3310 <entry>176</entry>
|
|
3311 <entry>176</entry>
|
|
3312 <entry>352</entry>
|
|
3313 <entry>352</entry>
|
|
3314 <entry>176</entry>
|
|
3315 <entry>176</entry>
|
|
3316 <entry>352</entry>
|
|
3317 <entry>352</entry>
|
|
3318 <entry>352</entry>
|
|
3319 <entry>720</entry>
|
|
3320 <entry>176</entry>
|
|
3321 <entry>352</entry>
|
|
3322 <entry>352</entry>
|
|
3323 <entry>720</entry>
|
|
3324 <entry>720</entry>
|
|
3325 <entry>1280</entry>
|
|
3326 </row>
|
|
3327 <row>
|
|
3328 <entry>Height [pixels]</entry>
|
|
3329 <entry>144</entry>
|
|
3330 <entry>144</entry>
|
|
3331 <entry>288</entry>
|
|
3332 <entry>288</entry>
|
|
3333 <entry>144</entry>
|
|
3334 <entry>144</entry>
|
|
3335 <entry>288</entry>
|
|
3336 <entry>288</entry>
|
|
3337 <entry>576</entry>
|
|
3338 <entry>576</entry>
|
|
3339 <entry>144</entry>
|
|
3340 <entry>240</entry>
|
|
3341 <entry>288</entry>
|
|
3342 <entry>480</entry>
|
|
3343 <entry>576</entry>
|
|
3344 <entry>720</entry>
|
|
3345 </row>
|
|
3346 <row>
|
|
3347 <entry>Frame rate [fps]</entry>
|
|
3348 <entry>15</entry>
|
|
3349 <entry>15</entry>
|
|
3350 <entry>15</entry>
|
|
3351 <entry>15</entry>
|
|
3352 <entry>30</entry>
|
|
3353 <entry>30</entry>
|
|
3354 <entry>15</entry>
|
|
3355 <entry>30</entry>
|
|
3356 <entry>30</entry>
|
|
3357 <entry>30</entry>
|
|
3358 <entry>15</entry>
|
|
3359 <entry>30</entry>
|
|
3360 <entry>25</entry>
|
|
3361 <entry>30</entry>
|
|
3362 <entry>25</entry>
|
|
3363 <entry>30</entry>
|
|
3364 </row>
|
|
3365 <row>
|
|
3366 <entry>Max average bitrate [kbps]</entry>
|
|
3367 <entry>64</entry>
|
|
3368 <entry>64</entry>
|
|
3369 <entry>128</entry>
|
|
3370 <entry>384</entry>
|
|
3371 <entry>128</entry>
|
|
3372 <entry>128</entry>
|
|
3373 <entry>384</entry>
|
|
3374 <entry>768</entry>
|
|
3375 <entry>3000</entry>
|
|
3376 <entry>8000</entry>
|
|
3377 <entry>537.6</entry>
|
|
3378 <entry>4854</entry>
|
|
3379 <entry>4854</entry>
|
|
3380 <entry>4854</entry>
|
|
3381 <entry>4854</entry>
|
|
3382 <entry>9708.4</entry>
|
|
3383 </row>
|
|
3384 <row>
|
|
3385 <entry>Peak average bitrate over 3 secs [kbps]</entry>
|
|
3386 <entry></entry>
|
|
3387 <entry></entry>
|
|
3388 <entry></entry>
|
|
3389 <entry></entry>
|
|
3390 <entry></entry>
|
|
3391 <entry></entry>
|
|
3392 <entry></entry>
|
|
3393 <entry></entry>
|
|
3394 <entry></entry>
|
|
3395 <entry></entry>
|
|
3396 <entry>800</entry>
|
|
3397 <entry>8000</entry>
|
|
3398 <entry>8000</entry>
|
|
3399 <entry>8000</entry>
|
|
3400 <entry>8000</entry>
|
|
3401 <entry>16000</entry>
|
|
3402 </row>
|
|
3403 <row>
|
|
3404 <entry>Max. B-frames</entry>
|
|
3405 <entry>0</entry>
|
|
3406 <entry>0</entry>
|
|
3407 <entry>0</entry>
|
|
3408 <entry>0</entry>
|
|
3409 <entry></entry>
|
|
3410 <entry></entry>
|
|
3411 <entry></entry>
|
|
3412 <entry></entry>
|
|
3413 <entry></entry>
|
|
3414 <entry></entry>
|
|
3415 <entry>0</entry>
|
|
3416 <entry>1</entry>
|
|
3417 <entry>1</entry>
|
|
3418 <entry>1</entry>
|
|
3419 <entry>1</entry>
|
|
3420 <entry>2</entry>
|
|
3421 </row>
|
|
3422 <row>
|
|
3423 <entry>MPEG quantization</entry>
|
|
3424 <entry></entry>
|
|
3425 <entry></entry>
|
|
3426 <entry></entry>
|
|
3427 <entry></entry>
|
|
3428 <entry>X</entry>
|
|
3429 <entry>X</entry>
|
|
3430 <entry>X</entry>
|
|
3431 <entry>X</entry>
|
|
3432 <entry>X</entry>
|
|
3433 <entry>X</entry>
|
|
3434 <entry></entry>
|
|
3435 <entry></entry>
|
|
3436 <entry></entry>
|
|
3437 <entry></entry>
|
|
3438 <entry></entry>
|
|
3439 <entry></entry>
|
|
3440 </row>
|
|
3441 <row>
|
|
3442 <entry>Adaptive quantization</entry>
|
|
3443 <entry></entry>
|
|
3444 <entry></entry>
|
|
3445 <entry></entry>
|
|
3446 <entry></entry>
|
|
3447 <entry>X</entry>
|
|
3448 <entry>X</entry>
|
|
3449 <entry>X</entry>
|
|
3450 <entry>X</entry>
|
|
3451 <entry>X</entry>
|
|
3452 <entry>X</entry>
|
|
3453 <entry>X</entry>
|
|
3454 <entry>X</entry>
|
|
3455 <entry>X</entry>
|
|
3456 <entry>X</entry>
|
|
3457 <entry>X</entry>
|
|
3458 <entry>X</entry>
|
|
3459 </row>
|
|
3460 <row>
|
|
3461 <entry>Interlaced encoding</entry>
|
|
3462 <entry></entry>
|
|
3463 <entry></entry>
|
|
3464 <entry></entry>
|
|
3465 <entry></entry>
|
|
3466 <entry>X</entry>
|
|
3467 <entry>X</entry>
|
|
3468 <entry>X</entry>
|
|
3469 <entry>X</entry>
|
|
3470 <entry>X</entry>
|
|
3471 <entry>X</entry>
|
|
3472 <entry></entry>
|
|
3473 <entry></entry>
|
|
3474 <entry></entry>
|
|
3475 <entry>X</entry>
|
|
3476 <entry>X</entry>
|
|
3477 <entry>X</entry>
|
|
3478 </row>
|
|
3479 <row>
|
|
3480 <entry>Quaterpixel</entry>
|
|
3481 <entry></entry>
|
|
3482 <entry></entry>
|
|
3483 <entry></entry>
|
|
3484 <entry></entry>
|
|
3485 <entry>X</entry>
|
|
3486 <entry>X</entry>
|
|
3487 <entry>X</entry>
|
|
3488 <entry>X</entry>
|
|
3489 <entry>X</entry>
|
|
3490 <entry>X</entry>
|
|
3491 <entry></entry>
|
|
3492 <entry></entry>
|
|
3493 <entry></entry>
|
|
3494 <entry></entry>
|
|
3495 <entry></entry>
|
|
3496 <entry></entry>
|
|
3497 </row>
|
|
3498 <row>
|
|
3499 <entry>Global motion compensation</entry>
|
|
3500 <entry></entry>
|
|
3501 <entry></entry>
|
|
3502 <entry></entry>
|
|
3503 <entry></entry>
|
|
3504 <entry>X</entry>
|
|
3505 <entry>X</entry>
|
|
3506 <entry>X</entry>
|
|
3507 <entry>X</entry>
|
|
3508 <entry>X</entry>
|
|
3509 <entry>X</entry>
|
|
3510 <entry></entry>
|
|
3511 <entry></entry>
|
|
3512 <entry></entry>
|
|
3513 <entry></entry>
|
|
3514 <entry></entry>
|
|
3515 <entry></entry>
|
|
3516 </row>
|
|
3517 </tbody>
|
|
3518 </tgroup>
|
|
3519 </informaltable>
|
|
3520 </sect2>
|
|
3521
|
|
3522 <!-- ********** -->
|
|
3523
|
|
3524 <sect2 id="menc-feat-xvid-example-settings">
|
|
3525 <title>Encoding setting examples</title>
|
|
3526
|
|
3527 <para>
|
|
3528 The following settings are examples of different encoding
|
|
3529 option combinations that affect the speed vs quality tradeoff
|
|
3530 at the same target bitrate.
|
|
3531 </para>
|
|
3532
|
|
3533 <para>
|
|
3534 All the encoding settings were tested on a 720x448 @30000/1001 fps
|
|
3535 video sample, the target bitrate was 900kbps, and the machine was an
|
|
3536 AMD-64 3400+ at 2400 MHz in 64 bits mode.
|
|
3537 Each encoding setting features the measured encoding speed (in
|
|
3538 frames per second) and the PSNR loss (in dB) compared to the "very
|
|
3539 high quality" setting.
|
|
3540 Please understand that depending on your source, your machine type
|
|
3541 and development advancements, you may get very different results.
|
|
3542 </para>
|
|
3543
|
|
3544 <informaltable frame="all">
|
|
3545 <tgroup cols="4">
|
|
3546 <thead>
|
|
3547 <row><entry>Description</entry><entry>Encoding options</entry><entry>speed (in fps)</entry><entry>Relative PSNR loss (in dB)</entry></row>
|
|
3548 </thead>
|
|
3549 <tbody>
|
|
3550 <row>
|
|
3551 <entry>Very high quality</entry>
|
|
3552 <entry><option>chroma_opt:vhq=4:bvhq=1:quant_type=mpeg</option></entry>
|
|
3553 <entry>16fps</entry>
|
|
3554 <entry>0dB</entry>
|
|
3555 </row>
|
|
3556 <row>
|
|
3557 <entry>High quality</entry>
|
|
3558 <entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry>
|
|
3559 <entry>18fps</entry>
|
|
3560 <entry>-0.1dB</entry>
|
|
3561 </row>
|
|
3562 <row>
|
|
3563 <entry>Fast</entry>
|
|
3564 <entry><option>turbo:vhq=0</option></entry>
|
|
3565 <entry>28fps</entry>
|
|
3566 <entry>-0.69dB</entry>
|
|
3567 </row>
|
|
3568 <row>
|
|
3569 <entry>Realtime</entry>
|
|
3570 <entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry>
|
|
3571 <entry>38fps</entry>
|
|
3572 <entry>-1.48dB</entry>
|
|
3573 </row>
|
|
3574 </tbody>
|
|
3575 </tgroup>
|
|
3576 </informaltable>
|
|
3577 </sect2>
|
|
3578 </sect1>
|
|
3579
|
|
3580
|
|
3581 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
3582
|
|
3583
|
|
3584 <sect1 id="menc-feat-x264">
|
|
3585 <title>Encoding with the
|
|
3586 <systemitem class="library">x264</systemitem> codec</title>
|
|
3587
|
|
3588 <para>
|
|
3589 <systemitem class="library">x264</systemitem> is a free library for
|
|
3590 encoding H.264/AVC video streams.
|
|
3591 Before starting to encode, you need to
|
|
3592 <link linkend="codec-x264-encode">set up <application>MEncoder</application> to support it</link>.
|
|
3593 </para>
|
|
3594
|
|
3595 <!-- ********** -->
|
|
3596
|
|
3597 <sect2 id="menc-feat-x264-encoding-options">
|
|
3598 <title>Encoding options of x264</title>
|
|
3599
|
|
3600 <para>
|
|
3601 Please begin by reviewing the
|
|
3602 <systemitem class="library">x264</systemitem> section of
|
|
3603 <application>MPlayer</application>'s man page.
|
|
3604 This section is intended to be a supplement to the man page.
|
|
3605 Here you will find quick hints about which options are most
|
|
3606 likely to interest most people. The man page is more terse,
|
|
3607 but also more exhaustive, and it sometimes offers much better
|
|
3608 technical detail.
|
|
3609 </para>
|
|
3610
|
|
3611
|
|
3612 <sect3 id="menc-feat-x264-encoding-options-intro">
|
|
3613 <title>Introduction</title>
|
|
3614
|
|
3615 <para>
|
|
3616 This guide considers two major categories of encoding options:
|
|
3617 </para>
|
|
3618
|
|
3619 <orderedlist>
|
|
3620 <listitem><para>
|
|
3621 Options which mainly trade off encoding time vs. quality
|
|
3622 </para></listitem>
|
|
3623 <listitem><para>
|
|
3624 Options which may be useful for fulfilling various personal
|
|
3625 preferences and special requirements
|
|
3626 </para></listitem>
|
|
3627 </orderedlist>
|
|
3628
|
|
3629 <para>
|
|
3630 Ultimately, only you can decide which options are best for your
|
|
3631 purposes. The decision for the first class of options is the simplest:
|
|
3632 you only have to decide whether you think the quality differences
|
|
3633 justify the speed differences. For the second class of options,
|
|
3634 preferences may be far more subjective, and more factors may be
|
|
3635 involved. Note that some of the "personal preferences and special
|
|
3636 requirements" options can still have large impacts on speed or quality,
|
|
3637 but that is not what they are primarily useful for. A couple of the
|
|
3638 "personal preference" options may even cause changes that look better
|
|
3639 to some people, but look worse to others.
|
|
3640 </para>
|
|
3641
|
|
3642 <para>
|
|
3643 Before continuing, you need to understand that this guide uses only one
|
|
3644 quality metric: global PSNR.
|
|
3645 For a brief explanation of what PSNR is, see
|
|
3646 <ulink url="http://en.wikipedia.org/wiki/PSNR">the Wikipedia article on PSNR</ulink>.
|
|
3647 Global PSNR is the last PSNR number reported when you include
|
|
3648 the <option>psnr</option> option in <option>x264encopts</option>.
|
|
3649 Any time you read a claim about PSNR, one of the assumptions
|
|
3650 behind the claim is that equal bitrates are used.
|
|
3651 </para>
|
|
3652
|
|
3653 <para>
|
|
3654 Nearly all of this guide's comments assume you are using two pass.
|
|
3655 When comparing options, there are two major reasons for using
|
|
3656 two pass encoding.
|
|
3657 First, using two pass often gains around 1dB PSNR, which is a
|
|
3658 very big difference.
|
|
3659 Secondly, testing options by doing direct quality comparisons
|
|
3660 with one pass encodes introduces a major confounding
|
|
3661 factor: bitrate often varies significantly with each encode.
|
|
3662 It is not always easy to tell whether quality changes are due
|
|
3663 mainly to changed options, or if they mostly reflect essentially
|
|
3664 random differences in the achieved bitrate.
|
|
3665 </para>
|
|
3666 </sect3>
|
|
3667
|
|
3668
|
|
3669 <sect3 id="menc-feat-x264-encoding-options-speedvquality">
|
|
3670 <title>Options which primarily affect speed and quality</title>
|
|
3671
|
|
3672 <itemizedlist>
|
|
3673 <listitem>
|
|
3674 <para>
|
|
3675 <emphasis role="bold">subq</emphasis>:
|
|
3676 Of the options which allow you to trade off speed for quality,
|
|
3677 <option>subq</option> and <option>frameref</option> (see below) are usually
|
|
3678 by far the most important.
|
|
3679 If you are interested in tweaking either speed or quality, these
|
|
3680 are the first options you should consider.
|
|
3681 On the speed dimension, the <option>frameref</option> and
|
|
3682 <option>subq</option> options interact with each other fairly
|
|
3683 strongly.
|
|
3684 Experience shows that, with one reference frame,
|
|
3685 <option>subq=5</option> (the default setting) takes about 35% more time than
|
|
3686 <option>subq=1</option>.
|
|
3687 With 6 reference frames, the penalty grows to over 60%.
|
|
3688 <option>subq</option>'s effect on PSNR seems fairly constant
|
|
3689 regardless of the number of reference frames.
|
|
3690 Typically, <option>subq=5</option> achieves 0.2-0.5 dB higher global
|
|
3691 PSNR in comparison <option>subq=1</option>.
|
|
3692 This is usually enough to be visible.
|
|
3693 </para>
|
|
3694 <para>
|
|
3695 <option>subq=6</option> is slower and yields better quality at a reasonable
|
|
3696 cost.
|
|
3697 In comparison to <option>subq=5</option>, it usually gains 0.1-0.4 dB
|
|
3698 global PSNR with speed costs varying from 25%-100%.
|
|
3699 Unlike other levels of <option>subq</option>, the behavior of
|
|
3700 <option>subq=6</option> does not depend much on <option>frameref</option>
|
|
3701 and <option>me</option>. Instead, the effectiveness of <option>subq=6
|
|
3702 </option> depends mostly upon the number of B-frames used. In normal
|
|
3703 usage, this means <option>subq=6</option> has a large impact on both speed
|
|
3704 and quality in complex, high motion scenes, but it may not have much effect
|
|
3705 in low-motion scenes. Note that it is still recommended to always set
|
|
3706 <option>bframes</option> to something other than zero (see below).
|
|
3707 </para>
|
|
3708 <para>
|
|
3709 <option>subq=7</option> is the slowest, highest quality mode.
|
|
3710 In comparison to <option>subq=6</option>, it usually gains 0.01-0.05 dB
|
|
3711 global PSNR with speed costs varying from 15%-33%.
|
|
3712 Since the tradeoff encoding time vs. quality is quite low, you should
|
|
3713 only use it if you are after every bit saving and if encoding time is
|
|
3714 not an issue.
|
|
3715 </para>
|
|
3716 </listitem>
|
|
3717 <listitem>
|
|
3718 <para>
|
|
3719 <emphasis role="bold">frameref</emphasis>:
|
|
3720 <option>frameref</option> is set to 1 by default, but this
|
|
3721 should not be taken to imply that it is reasonable to set it to 1.
|
|
3722 Merely raising <option>frameref</option> to 2 gains around
|
|
3723 0.15dB PSNR with a 5-10% speed penalty; this seems like a good tradeoff.
|
|
3724 <option>frameref=3</option> gains around 0.25dB PSNR over
|
|
3725 <option>frameref=1</option>, which should be a visible difference.
|
|
3726 <option>frameref=3</option> is around 15% slower than
|
|
3727 <option>frameref=1</option>.
|
|
3728 Unfortunately, diminishing returns set in rapidly.
|
|
3729 <option>frameref=6</option> can be expected to gain only
|
|
3730 0.05-0.1 dB over <option>frameref=3</option> at an additional
|
|
3731 15% speed penalty.
|
|
3732 Above <option>frameref=6</option>, the quality gains are
|
|
3733 usually very small (although you should keep in mind throughout
|
|
3734 this whole discussion that it can vary quite a lot depending on your source).
|
|
3735 In a fairly typical case, <option>frameref=12</option>
|
|
3736 will improve global PSNR by a tiny 0.02dB over
|
|
3737 <option>frameref=6</option>, at a speed cost of 15%-20%.
|
|
3738 At such high <option>frameref</option> values, the only really
|
|
3739 good thing that can be said is that increasing it even further will
|
|
3740 almost certainly never <emphasis role="bold">harm</emphasis>
|
|
3741 PSNR, but the additional quality benefits are barely even
|
|
3742 measurable, let alone perceptible.
|
|
3743 </para>
|
|
3744 <note><title>Note:</title>
|
|
3745 <para>
|
|
3746 Raising <option>frameref</option> to unnecessarily high values
|
|
3747 <emphasis role="bold">can</emphasis> and
|
|
3748 <emphasis role="bold">usually does</emphasis>
|
|
3749 hurt coding efficiency if you turn CABAC off.
|
|
3750 With CABAC on (the default behavior), the possibility of setting
|
|
3751 <option>frameref</option> "too high" currently seems too remote
|
|
3752 to even worry about, and in the future, optimizations may remove
|
|
3753 the possibility altogether.
|
|
3754 </para></note>
|
|
3755 <para>
|
|
3756 If you care about speed, a reasonable compromise is to use low
|
|
3757 <option>subq</option> and <option>frameref</option> values on
|
|
3758 the first pass, and then raise them on the second pass.
|
|
3759 Typically, this has a negligible negative effect on the final
|
|
3760 quality: You will probably lose well under 0.1dB PSNR, which
|
|
3761 should be much too small of a difference to see.
|
|
3762 However, different values of <option>frameref</option> can
|
|
3763 occasionally affect frametype decision.
|
|
3764 Most likely, these are rare outlying cases, but if you want to
|
|
3765 be pretty sure, consider whether your video has either
|
|
3766 fullscreen repetitive flashing patterns or very large temporary
|
|
3767 occlusions which might force an I-frame.
|
|
3768 Adjust the first-pass <option>frameref</option> so it is large
|
|
3769 enough to contain the duration of the flashing cycle (or occlusion).
|
|
3770 For example, if the scene flashes back and forth between two images
|
|
3771 over a duration of three frames, set the first pass
|
|
3772 <option>frameref</option> to 3 or higher.
|
|
3773 This issue is probably extremely rare in live action video material,
|
|
3774 but it does sometimes come up in video game captures.
|
|
3775 </para>
|
|
3776 </listitem>
|
|
3777 <listitem>
|
|
3778 <para>
|
|
3779 <emphasis role="bold">me</emphasis>:
|
|
3780 This option is for choosing the motion estimation search method.
|
|
3781 Altering this option provides a straightforward quality-vs-speed
|
|
3782 tradeoff. <option>me=dia</option> is only a few percent faster than
|
|
3783 the default search, at a cost of under 0.1dB global PSNR. The
|
|
3784 default setting (<option>me=hex</option>) is a reasonable tradeoff
|
|
3785 between speed and quality. <option>me=umh</option> gains a little under
|
|
3786 0.1dB global PSNR, with a speed penalty that varies depending on
|
|
3787 <option>frameref</option>. At high values of
|
|
3788 <option>frameref</option> (e.g. 12 or so), <option>me=umh</option>
|
|
3789 is about 40% slower than the default <option> me=hex</option>. With
|
|
3790 <option>frameref=3</option>, the speed penalty incurred drops to
|
|
3791 25%-30%.
|
|
3792 </para>
|
|
3793 <para>
|
|
3794 <option>me=esa</option> uses an exhaustive search that is too slow for
|
|
3795 practical use.
|
|
3796 </para>
|
|
3797 </listitem>
|
|
3798 <listitem><para>
|
|
3799 <emphasis role="bold">partitions=all</emphasis>:
|
|
3800 This option enables the use of 8x4, 4x8 and 4x4 subpartitions in
|
|
3801 predicted macroblocks (in addition to the default partitions).
|
|
3802 Enabling it results in a fairly consistent
|
|
3803 10%-15% loss of speed. This option is rather useless in source
|
|
3804 containing only low motion, however in some high-motion source,
|
|
3805 particularly source with lots of small moving objects, gains of
|
|
3806 about 0.1dB can be expected.
|
|
3807 </para></listitem>
|
|
3808 <listitem>
|
|
3809 <para>
|
|
3810 <emphasis role="bold">bframes</emphasis>:
|
|
3811 If you are used to encoding with other codecs, you may have found
|
|
3812 that B-frames are not always useful.
|
|
3813 In H.264, this has changed: there are new techniques and block
|
|
3814 types that are possible in B-frames.
|
|
3815 Usually, even a naive B-frame choice algorithm can have a
|
|
3816 significant PSNR benefit.
|
|
3817 It is interesting to note that using B-frames usually speeds up
|
|
3818 the second pass somewhat, and may also speed up a single
|
|
3819 pass encode if adaptive B-frame decision is turned off.
|
|
3820 </para>
|
|
3821 <para>
|
|
3822 With adaptive B-frame decision turned off
|
|
3823 (<option>x264encopts</option>'s <option>nob_adapt</option>),
|
|
3824 the optimal value for this setting is usually no more than
|
|
3825 <option>bframes=1</option>, or else high-motion scenes can suffer.
|
|
3826 With adaptive B-frame decision on (the default behavior), it is
|
|
3827 safe to use higher values; the encoder will reduce the use of
|
|
3828 B-frames in scenes where they would hurt compression.
|
|
3829 The encoder rarely chooses to use more than 3 or 4 B-frames;
|
|
3830 setting this option any higher will have little effect.
|
|
3831 </para>
|
|
3832 </listitem>
|
|
3833 <listitem>
|
|
3834 <para>
|
|
3835 <emphasis role="bold">b_adapt</emphasis>:
|
|
3836 Note: This is on by default.
|
|
3837 </para>
|
|
3838 <para>
|
|
3839 With this option enabled, the encoder will use a reasonably fast
|
|
3840 decision process to reduce the number of B-frames used in scenes that
|
|
3841 might not benefit from them as much.
|
|
3842 You can use <option>b_bias</option> to tweak how B-frame-happy
|
|
3843 the encoder is.
|
|
3844 The speed penalty of adaptive B-frames is currently rather modest,
|
|
3845 but so is the potential quality gain.
|
|
3846 It usually does not hurt, however.
|
|
3847 Note that this only affects speed and frametype decision on the
|
|
3848 first pass.
|
|
3849 <option>b_adapt</option> and <option>b_bias</option> have no
|
|
3850 effect on subsequent passes.
|
|
3851 </para>
|
|
3852 </listitem>
|
|
3853 <listitem><para>
|
|
3854 <emphasis role="bold">b_pyramid</emphasis>:
|
|
3855 You might as well enable this option if you are using >=2 B-frames;
|
|
3856 as the man page says, you get a little quality improvement at no
|
|
3857 speed cost.
|
|
3858 Note that these videos cannot be read by libavcodec-based decoders
|
|
3859 older than about March 5, 2005.
|
|
3860 </para></listitem>
|
|
3861 <listitem>
|
|
3862 <para>
|
|
3863 <emphasis role="bold">weight_b</emphasis>:
|
|
3864 In typical cases, there is not much gain with this option.
|
|
3865 However, in crossfades or fade-to-black scenes, weighted
|
|
3866 prediction gives rather large bitrate savings.
|
|
3867 In MPEG-4 ASP, a fade-to-black is usually best coded as a series
|
|
3868 of expensive I-frames; using weighted prediction in B-frames
|
|
3869 makes it possible to turn at least some of these into much smaller
|
|
3870 B-frames.
|
|
3871 Encoding time cost is minimal, as no extra decisions need to be made.
|
|
3872 Also, contrary to what some people seem to guess, the decoder
|
|
3873 CPU requirements are not much affected by weighted prediction,
|
|
3874 all else being equal.
|
|
3875 </para>
|
|
3876 <para>
|
|
3877 Unfortunately, the current adaptive B-frame decision algorithm
|
|
3878 has a strong tendency to avoid B-frames during fades.
|
|
3879 Until this changes, it may be a good idea to add
|
|
3880 <option>nob_adapt</option> to your x264encopts, if you expect
|
|
3881 fades to have a large effect in your particular video
|
|
3882 clip.
|
|
3883 </para>
|
|
3884 </listitem>
|
|
3885 <listitem id="menc-feat-x264-encoding-options-speedvquality-threads">
|
|
3886 <para>
|
|
3887 <emphasis role="bold">threads</emphasis>:
|
|
3888 This option allows to spawn threads to encode in parallel on multiple CPUs.
|
|
3889 You can manually select the number of threads to be created or, better, set
|
|
3890 <option>threads=auto</option> and let
|
|
3891 <systemitem class="library">x264</systemitem> detect how many CPUs are
|
|
3892 available and pick an appropriate number of threads.
|
|
3893 If you have a multi-processor machine, you should really consider using it
|
|
3894 as it can to increase encoding speed linearly with the number of CPU cores
|
|
3895 (about 94% per CPU core), with very little quality reduction (about 0.005dB
|
|
3896 for dual processor, about 0.01dB for a quad processor machine).
|
|
3897 </para>
|
|
3898 </listitem>
|
|
3899 </itemizedlist>
|
|
3900 </sect3>
|
|
3901
|
|
3902
|
|
3903 <sect3 id="menc-feat-x264-encoding-options-misc-preferences">
|
|
3904 <title>Options pertaining to miscellaneous preferences</title>
|
|
3905
|
|
3906 <itemizedlist>
|
|
3907 <listitem>
|
|
3908 <para>
|
|
3909 <emphasis role="bold">Two pass encoding</emphasis>:
|
|
3910 Above, it was suggested to always use two pass encoding, but there
|
|
3911 are still reasons for not using it. For instance, if you are capturing
|
|
3912 live TV and encoding in realtime, you are forced to use single-pass.
|
|
3913 Also, one pass is obviously faster than two passes; if you use the
|
|
3914 exact same set of options on both passes, two pass encoding is almost
|
|
3915 twice as slow.
|
|
3916 </para>
|
|
3917 <para>
|
|
3918 Still, there are very good reasons for using two pass encoding. For
|
|
3919 one thing, single pass ratecontrol is not psychic, and it often makes
|
|
3920 unreasonable choices because it cannot see the big picture. For example,
|
|
3921 suppose you have a two minute long video consisting of two distinct
|
|
3922 halves. The first half is a very high-motion scene lasting 60 seconds
|
|
3923 which, in isolation, requires about 2500kbps in order to look decent.
|
|
3924 Immediately following it is a much less demanding 60-second scene
|
|
3925 that looks good at 300kbps. Suppose you ask for 1400kbps on the theory
|
|
3926 that this is enough to accomodate both scenes. Single pass ratecontrol
|
|
3927 will make a couple of "mistakes" in such a case. First of all, it
|
|
3928 will target 1400kbps in both segments. The first segment may end up
|
|
3929 heavily overquantized, causing it to look unacceptably and unreasonably
|
|
3930 blocky. The second segment will be heavily underquantized; it may look
|
|
3931 perfect, but the bitrate cost of that perfection will be completely
|
|
3932 unreasonable. What is even harder to avoid is the problem at the
|
|
3933 transition between the two scenes. The first seconds of the low motion
|
|
3934 half will be hugely over-quantized, because the ratecontrol is still
|
|
3935 expecting the kind of bitrate requirements it met in the first half
|
|
3936 of the video. This "error period" of heavily over-quantized low motion
|
|
3937 will look jarringly bad, and will actually use less than the 300kbps
|
|
3938 it would have taken to make it look decent. There are ways to
|
|
3939 mitigate the pitfalls of single-pass encoding, but they may tend to
|
|
3940 increase bitrate misprediction.
|
|
3941 </para>
|
|
3942 <para>
|
|
3943 Multipass ratecontrol can offer huge advantages over a single pass.
|
|
3944 Using the statistics gathered from the first pass encode, the encoder
|
|
3945 can estimate, with reasonable accuracy, the "cost" (in bits) of
|
|
3946 encoding any given frame, at any given quantizer. This allows for
|
|
3947 a much more rational, better planned allocation of bits between the
|
|
3948 expensive (high-motion) and cheap (low-motion) scenes. See
|
|
3949 <option>qcomp</option> below for some ideas on how to tweak this
|
|
3950 allocation to your liking.
|
|
3951 </para>
|
|
3952 <para>
|
|
3953 Moreover, two passes need not take twice as long as one pass. You can
|
|
3954 tweak the options in the first pass for higher speed and lower quality.
|
|
3955 If you choose your options well, you can get a very fast first pass.
|
|
3956 The resulting quality in the second pass will be slightly lower because size
|
|
3957 prediction is less accurate, but the quality difference is normally much
|
|
3958 too small to be visible. Try, for example, adding
|
|
3959 <option>subq=1:frameref=1</option> to the first pass
|
|
3960 <option>x264encopts</option>. Then, on the second pass, use slower,
|
|
3961 higher-quality options:
|
|
3962 <option>subq=6:frameref=15:partitions=all:me=umh</option>
|
|
3963 </para>
|
|
3964 </listitem>
|
|
3965 <listitem><para>
|
|
3966 <emphasis role="bold">Three pass encoding</emphasis>?
|
|
3967 x264 offers the ability to make an arbitrary number of consecutive
|
|
3968 passes. If you specify <option>pass=1</option> on the first pass,
|
|
3969 then use <option>pass=3</option> on a subsequent pass, the subsequent
|
|
3970 pass will both read the statistics from the previous pass, and write
|
|
3971 its own statistics. An additional pass following this one will have
|
|
3972 a very good base from which to make highly accurate predictions of
|
|
3973 framesizes at a chosen quantizer. In practice, the overall quality
|
|
3974 gain from this is usually close to zero, and quite possibly a third
|
|
3975 pass will result in slightly worse global PSNR than the pass before
|
|
3976 it. In typical usage, three passes help if you get either bad bitrate
|
|
3977 prediction or bad looking scene transitions when using only two passes.
|
|
3978 This is somewhat likely to happen on extremely short clips. There are
|
|
3979 also a few special cases in which three (or more) passes are handy
|
|
3980 for advanced users, but for brevity, this guide omits discussing those
|
|
3981 special cases.
|
|
3982 </para></listitem>
|
|
3983 <listitem><para>
|
|
3984 <emphasis role="bold">qcomp</emphasis>:
|
|
3985 <option>qcomp</option> trades off the number of bits allocated
|
|
3986 to "expensive" high-motion versus "cheap" low-motion frames. At
|
|
3987 one extreme, <option>qcomp=0</option> aims for true constant
|
|
3988 bitrate. Typically this would make high-motion scenes look completely
|
|
3989 awful, while low-motion scenes would probably look absolutely
|
|
3990 perfect, but would also use many times more bitrate than they
|
|
3991 would need in order to look merely excellent. At the other extreme,
|
|
3992 <option>qcomp=1</option> achieves nearly constant quantization parameter
|
|
3993 (QP). Constant QP does not look bad, but most people think it is more
|
|
3994 reasonable to shave some bitrate off of the extremely expensive scenes
|
|
3995 (where the loss of quality is not as noticeable) and reallocate it to
|
|
3996 the scenes that are easier to encode at excellent quality.
|
|
3997 <option>qcomp</option> is set to 0.6 by default, which may be slightly
|
|
3998 low for many peoples' taste (0.7-0.8 are also commonly used).
|
|
3999 </para></listitem>
|
|
4000 <listitem><para>
|
|
4001 <emphasis role="bold">keyint</emphasis>:
|
|
4002 <option>keyint</option> is solely for trading off file seekability against
|
|
4003 coding efficiency. By default, <option>keyint</option> is set to 250. In
|
|
4004 25fps material, this guarantees the ability to seek to within 10 seconds
|
|
4005 precision. If you think it would be important and useful to be able to
|
|
4006 seek within 5 seconds of precision, set <option>keyint=125</option>;
|
|
4007 this will hurt quality/bitrate slightly. If you care only about quality
|
|
4008 and not about seekability, you can set it to much higher values
|
|
4009 (understanding that there are diminishing returns which may become
|
|
4010 vanishingly low, or even zero). The video stream will still have seekable
|
|
4011 points as long as there are some scene changes.
|
|
4012 </para></listitem>
|
|
4013 <listitem>
|
|
4014 <para>
|
|
4015 <emphasis role="bold">deblock</emphasis>:
|
|
4016 This topic is going to be a bit controversial.
|
|
4017 </para>
|
|
4018 <para>
|
|
4019 H.264 defines a simple deblocking procedure on I-blocks that uses
|
|
4020 pre-set strengths and thresholds depending on the QP of the block
|
|
4021 in question.
|
|
4022 By default, high QP blocks are filtered heavily, and low QP blocks
|
|
4023 are not deblocked at all.
|
|
4024 The pre-set strengths defined by the standard are well-chosen and
|
|
4025 the odds are very good that they are PSNR-optimal for whatever
|
|
4026 video you are trying to encode.
|
|
4027 The <option>deblock</option> allow you to specify offsets to the preset
|
|
4028 deblocking thresholds.
|
|
4029 </para>
|
|
4030 <para>
|
|
4031 Many people seem to think it is a good idea to lower the deblocking
|
|
4032 filter strength by large amounts (say, -3).
|
|
4033 This is however almost never a good idea, and in most cases,
|
|
4034 people who are doing this do not understand very well how
|
|
4035 deblocking works by default.
|
|
4036 </para>
|
|
4037 <para>
|
|
4038 The first and most important thing to know about the in-loop
|
|
4039 deblocking filter is that the default thresholds are almost always
|
|
4040 PSNR-optimal.
|
|
4041 In the rare cases that they are not optimal, the ideal offset is
|
|
4042 plus or minus 1.
|
|
4043 Adjusting deblocking parameters by a larger amount is almost
|
|
4044 guaranteed to hurt PSNR.
|
|
4045 Strengthening the filter will smear more details; weakening the
|
|
4046 filter will increase the appearance of blockiness.
|
|
4047 </para>
|
|
4048 <para>
|
|
4049 It is definitely a bad idea to lower the deblocking thresholds if
|
|
4050 your source is mainly low in spacial complexity (i.e., not a lot
|
|
4051 of detail or noise).
|
|
4052 The in-loop filter does a rather excellent job of concealing
|
|
4053 the artifacts that occur.
|
|
4054 If the source is high in spacial complexity, however, artifacts
|
|
4055 are less noticeable.
|
|
4056 This is because the ringing tends to look like detail or noise.
|
|
4057 Human visual perception easily notices when detail is removed,
|
|
4058 but it does not so easily notice when the noise is wrongly
|
|
4059 represented.
|
|
4060 When it comes to subjective quality, noise and detail are somewhat
|
|
4061 interchangeable.
|
|
4062 By lowering the deblocking filter strength, you are most likely
|
|
4063 increasing error by adding ringing artifacts, but the eye does
|
|
4064 not notice because it confuses the artifacts with detail.
|
|
4065 </para>
|
|
4066 <para>
|
|
4067 This <emphasis role="bold">still</emphasis> does not justify
|
|
4068 lowering the deblocking filter strength, however.
|
|
4069 You can generally get better quality noise from postprocessing.
|
|
4070 If your H.264 encodes look too blurry or smeared, try playing with
|
|
4071 <option>-vf noise</option> when you play your encoded movie.
|
|
4072 <option>-vf noise=8a:4a</option> should conceal most mild
|
|
4073 artifacting.
|
|
4074 It will almost certainly look better than the results you
|
|
4075 would have gotten just by fiddling with the deblocking filter.
|
|
4076 </para>
|
|
4077 </listitem>
|
|
4078 </itemizedlist>
|
|
4079 </sect3>
|
|
4080 </sect2>
|
|
4081
|
|
4082 <!-- ********** -->
|
|
4083
|
|
4084 <sect2 id="menc-feat-x264-example-settings">
|
|
4085 <title>Encoding setting examples</title>
|
|
4086
|
|
4087 <para>
|
|
4088 The following settings are examples of different encoding
|
|
4089 option combinations that affect the speed vs quality tradeoff
|
|
4090 at the same target bitrate.
|
|
4091 </para>
|
|
4092
|
|
4093 <para>
|
|
4094 All the encoding settings were tested on a 720x448 @30000/1001 fps
|
|
4095 video sample, the target bitrate was 900kbps, and the machine was an
|
|
4096 AMD-64 3400+ at 2400 MHz in 64 bits mode.
|
|
4097 Each encoding setting features the measured encoding speed (in
|
|
4098 frames per second) and the PSNR loss (in dB) compared to the "very
|
|
4099 high quality" setting.
|
|
4100 Please understand that depending on your source, your machine type
|
|
4101 and development advancements, you may get very different results.
|
|
4102 </para>
|
|
4103
|
|
4104 <informaltable frame="all">
|
|
4105 <tgroup cols="4">
|
|
4106 <thead>
|
|
4107 <row>
|
|
4108 <entry>Description</entry>
|
|
4109 <entry>Encoding options</entry>
|
|
4110 <entry>speed (in fps)</entry>
|
|
4111 <entry>Relative PSNR loss (in dB)</entry>
|
|
4112 </row>
|
|
4113 </thead>
|
|
4114 <tbody>
|
|
4115 <row>
|
|
4116 <entry>Very high quality</entry>
|
|
4117 <entry><option>subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b</option></entry>
|
|
4118 <entry>6fps</entry>
|
|
4119 <entry>0dB</entry>
|
|
4120 </row>
|
|
4121 <row>
|
|
4122 <entry>High quality</entry>
|
|
4123 <entry><option>subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b</option></entry>
|
|
4124 <entry>13fps</entry>
|
|
4125 <entry>-0.89dB</entry>
|
|
4126 </row>
|
|
4127 <row>
|
|
4128 <entry>Fast</entry>
|
|
4129 <entry><option>subq=4:bframes=2:b_pyramid:weight_b</option></entry>
|
|
4130 <entry>17fps</entry>
|
|
4131 <entry>-1.48dB</entry>
|
|
4132 </row>
|
|
4133 </tbody>
|
|
4134 </tgroup>
|
|
4135 </informaltable>
|
|
4136 </sect2>
|
|
4137 </sect1>
|
|
4138
|
|
4139
|
|
4140 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
4141
|
|
4142
|
|
4143 <sect1 id="menc-feat-video-for-windows">
|
|
4144 <title>
|
|
4145 Encoding with the <systemitem class="library">Video For Windows</systemitem>
|
|
4146 codec family
|
|
4147 </title>
|
|
4148
|
|
4149 <para>
|
|
4150 Video for Windows provides simple encoding by means of binary video codecs.
|
|
4151 You can encode with the following codecs (if you have more, please tell us!)
|
|
4152 </para>
|
|
4153
|
|
4154 <para>
|
|
4155 Note that support for this is very experimental and some codecs may not work
|
|
4156 correctly. Some codecs will only work in certain colorspaces, try
|
|
4157 <option>-vf format=bgr24</option> and <option>-vf format=yuy2</option>
|
|
4158 if a codec fails or gives wrong output.
|
|
4159 </para>
|
|
4160
|
|
4161 <!-- ********** -->
|
|
4162
|
|
4163 <sect2 id="menc-feat-enc-vfw-video-codecs">
|
|
4164 <title>Video for Windows supported codecs</title>
|
|
4165
|
|
4166 <para>
|
|
4167 <informaltable frame="all">
|
|
4168 <tgroup cols="4">
|
|
4169 <thead>
|
|
4170 <row>
|
|
4171 <entry>Video codec file name</entry>
|
|
4172 <entry>Description (FourCC)</entry>
|
|
4173 <entry>md5sum</entry>
|
|
4174 <entry>Comment</entry>
|
|
4175 </row>
|
|
4176 </thead>
|
|
4177 <tbody>
|
|
4178 <row>
|
|
4179 <entry>aslcodec_vfw.dll</entry>
|
|
4180 <entry>Alparysoft lossless codec vfw (ASLC)</entry>
|
|
4181 <entry>608af234a6ea4d90cdc7246af5f3f29a</entry>
|
|
4182 <entry></entry>
|
|
4183 </row>
|
|
4184 <row>
|
|
4185 <entry>avimszh.dll</entry>
|
|
4186 <entry>AVImszh (MSZH)</entry>
|
|
4187 <entry>253118fe1eedea04a95ed6e5f4c28878</entry>
|
|
4188 <entry>needs <option>-vf format</option></entry>
|
|
4189 </row>
|
|
4190 <row>
|
|
4191 <entry>avizlib.dll</entry>
|
|
4192 <entry>AVIzlib (ZLIB)</entry>
|
|
4193 <entry>2f1cc76bbcf6d77d40d0e23392fa8eda</entry>
|
|
4194 <entry></entry>
|
|
4195 </row>
|
|
4196 <row>
|
|
4197 <entry>divx.dll</entry>
|
|
4198 <entry>DivX4Windows-VFW</entry>
|
|
4199 <entry>acf35b2fc004a89c829531555d73f1e6</entry>
|
|
4200 <entry></entry>
|
|
4201 </row>
|
|
4202 <row>
|
|
4203 <entry>huffyuv.dll</entry>
|
|
4204 <entry>HuffYUV (lossless) (HFYU)</entry>
|
|
4205 <entry>b74695b50230be4a6ef2c4293a58ac3b</entry>
|
|
4206 <entry></entry>
|
|
4207 </row>
|
|
4208 <row>
|
|
4209 <entry>iccvid.dll</entry>
|
|
4210 <entry>Cinepak Video (cvid)</entry>
|
|
4211 <entry>cb3b7ee47ba7dbb3d23d34e274895133</entry>
|
|
4212 <entry></entry>
|
|
4213 </row>
|
|
4214 <row>
|
|
4215 <entry>icmw_32.dll</entry>
|
|
4216 <entry>Motion Wavelets (MWV1)</entry>
|
|
4217 <entry>c9618a8fc73ce219ba918e3e09e227f2</entry>
|
|
4218 <entry></entry>
|
|
4219 </row>
|
|
4220 <row>
|
|
4221 <entry>jp2avi.dll</entry>
|
|
4222 <entry>ImagePower MJPEG2000 (IPJ2)</entry>
|
|
4223 <entry>d860a11766da0d0ea064672c6833768b</entry>
|
|
4224 <entry><option>-vf flip</option></entry>
|
|
4225 </row>
|
|
4226 <row>
|
|
4227 <entry>m3jp2k32.dll</entry>
|
|
4228 <entry>Morgan MJPEG2000 (MJ2C)</entry>
|
|
4229 <entry>f3c174edcbaef7cb947d6357cdfde7ff</entry>
|
|
4230 <entry></entry>
|
|
4231 </row>
|
|
4232 <row>
|
|
4233 <entry>m3jpeg32.dll</entry>
|
|
4234 <entry>Morgan Motion JPEG Codec (MJPG)</entry>
|
|
4235 <entry>1cd13fff5960aa2aae43790242c323b1</entry>
|
|
4236 <entry></entry>
|
|
4237 </row>
|
|
4238 <row>
|
|
4239 <entry>mpg4c32.dll</entry>
|
|
4240 <entry>Microsoft MPEG-4 v1/v2</entry>
|
|
4241 <entry>b5791ea23f33010d37ab8314681f1256</entry>
|
|
4242 <entry></entry>
|
|
4243 </row>
|
|
4244 <row>
|
|
4245 <entry>tsccvid.dll</entry>
|
|
4246 <entry>TechSmith Camtasia Screen Codec (TSCC)</entry>
|
|
4247 <entry>8230d8560c41d444f249802a2700d1d5</entry>
|
|
4248 <entry>shareware error on windows</entry>
|
|
4249 </row>
|
|
4250 <row>
|
|
4251 <entry>vp31vfw.dll</entry>
|
|
4252 <entry>On2 Open Source VP3 Codec (VP31)</entry>
|
|
4253 <entry>845f3590ea489e2e45e876ab107ee7d2</entry>
|
|
4254 <entry></entry>
|
|
4255 </row>
|
|
4256 <row>
|
|
4257 <entry>vp4vfw.dll</entry>
|
|
4258 <entry>On2 VP4 Personal Codec (VP40)</entry>
|
|
4259 <entry>fc5480a482ccc594c2898dcc4188b58f</entry>
|
|
4260 <entry></entry>
|
|
4261 </row>
|
|
4262 <row>
|
|
4263 <entry>vp6vfw.dll</entry>
|
|
4264 <entry>On2 VP6 Personal Codec (VP60)</entry>
|
|
4265 <entry>04d635a364243013898fd09484f913fb</entry>
|
|
4266 <entry></entry>
|
|
4267 </row>
|
|
4268 <row>
|
|
4269 <entry>vp7vfw.dll</entry>
|
|
4270 <entry>On2 VP7 Personal Codec (VP70)</entry>
|
|
4271 <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry>
|
|
4272 <entry>wrong FourCC?</entry>
|
|
4273 </row>
|
|
4274 <row>
|
|
4275 <entry>ViVD2.dll</entry>
|
|
4276 <entry>SoftMedia ViVD V2 codec VfW (GXVE)</entry>
|
|
4277 <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry>
|
|
4278 <entry></entry>
|
|
4279 </row>
|
|
4280 <row>
|
|
4281 <entry>msulvc06.DLL</entry>
|
|
4282 <entry>MSU Lossless codec (MSUD)</entry>
|
|
4283 <entry>294bf9288f2f127bb86f00bfcc9ccdda</entry>
|
|
4284 <entry>
|
|
4285 Decodable by <application>Window Media Player</application>,
|
|
4286 not <application>MPlayer</application> (yet).
|
|
4287 </entry>
|
|
4288 </row>
|
|
4289 <row>
|
|
4290 <entry>camcodec.dll</entry>
|
|
4291 <entry>CamStudio lossless video codec (CSCD)</entry>
|
|
4292 <entry>0efe97ce08bb0e40162ab15ef3b45615</entry>
|
|
4293 <entry>sf.net/projects/camstudio</entry>
|
|
4294 </row>
|
|
4295 </tbody>
|
|
4296 </tgroup>
|
|
4297 </informaltable>
|
|
4298
|
|
4299 The first column contains the codec names that should be passed after the
|
|
4300 <literal>codec</literal> parameter,
|
|
4301 like: <option>-xvfwopts codec=divx.dll</option>
|
|
4302 The FourCC code used by each codec is given in the parentheses.
|
|
4303 </para>
|
|
4304
|
|
4305 <informalexample>
|
|
4306 <para>
|
|
4307 An example to convert an ISO DVD trailer to a VP6 flash video file
|
|
4308 using compdata bitrate settings:
|
|
4309 <screen>
|
|
4310 mencoder -dvd-device <replaceable>zeiram.iso</replaceable> dvd://7 -o <replaceable>trailer.flv</replaceable> \
|
|
4311 -ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \
|
|
4312 -lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \
|
|
4313 -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames
|
|
4314 </screen>
|
|
4315 </para>
|
|
4316 </informalexample>
|
|
4317 </sect2>
|
|
4318
|
|
4319 <sect2 id="menc-feat-video-for-windows-bitrate-settings">
|
|
4320 <title>Using vfw2menc to create a codec settings file.</title>
|
|
4321
|
|
4322 <para>
|
|
4323 To encode with the Video for Windows codecs, you will need to set bitrate
|
|
4324 and other options. This is known to work on x86 on both *NIX and Windows.
|
|
4325 </para>
|
|
4326 <para>
|
|
4327 First you must build the <application>vfw2menc</application> program.
|
|
4328 It is located in the <filename class="directory">TOOLS</filename> subdirectory
|
|
4329 of the MPlayer source tree.
|
|
4330 To build on Linux, this can be done using <application>Wine</application>:
|
|
4331 <screen>winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32</screen>
|
|
4332
|
|
4333 To build on Windows in <application>MinGW</application> or
|
|
4334 <application>Cygwin</application> use:
|
|
4335 <screen>gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32</screen>
|
|
4336
|
|
4337 To build on <application>MSVC</application> you will need getopt.
|
|
4338 Getopt can be found in the original <application>vfw2menc</application>
|
|
4339 archive available at:
|
|
4340 The <ulink url="http://oss.netfarm.it/mplayer-win32.php">MPlayer on win32</ulink> project.
|
|
4341 </para>
|
|
4342 <informalexample>
|
|
4343 <para>
|
|
4344 Below is an example with the VP6 codec.
|
|
4345 <screen>
|
|
4346 vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf
|
|
4347 </screen>
|
|
4348 This will open the VP6 codec dialog window.
|
|
4349 Repeat this step for the second pass
|
|
4350 and use <option>-s <replaceable>secondpass.mcf</replaceable></option>.
|
|
4351 </para>
|
|
4352 </informalexample>
|
|
4353 <para>
|
|
4354 Windows users can use
|
|
4355 <option>-xvfwopts codec=vp6vfw.dll:compdata=dialog</option> to have
|
|
4356 the codec dialog display before encoding starts.
|
|
4357 </para>
|
|
4358 </sect2>
|
|
4359 </sect1>
|
|
4360
|
|
4361
|
|
4362 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
4363
|
|
4364
|
|
4365 <sect1 id="menc-feat-quicktime-7">
|
|
4366 <title>Using <application>MEncoder</application> to create
|
|
4367 <application>QuickTime</application>-compatible files</title>
|
|
4368
|
|
4369
|
|
4370 <sect2 id="menc-feat-quicktime-7-why-use-it">
|
|
4371 <title>Why would one want to produce <application>QuickTime</application>-compatible Files?</title>
|
|
4372
|
|
4373 <para>
|
|
4374 There are several reasons why producing
|
|
4375 <application>QuickTime</application>-compatible files can be desirable.
|
|
4376 </para>
|
|
4377 <itemizedlist>
|
|
4378 <listitem><para>
|
|
4379 You want any computer illiterate to be able to watch your encode on
|
|
4380 any major platform (Windows, Mac OS X, Unices …).
|
|
4381 </para></listitem>
|
|
4382 <listitem><para>
|
|
4383 <application>QuickTime</application> is able to take advantage of more
|
|
4384 hardware and software acceleration features of Mac OS X than
|
|
4385 platform-independent players like <application>MPlayer</application>
|
|
4386 or <application>VLC</application>.
|
|
4387 That means that your encodes have a chance to be played smoothly by older
|
|
4388 G4-powered machines.
|
|
4389 </para></listitem>
|
|
4390 <listitem><para>
|
|
4391 <application>QuickTime</application> 7 supports the next-generation codec H.264,
|
|
4392 which yields significantly better picture quality than previous codec
|
|
4393 generations (MPEG-2, MPEG-4 …).
|
|
4394 </para></listitem>
|
|
4395 </itemizedlist>
|
|
4396 </sect2>
|
|
4397
|
|
4398 <sect2 id="menc-feat-quicktime-7-constraints">
|
|
4399 <title><application>QuickTime</application> 7 limitations</title>
|
|
4400
|
|
4401 <para>
|
|
4402 <application>QuickTime</application> 7 supports H.264 video and AAC audio,
|
|
4403 but it does not support them muxed in the AVI container format.
|
|
4404 However, you can use <application>MEncoder</application> to encode
|
|
4405 the video and audio, and then use an external program such as
|
|
4406 <application>mp4creator</application> (part of the
|
|
4407 <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>)
|
|
4408 to remux the video and audio tracks into an MP4 container.
|
|
4409 </para>
|
|
4410
|
|
4411 <para>
|
|
4412 <application>QuickTime</application>'s support for H.264 is limited,
|
|
4413 so you will need to drop some advanced features.
|
|
4414 If you encode your video with features that
|
|
4415 <application>QuickTime</application> 7 does not support,
|
|
4416 <application>QuickTime</application>-based players will show you a pretty
|
|
4417 white screen instead of your expected video.
|
|
4418 </para>
|
|
4419
|
|
4420 <itemizedlist>
|
|
4421 <listitem><para>
|
|
4422 <emphasis role="bold">B-frames</emphasis>:
|
|
4423 <application>QuickTime</application> 7 supports a maximum of 1 B-frame, i.e.
|
|
4424 <option>-x264encopts bframes=1</option>. This means that
|
|
4425 <option>b_pyramid</option> and <option>weight_b</option> will have no
|
|
4426 effect, since they require <option>bframes</option> to be greater than 1.
|
|
4427 </para></listitem>
|
|
4428 <listitem><para>
|
|
4429 <emphasis role="bold">Macroblocks</emphasis>:
|
|
4430 <application>QuickTime</application> 7 does not support 8x8 DCT macroblocks.
|
|
4431 This option (<option>8x8dct</option>) is off by default, so just be sure
|
|
4432 not to explicitly enable it. This also means that the <option>i8x8</option>
|
|
4433 option will have no effect, since it requires <option>8x8dct</option>.
|
|
4434 </para></listitem>
|
|
4435 <listitem><para>
|
|
4436 <emphasis role="bold">Aspect ratio</emphasis>:
|
|
4437 <application>QuickTime</application> 7 does not support SAR (sample
|
|
4438 aspect ratio) information in MPEG-4 files; it assumes that SAR=1. Read
|
|
4439 <link linkend="menc-feat-quicktime-7-scale">the section on scaling</link>
|
|
4440 for a workaround.
|
|
4441 </para></listitem>
|
|
4442 </itemizedlist>
|
|
4443
|
|
4444 </sect2>
|
|
4445
|
|
4446 <sect2 id="menc-feat-quicktime-7-crop">
|
|
4447 <title>Cropping</title>
|
|
4448 <para>
|
|
4449 Suppose you want to rip your freshly bought copy of "The Chronicles of
|
|
4450 Narnia". Your DVD is region 1,
|
|
4451 which means it is NTSC. The example below would still apply to PAL,
|
|
4452 except you would omit <option>-ofps 24000/1001</option> and use slightly
|
|
4453 different <option>crop</option> and <option>scale</option> dimensions.
|
|
4454 </para>
|
|
4455
|
|
4456 <para>
|
|
4457 After running <option>mplayer dvd://1</option>, you follow the process
|
|
4458 detailed in the section <link linkend="menc-feat-telecine">How to deal
|
|
4459 with telecine and interlacing in NTSC DVDs</link> and discover that it is
|
|
4460 24000/1001 fps progressive video. This simplifies the process somewhat,
|
|
4461 since you do not need to use an inverse telecine filter such as
|
|
4462 <option>pullup</option> or a deinterlacing filter such as
|
|
4463 <option>yadif</option>.
|
|
4464 </para>
|
|
4465
|
|
4466 <para>
|
|
4467 Next, you need to crop out the black bars from the top and bottom of the
|
|
4468 video, as detailed in <link linkend="menc-feat-dvd-mpeg4-example-crop">this</link>
|
|
4469 previous section.
|
|
4470 </para>
|
|
4471
|
|
4472 </sect2>
|
|
4473
|
|
4474 <sect2 id="menc-feat-quicktime-7-scale">
|
|
4475 <title>Scaling</title>
|
|
4476
|
|
4477 <para>
|
|
4478 The next step is truly heartbreaking.
|
|
4479 <application>QuickTime</application> 7 does not support MPEG-4 videos
|
|
4480 with a sample aspect ratio other than 1, so you will need to upscale
|
|
4481 (which wastes a lot of disk space) or downscale (which loses some
|
|
4482 details of the source) the video to square pixels.
|
|
4483 Either way you do it, this is highly inefficient, but simply cannot
|
|
4484 be avoided if you want your video to be playable by
|
|
4485 <application>QuickTime</application> 7.
|
|
4486 <application>MEncoder</application> can apply the appropriate upscaling
|
|
4487 or downscaling by specifying respectively <option>-vf scale=-10:-1</option>
|
|
4488 or <option>-vf scale=-1:-10</option>.
|
|
4489 This will scale your video to the correct width for the cropped height,
|
|
4490 rounded to the closest multiple of 16 for optimal compression.
|
|
4491 Remember that if you are cropping, you should crop first, then scale:
|
|
4492
|
|
4493 <screen>-vf crop=720:352:0:62,scale=-10:-1</screen>
|
|
4494 </para>
|
|
4495
|
|
4496 </sect2>
|
|
4497
|
|
4498 <sect2 id="menc-feat-quicktime-7-avsync">
|
|
4499 <title>A/V sync</title>
|
|
4500
|
|
4501 <para>
|
|
4502 Because you will be remuxing into a different container, you should
|
|
4503 always use the <option>harddup</option> option to ensure that duplicated
|
|
4504 frames are actually duplicated in the video output. Without this option,
|
|
4505 <application>MEncoder</application> will simply put a marker in the video
|
|
4506 stream that a frame was duplicated, and rely on the client software to
|
|
4507 show the same frame twice. Unfortunately, this "soft duplication" does
|
|
4508 not survive remuxing, so the audio would slowly lose sync with the video.
|
|
4509 </para>
|
|
4510
|
|
4511 <para>
|
|
4512 The final filter chain looks like this:
|
|
4513 <screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen>
|
|
4514 </para>
|
|
4515
|
|
4516 </sect2>
|
|
4517
|
|
4518 <sect2 id="menc-feat-quicktime-7-bitrate">
|
|
4519 <title>Bitrate</title>
|
|
4520
|
|
4521 <para>
|
|
4522 As always, the selection of bitrate is a matter of the technical properties
|
|
4523 of the source, as explained
|
|
4524 <link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">here</link>, as
|
|
4525 well as a matter of taste.
|
|
4526 This movie has a fair bit of action and lots of detail, but H.264 video
|
|
4527 looks good at much lower bitrates than XviD or other MPEG-4 codecs.
|
|
4528 After much experimentation, the author of this guide chose to encode
|
|
4529 this movie at 900kbps, and thought that it looked very good.
|
|
4530 You may decrease bitrate if you need to save more space, or increase
|
|
4531 it if you need to improve quality.
|
|
4532 </para>
|
|
4533
|
|
4534 </sect2>
|
|
4535
|
|
4536 <sect2 id="menc-feat-quicktime-7-example">
|
|
4537 <title>Encoding example</title>
|
|
4538
|
|
4539 <para>
|
|
4540 You are now ready to encode the video. Since you care about
|
|
4541 quality, of course you will be doing a two-pass encode. To shave off
|
|
4542 some encoding time, you can specify the <option>turbo</option> option
|
|
4543 on the first pass; this reduces <option>subq</option> and
|
|
4544 <option>frameref</option> to 1. To save some disk space, you can
|
|
4545 use the <option>ss</option> option to strip off the first few seconds
|
|
4546 of the video. (I found that this particular movie has 32 seconds of
|
|
4547 credits and logos.) <option>bframes</option> can be 0 or 1.
|
|
4548 The other options are documented in <link
|
|
4549 linkend="menc-feat-x264-encoding-options-speedvquality">Encoding with
|
|
4550 the <systemitem class="library">x264</systemitem> codec</link> and
|
|
4551 the man page.
|
|
4552
|
|
4553 <screen>mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
|
|
4554 -x264encopts pass=1:turbo:bitrate=900:bframes=1:\
|
|
4555 me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
|
|
4556 -vf crop=720:352:0:62,scale=-10:-1,harddup \
|
|
4557 -oac faac -faacopts br=192:mpeg=4:object=1 -channels 2 -srate 48000 \
|
|
4558 -ofps 24000/1001</screen>
|
|
4559
|
|
4560 If you have a multi-processor machine, don't miss the opportunity to
|
|
4561 dramatically speed-up encoding by enabling
|
|
4562 <link linkend="menc-feat-x264-encoding-options-speedvquality-threads">
|
|
4563 <systemitem class="library">x264</systemitem>'s multi-threading mode</link>
|
|
4564 by adding <option>threads=auto</option> to your <option>x264encopts</option>
|
|
4565 command-line.
|
|
4566 </para>
|
|
4567
|
|
4568 <para>
|
|
4569 The second pass is the same, except that you specify the output file
|
|
4570 and set <option>pass=2</option>.
|
|
4571
|
|
4572 <screen>mencoder dvd://1 <emphasis role="bold">-o narnia.avi</emphasis> -ss 32 -ovc x264 \
|
|
4573 -x264encopts <emphasis role="bold">pass=2</emphasis>:turbo:bitrate=900:frameref=5:bframes=1:\
|
|
4574 me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
|
|
4575 -vf crop=720:352:0:62,scale=-10:-1,harddup \
|
|
4576 -oac faac -faacopts br=192:mpeg=4:object=1 -channels 2 -srate 48000 \
|
|
4577 -ofps 24000/1001</screen>
|
|
4578 </para>
|
|
4579
|
|
4580 <para>
|
|
4581 The resulting AVI should play perfectly in
|
|
4582 <application>MPlayer</application>, but of course
|
|
4583 <application>QuickTime</application> can not play it because it does
|
|
4584 not support H.264 muxed in AVI.
|
|
4585 So the next step is to remux the video into an MP4 container.
|
|
4586 </para>
|
|
4587 </sect2>
|
|
4588
|
|
4589 <sect2 id="menc-feat-quicktime-7-remux">
|
|
4590 <title>Remuxing as MP4</title>
|
|
4591
|
|
4592 <para>
|
|
4593 There are several ways to remux AVI files to MP4. You can use
|
|
4594 <application>mp4creator</application>, which is part of the
|
|
4595 <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>.
|
|
4596 </para>
|
|
4597
|
|
4598 <para>
|
|
4599 First, demux the AVI into separate audio and video streams using
|
|
4600 <application>MPlayer</application>.
|
|
4601
|
|
4602 <screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
|
|
4603 mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen>
|
|
4604
|
|
4605 The filenames are important; <application>mp4creator</application>
|
|
4606 requires that AAC audio streams be named <systemitem>.aac</systemitem>
|
|
4607 and H.264 video streams be named <systemitem>.h264</systemitem>.
|
|
4608 </para>
|
|
4609
|
|
4610 <para>
|
|
4611 Now use <application>mp4creator</application> to create a new
|
|
4612 MP4 file out of the audio and video streams.
|
|
4613
|
|
4614 <screen>mp4creator -create=narnia.aac narnia.mp4
|
|
4615 mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4</screen>
|
|
4616
|
|
4617 Unlike the encoding step, you must specify the framerate as a
|
|
4618 decimal (such as 23.976), not a fraction (such as 24000/1001).
|
|
4619 </para>
|
|
4620
|
|
4621 <para>
|
|
4622 This <systemitem>narnia.mp4</systemitem> file should now be playable
|
|
4623 with any <application>QuickTime</application> 7 application, such as
|
|
4624 <application>QuickTime Player</application> or
|
|
4625 <application>iTunes</application>. If you are planning to view the
|
|
4626 video in a web browser with the <application>QuickTime</application>
|
|
4627 plugin, you should also hint the movie so that the
|
|
4628 <application>QuickTime</application> plugin can start playing it
|
|
4629 while it is still downloading. <application>mp4creator</application>
|
|
4630 can create these hint tracks:
|
|
4631
|
|
4632 <screen>mp4creator -hint=1 narnia.mp4
|
|
4633 mp4creator -hint=2 narnia.mp4
|
|
4634 mp4creator -optimize narnia.mp4</screen>
|
|
4635
|
|
4636 You can check the final result to ensure that the hint tracks were
|
|
4637 created successfully:
|
|
4638
|
|
4639 <screen>mp4creator -list narnia.mp4</screen>
|
|
4640
|
|
4641 You should see a list of tracks: 1 audio, 1 video, and 2 hint tracks.
|
|
4642
|
|
4643 <screen>Track Type Info
|
|
4644 1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
|
|
4645 2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
|
|
4646 3 hint Payload mpeg4-generic for track 1
|
|
4647 4 hint Payload H264 for track 2
|
|
4648 </screen>
|
|
4649 </para>
|
|
4650
|
|
4651 </sect2>
|
|
4652
|
|
4653 <sect2 id="menc-feat-quicktime-7-metadata">
|
|
4654 <title>Adding metadata tags</title>
|
|
4655
|
|
4656 <para>
|
|
4657 If you want to add tags to your video that show up in iTunes, you can use
|
|
4658 <ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink>.
|
|
4659
|
|
4660 <screen>AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen>
|
|
4661
|
|
4662 The <option>--metaEnema</option> option removes any existing metadata
|
|
4663 (<application>mp4creator</application> inserts its name in the
|
|
4664 "encoding tool" tag), and <option>--freefree</option> reclaims the
|
|
4665 space from the deleted metadata.
|
|
4666 The <option>--stik</option> option sets the type of video (such as Movie
|
|
4667 or TV Show), which iTunes uses to group related video files.
|
|
4668 The <option>--overWrite</option> option overwrites the original file;
|
|
4669 without it, <application>AtomicParsley</application> creates a new
|
|
4670 auto-named file in the same directory and leaves the original file
|
|
4671 untouched.
|
|
4672 </para>
|
|
4673
|
|
4674 </sect2>
|
|
4675
|
|
4676 </sect1>
|
|
4677
|
|
4678
|
|
4679 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
4680
|
|
4681
|
|
4682 <sect1 id="menc-feat-vcd-dvd">
|
|
4683 <title>Using <application>MEncoder</application>
|
|
4684 to create VCD/SVCD/DVD-compliant files</title>
|
|
4685
|
|
4686 <sect2 id="menc-feat-vcd-dvd-constraints">
|
|
4687 <title>Format Constraints</title>
|
|
4688
|
|
4689 <para>
|
|
4690 <application>MEncoder</application> is capable of creating VCD, SCVD
|
|
4691 and DVD format MPEG files using the
|
|
4692 <systemitem class="library">libavcodec</systemitem> library.
|
|
4693 These files can then be used in conjunction with
|
|
4694 <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>
|
|
4695 or
|
|
4696 <ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink>
|
|
4697 to create discs that will play on a standard set-top player.
|
|
4698 </para>
|
|
4699
|
|
4700 <para>
|
|
4701 The DVD, SVCD, and VCD formats are subject to heavy constraints.
|
|
4702 Only a small selection of encoded picture sizes and aspect ratios are
|
|
4703 available.
|
|
4704 If your movie does not already meet these requirements, you may have
|
|
4705 to scale, crop or add black borders to the picture to make it
|
|
4706 compliant.
|
|
4707 </para>
|
|
4708
|
|
4709
|
|
4710 <sect3 id="menc-feat-vcd-dvd-constraints-resolution">
|
|
4711 <title>Format Constraints</title>
|
|
4712
|
|
4713 <informaltable frame="all">
|
|
4714 <tgroup cols="9">
|
|
4715 <thead>
|
|
4716 <row>
|
|
4717 <entry>Format</entry>
|
|
4718 <entry>Resolution</entry>
|
|
4719 <entry>V. Codec</entry>
|
|
4720 <entry>V. Bitrate</entry>
|
|
4721 <entry>Sample Rate</entry>
|
|
4722 <entry>A. Codec</entry>
|
|
4723 <entry>A. Bitrate</entry>
|
|
4724 <entry>FPS</entry>
|
|
4725 <entry>Aspect</entry>
|
|
4726 </row>
|
|
4727 </thead>
|
|
4728 <tbody>
|
|
4729 <row>
|
|
4730 <entry>NTSC DVD</entry>
|
|
4731 <entry>720x480, 704x480, 352x480, 352x240</entry>
|
|
4732 <entry>MPEG-2</entry>
|
|
4733 <entry>9800 kbps</entry>
|
|
4734 <entry>48000 Hz</entry>
|
|
4735 <entry>AC-3,PCM</entry>
|
|
4736 <entry>1536 kbps (max)</entry>
|
|
4737 <entry>30000/1001, 24000/1001</entry>
|
|
4738 <entry>4:3, 16:9 (only for 720x480)</entry>
|
|
4739 </row>
|
|
4740 <row>
|
|
4741 <entry>NTSC DVD</entry>
|
|
4742 <entry>352x240<footnote id='fn-rare-resolutions'><para>
|
|
4743 These resolutions are rarely used for DVDs because
|
|
4744 they are fairly low quality.</para></footnote></entry>
|
|
4745 <entry>MPEG-1</entry>
|
|
4746 <entry>1856 kbps</entry>
|
|
4747 <entry>48000 Hz</entry>
|
|
4748 <entry>AC-3,PCM</entry>
|
|
4749 <entry>1536 kbps (max)</entry>
|
|
4750 <entry>30000/1001, 24000/1001</entry>
|
|
4751 <entry>4:3, 16:9</entry>
|
|
4752 </row>
|
|
4753 <row>
|
|
4754 <entry>NTSC SVCD</entry>
|
|
4755 <entry>480x480</entry>
|
|
4756 <entry>MPEG-2</entry>
|
|
4757 <entry>2600 kbps</entry>
|
|
4758 <entry>44100 Hz</entry>
|
|
4759 <entry>MP2</entry>
|
|
4760 <entry>384 kbps (max)</entry>
|
|
4761 <entry>30000/1001</entry>
|
|
4762 <entry>4:3</entry>
|
|
4763 </row>
|
|
4764 <row>
|
|
4765 <entry>NTSC VCD</entry>
|
|
4766 <entry>352x240</entry>
|
|
4767 <entry>MPEG-1</entry>
|
|
4768 <entry>1150 kbps</entry>
|
|
4769 <entry>44100 Hz</entry>
|
|
4770 <entry>MP2</entry>
|
|
4771 <entry>224 kbps</entry>
|
|
4772 <entry>24000/1001, 30000/1001</entry>
|
|
4773 <entry>4:3</entry>
|
|
4774 </row>
|
|
4775 <row>
|
|
4776 <entry>PAL DVD</entry>
|
|
4777 <entry>720x576, 704x576, 352x576, 352x288</entry>
|
|
4778 <entry>MPEG-2</entry>
|
|
4779 <entry>9800 kbps</entry>
|
|
4780 <entry>48000 Hz</entry>
|
|
4781 <entry>MP2,AC-3,PCM</entry>
|
|
4782 <entry>1536 kbps (max)</entry>
|
|
4783 <entry>25</entry>
|
|
4784 <entry>4:3, 16:9 (only for 720x576)</entry>
|
|
4785 </row>
|
|
4786 <row>
|
|
4787 <entry>PAL DVD</entry>
|
|
4788 <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry>
|
|
4789 <entry>MPEG-1</entry>
|
|
4790 <entry>1856 kbps</entry>
|
|
4791 <entry>48000 Hz</entry>
|
|
4792 <entry>MP2,AC-3,PCM</entry>
|
|
4793 <entry>1536 kbps (max)</entry>
|
|
4794 <entry>25</entry>
|
|
4795 <entry>4:3, 16:9</entry>
|
|
4796 </row>
|
|
4797 <row>
|
|
4798 <entry>PAL SVCD</entry>
|
|
4799 <entry>480x576</entry>
|
|
4800 <entry>MPEG-2</entry>
|
|
4801 <entry>2600 kbps</entry>
|
|
4802 <entry>44100 Hz</entry>
|
|
4803 <entry>MP2</entry>
|
|
4804 <entry>384 kbps (max)</entry>
|
|
4805 <entry>25</entry>
|
|
4806 <entry>4:3</entry>
|
|
4807 </row>
|
|
4808 <row>
|
|
4809 <entry>PAL VCD</entry>
|
|
4810 <entry>352x288</entry>
|
|
4811 <entry>MPEG-1</entry>
|
|
4812 <entry>1152 kbps</entry>
|
|
4813 <entry>44100 Hz</entry>
|
|
4814 <entry>MP2</entry>
|
|
4815 <entry>224 kbps</entry>
|
|
4816 <entry>25</entry>
|
|
4817 <entry>4:3</entry>
|
|
4818 </row>
|
|
4819 </tbody>
|
|
4820 </tgroup>
|
|
4821 </informaltable>
|
|
4822
|
|
4823 <para>
|
|
4824 If your movie has 2.35:1 aspect (most recent action movies), you will
|
|
4825 have to add black borders or crop the movie down to 16:9 to make a DVD or VCD.
|
|
4826 If you add black borders, try to align them at 16-pixel boundaries in
|
|
4827 order to minimize the impact on encoding performance.
|
|
4828 Thankfully DVD has sufficiently excessive bitrate that you do not have
|
|
4829 to worry too much about encoding efficiency, but SVCD and VCD are
|
|
4830 highly bitrate-starved and require effort to obtain acceptable quality.
|
|
4831 </para>
|
|
4832 </sect3>
|
|
4833
|
|
4834
|
|
4835 <sect3 id="menc-feat-vcd-dvd-constraints-gop">
|
|
4836 <title>GOP Size Constraints</title>
|
|
4837
|
|
4838 <para>
|
|
4839 DVD, VCD, and SVCD also constrain you to relatively low
|
|
4840 GOP (Group of Pictures) sizes.
|
|
4841 For 30 fps material the largest allowed GOP size is 18.
|
|
4842 For 25 or 24 fps, the maximum is 15.
|
|
4843 The GOP size is set using the <option>keyint</option> option.
|
|
4844 </para>
|
|
4845 </sect3>
|
|
4846
|
|
4847
|
|
4848 <sect3 id="menc-feat-vcd-dvd-constraints-bitrate">
|
|
4849 <title>Bitrate Constraints</title>
|
|
4850
|
|
4851 <para>
|
|
4852 VCD video is required to be CBR at 1152 kbps.
|
|
4853 This highly limiting constraint also comes along with an extremly low vbv
|
|
4854 buffer size of 327 kilobits.
|
|
4855 SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less
|
|
4856 restrictive vbv buffer size of 917 kilobits is allowed.
|
|
4857 DVD video bitrates may range anywhere up to 9800 kbps (though typical
|
|
4858 bitrates are about half that), and the vbv buffer size is 1835 kilobits.
|
|
4859 </para>
|
|
4860 </sect3>
|
|
4861 </sect2>
|
|
4862
|
|
4863 <!-- ********** -->
|
|
4864
|
|
4865 <sect2 id="menc-feat-vcd-dvd-output">
|
|
4866 <title>Output Options</title>
|
|
4867
|
|
4868 <para>
|
|
4869 <application>MEncoder</application> has options to control the output
|
|
4870 format.
|
|
4871 Using these options we can instruct it to create the correct type of
|
|
4872 file.
|
|
4873 </para>
|
|
4874
|
|
4875 <para>
|
|
4876 The options for VCD and SVCD are called xvcd and xsvcd, because they
|
|
4877 are extended formats.
|
|
4878 They are not strictly compliant, mainly because the output does not
|
|
4879 contain scan offsets.
|
|
4880 If you need to generate an SVCD image, you should pass the output file to
|
|
4881 <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>.
|
|
4882 </para>
|
|
4883
|
|
4884 <para>
|
|
4885 VCD:
|
|
4886 <screen>-of mpeg -mpegopts format=xvcd</screen>
|
|
4887 </para>
|
|
4888
|
|
4889 <para>
|
|
4890 SVCD:
|
|
4891 <screen>-of mpeg -mpegopts format=xsvcd</screen>
|
|
4892 </para>
|
|
4893
|
|
4894 <para>
|
|
4895 DVD (with timestamps on every frame, if possible):
|
|
4896 <screen>-of mpeg -mpegopts format=dvd:tsaf</screen>
|
|
4897 </para>
|
|
4898
|
|
4899 <para>
|
|
4900 DVD with NTSC Pullup:
|
|
4901 <screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen>
|
|
4902 This allows 24000/1001 fps progressive content to be encoded at 30000/1001
|
|
4903 fps whilst maintaing DVD-compliance.
|
|
4904 </para>
|
|
4905
|
|
4906
|
|
4907 <sect3 id="menc-feat-vcd-dvd-output-aspect">
|
|
4908 <title>Aspect Ratio</title>
|
|
4909
|
|
4910 <para>
|
|
4911 The aspect argument of <option>-lavcopts</option> is used to encode
|
|
4912 the aspect ratio of the file.
|
|
4913 During playback the aspect ratio is used to restore the video to the
|
|
4914 correct size.
|
|
4915 </para>
|
|
4916
|
|
4917 <para>
|
|
4918 16:9 or "Widescreen"
|
|
4919 <screen>-lavcopts aspect=16/9</screen>
|
|
4920 </para>
|
|
4921
|
|
4922 <para>
|
|
4923 4:3 or "Fullscreen"
|
|
4924 <screen>-lavcopts aspect=4/3</screen>
|
|
4925 </para>
|
|
4926
|
|
4927 <para>
|
|
4928 2.35:1 or "Cinemascope" NTSC
|
|
4929 <screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen>
|
|
4930 To calculate the correct scaling size, use the expanded NTSC width of
|
|
4931 854/2.35 = 368
|
|
4932 </para>
|
|
4933
|
|
4934 <para>
|
|
4935 2.35:1 or "Cinemascope" PAL
|
|
4936 <screen>-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9</screen>
|
|
4937 To calculate the correct scaling size, use the expanded PAL width of
|
|
4938 1024/2.35 = 432
|
|
4939 </para>
|
|
4940 </sect3>
|
|
4941
|
|
4942
|
|
4943 <sect3 id="menc-feat-vcd-dvd-a-v-sync">
|
|
4944 <title>Maintaining A/V sync</title>
|
|
4945
|
|
4946 <para>
|
|
4947 In order to maintain audio/video synchronization throughout the encode,
|
|
4948 <application>MEncoder</application> has to drop or duplicate frames.
|
|
4949 This works rather well when muxing into an AVI file, but is almost
|
|
4950 guaranteed to fail to maintain A/V sync with other muxers such as MPEG.
|
|
4951 This is why it is necessary to append the
|
|
4952 <option>harddup</option> video filter at the end of the filter chain
|
|
4953 to avoid this kind of problem.
|
|
4954 You can find more technical information about <option>harddup</option>
|
|
4955 in the section
|
|
4956 <link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Improving muxing and A/V sync reliability</link>
|
|
4957 or in the manual page.
|
|
4958 </para>
|
|
4959 </sect3>
|
|
4960
|
|
4961
|
|
4962 <sect3 id="menc-feat-vcd-dvd-output-srate">
|
|
4963 <title>Sample Rate Conversion</title>
|
|
4964
|
|
4965 <para>
|
|
4966 If the audio sample rate in the original file is not the same as
|
|
4967 required by the target format, sample rate conversion is required.
|
|
4968 This is achieved using the <option>-srate</option> option and
|
|
4969 the <option>-af lavcresample</option> audio filter together.
|
|
4970 </para>
|
|
4971
|
|
4972 <para>
|
|
4973 DVD:
|
|
4974 <screen>-srate 48000 -af lavcresample=48000</screen>
|
|
4975 </para>
|
|
4976
|
|
4977 <para>
|
|
4978 VCD and SVCD:
|
|
4979 <screen>-srate 44100 -af lavcresample=44100</screen>
|
|
4980 </para>
|
|
4981 </sect3>
|
|
4982 </sect2>
|
|
4983
|
|
4984 <!-- ********** -->
|
|
4985
|
|
4986 <sect2 id="menc-feat-vcd-dvd-lavc">
|
|
4987 <title>Using libavcodec for VCD/SVCD/DVD Encoding</title>
|
|
4988
|
|
4989 <sect3 id="menc-feat-vcd-dvd-lavc-intro">
|
|
4990 <title>Introduction</title>
|
|
4991
|
|
4992 <para>
|
|
4993 <systemitem class="library">libavcodec</systemitem> can be used to
|
|
4994 create VCD/SVCD/DVD compliant video by using the appropriate options.
|
|
4995 </para>
|
|
4996 </sect3>
|
|
4997
|
|
4998
|
|
4999 <sect3 id="menc-feat-vcd-dvd-lavc-options">
|
|
5000 <title>lavcopts</title>
|
|
5001
|
|
5002 <para>
|
|
5003 This is a list of fields in <option>-lavcopts</option> that you may
|
|
5004 be required to change in order to make a complaint movie for VCD, SVCD,
|
|
5005 or DVD:
|
|
5006 </para>
|
|
5007
|
|
5008 <itemizedlist>
|
|
5009 <listitem><para>
|
|
5010 <emphasis role="bold">acodec</emphasis>:
|
|
5011 <option>mp2</option> for VCD, SVCD, or PAL DVD;
|
|
5012 <option>ac3</option> is most commonly used for DVD.
|
|
5013 PCM audio may also be used for DVD, but this is mostly a big waste of
|
|
5014 space.
|
|
5015 Note that MP3 audio is not compliant for any of these formats, but
|
|
5016 players often have no problem playing it anyway.
|
|
5017 </para></listitem>
|
|
5018 <listitem><para>
|
|
5019 <emphasis role="bold">abitrate</emphasis>:
|
|
5020 224 for VCD; up to 384 for SVCD; up to 1536 for DVD, but commonly
|
|
5021 used values range from 192 kbps for stereo to 384 kbps for 5.1 channel
|
|
5022 sound.
|
|
5023 </para></listitem>
|
|
5024 <listitem><para>
|
|
5025 <emphasis role="bold">vcodec</emphasis>:
|
|
5026 <option>mpeg1video</option> for VCD;
|
|
5027 <option>mpeg2video</option> for SVCD;
|
|
5028 <option>mpeg2video</option> is usually used for DVD but you may also use
|
|
5029 <option>mpeg1video</option> for CIF resolutions.
|
|
5030 </para></listitem>
|
|
5031 <listitem><para>
|
|
5032 <emphasis role="bold">keyint</emphasis>:
|
|
5033 Used to set the GOP size.
|
|
5034 18 for 30fps material, or 15 for 25/24 fps material.
|
|
5035 Commercial producers seem to prefer keyframe intervals of 12.
|
|
5036 It is possible to make this much larger and still retain compatibility
|
|
5037 with most players.
|
|
5038 A <option>keyint</option> of 25 should never cause any problems.
|
|
5039 </para></listitem>
|
|
5040 <listitem><para>
|
|
5041 <emphasis role="bold">vrc_buf_size</emphasis>:
|
|
5042 327 for VCD, 917 for SVCD, and 1835 for DVD.
|
|
5043 </para></listitem>
|
|
5044 <listitem><para>
|
|
5045 <emphasis role="bold">vrc_minrate</emphasis>:
|
|
5046 1152, for VCD. May be left alone for SVCD and DVD.
|
|
5047 </para></listitem>
|
|
5048 <listitem><para>
|
|
5049 <emphasis role="bold">vrc_maxrate</emphasis>:
|
|
5050 1152 for VCD; 2500 for SVCD; 9800 for DVD.
|
|
5051 For SVCD and DVD, you might wish to use lower values depending on your
|
|
5052 own personal preferences and requirements.
|
|
5053 </para></listitem>
|
|
5054 <listitem><para>
|
|
5055 <emphasis role="bold">vbitrate</emphasis>:
|
|
5056 1152 for VCD;
|
|
5057 up to 2500 for SVCD;
|
|
5058 up to 9800 for DVD.
|
|
5059 For the latter two formats, vbitrate should be set based on personal
|
|
5060 preference.
|
|
5061 For instance, if you insist on fitting 20 or so hours on a DVD, you
|
|
5062 could use vbitrate=400.
|
|
5063 The resulting video quality would probably be quite bad.
|
|
5064 If you are trying to squeeze out the maximum possible quality on a DVD,
|
|
5065 use vbitrate=9800, but be warned that this could constrain you to less
|
|
5066 than an hour of video on a single-layer DVD.
|
|
5067 </para></listitem>
|
|
5068 <listitem><para>
|
|
5069 <emphasis role="bold">vstrict</emphasis>:
|
|
5070 <option>vstrict</option>=0 should be used to create DVDs.
|
|
5071 Without this option, <application>MEncoder</application> creates a
|
|
5072 stream that cannot be correctly decoded by some standalone DVD
|
|
5073 players.
|
|
5074 </para></listitem>
|
|
5075 </itemizedlist>
|
|
5076 </sect3>
|
|
5077
|
|
5078
|
|
5079 <sect3 id="menc-feat-vcd-dvd-lavc-examples">
|
|
5080 <title>Examples</title>
|
|
5081
|
|
5082 <para>
|
|
5083 This is a typical minimum set of <option>-lavcopts</option> for
|
|
5084 encoding video:
|
|
5085 </para>
|
|
5086 <para>
|
|
5087 VCD:
|
|
5088 <screen>
|
|
5089 -lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
|
|
5090 vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
|
|
5091 </screen>
|
|
5092 </para>
|
|
5093
|
|
5094 <para>
|
|
5095 SVCD:
|
|
5096 <screen>
|
|
5097 -lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
|
|
5098 keyint=15:acodec=mp2
|
|
5099 </screen>
|
|
5100 </para>
|
|
5101
|
|
5102 <para>
|
|
5103 DVD:
|
|
5104 <screen>
|
|
5105 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
|
|
5106 keyint=15:vstrict=0:acodec=ac3
|
|
5107 </screen>
|
|
5108 </para>
|
|
5109 </sect3>
|
|
5110
|
|
5111
|
|
5112 <sect3 id="menc-feat-vcd-dvd-lavc-advanced">
|
|
5113 <title>Advanced Options</title>
|
|
5114
|
|
5115 <para>
|
|
5116 For higher quality encoding, you may also wish to add quality-enhancing
|
|
5117 options to lavcopts, such as <option>trell</option>,
|
|
5118 <option>mbd=2</option>, and others.
|
|
5119 Note that <option>qpel</option> and <option>v4mv</option>, while often
|
|
5120 useful with MPEG-4, are not usable with MPEG-1 or MPEG-2.
|
|
5121 Also, if you are trying to make a very high quality DVD encode, it may
|
|
5122 be useful to add <option>dc=10</option> to lavcopts.
|
|
5123 Doing so may help reduce the appearance of blocks in flat-colored areas.
|
|
5124 Putting it all together, this is an example of a set of lavcopts for a
|
|
5125 higher quality DVD:
|
|
5126 </para>
|
|
5127
|
|
5128 <para>
|
|
5129 <screen>
|
|
5130 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
|
|
5131 keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
|
|
5132 vqmin=1:lmin=1:dc=10:vstrict=0
|
|
5133 </screen>
|
|
5134 </para>
|
|
5135 </sect3>
|
|
5136 </sect2>
|
|
5137
|
|
5138 <!-- ********** -->
|
|
5139
|
|
5140 <sect2 id="menc-feat-vcd-dvd-audio">
|
|
5141 <title>Encoding Audio</title>
|
|
5142
|
|
5143 <para>
|
|
5144 VCD and SVCD support MPEG-1 layer II audio, using one of
|
|
5145 <systemitem class="library">toolame</systemitem>,
|
|
5146 <systemitem class="library">twolame</systemitem>,
|
|
5147 or <systemitem class="library">libavcodec</systemitem>'s MP2 encoder.
|
|
5148 The libavcodec MP2 is far from being as good as the other two libraries,
|
|
5149 however it should always be available to use.
|
|
5150 VCD only supports constant bitrate audio (CBR) whereas SVCD supports
|
|
5151 variable bitrate (VBR), too.
|
|
5152 Be careful when using VBR because some bad standalone players might not
|
|
5153 support it too well.
|
|
5154 </para>
|
|
5155
|
|
5156 <para>
|
|
5157 For DVD audio, <systemitem class="library">libavcodec</systemitem>'s
|
|
5158 AC-3 codec is used.
|
|
5159 </para>
|
|
5160
|
|
5161
|
|
5162 <sect3 id="menc-feat-vcd-dvd-audio-toolame">
|
|
5163 <title>toolame</title>
|
|
5164
|
|
5165 <para>
|
|
5166 For VCD and SVCD:
|
|
5167 <screen>-oac toolame -toolameopts br=224</screen>
|
|
5168 </para>
|
|
5169 </sect3>
|
|
5170
|
|
5171
|
|
5172 <sect3 id="menc-feat-vcd-dvd-audio-twolame">
|
|
5173 <title>twolame</title>
|
|
5174
|
|
5175 <para>
|
|
5176 For VCD and SVCD:
|
|
5177 <screen>-oac twolame -twolameopts br=224</screen>
|
|
5178 </para>
|
|
5179 </sect3>
|
|
5180
|
|
5181
|
|
5182 <sect3 id="menc-feat-vcd-dvd-audio-lavc">
|
|
5183 <title>libavcodec</title>
|
|
5184
|
|
5185 <para>
|
|
5186 For DVD with 2 channel sound:
|
|
5187 <screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen>
|
|
5188 </para>
|
|
5189
|
|
5190 <para>
|
|
5191 For DVD with 5.1 channel sound:
|
|
5192 <screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen>
|
|
5193 </para>
|
|
5194
|
|
5195 <para>
|
|
5196 For VCD and SVCD:
|
|
5197 <screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen>
|
|
5198 </para>
|
|
5199 </sect3>
|
|
5200 </sect2>
|
|
5201
|
|
5202 <!-- ********** -->
|
|
5203
|
|
5204 <sect2 id="menc-feat-vcd-dvd-all">
|
|
5205 <title>Putting it all Together</title>
|
|
5206
|
|
5207 <para>
|
|
5208 This section shows some complete commands for creating VCD/SVCD/DVD
|
|
5209 compliant videos.
|
|
5210 </para>
|
|
5211
|
|
5212
|
|
5213 <sect3 id="menc-feat-vcd-dvd-all-pal-dvd">
|
|
5214 <title>PAL DVD</title>
|
|
5215
|
|
5216 <para>
|
|
5217 <screen>
|
|
5218 mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
|
|
5219 -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \
|
|
5220 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
|
|
5221 keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \
|
|
5222 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5223 </screen>
|
|
5224 </para>
|
|
5225 </sect3>
|
|
5226
|
|
5227
|
|
5228 <sect3 id="menc-feat-vcd-dvd-all-ntsc-dvd">
|
|
5229 <title>NTSC DVD</title>
|
|
5230
|
|
5231 <para>
|
|
5232 <screen>
|
|
5233 mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
|
|
5234 -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 \
|
|
5235 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
|
|
5236 keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 \
|
|
5237 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5238 </screen>
|
|
5239 </para>
|
|
5240 </sect3>
|
|
5241
|
|
5242
|
|
5243 <sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy">
|
|
5244 <title>PAL AVI Containing AC-3 Audio to DVD</title>
|
|
5245
|
|
5246 <para>
|
|
5247 If the source already has AC-3 audio, use -oac copy instead of re-encoding it.
|
|
5248 <screen>
|
|
5249 mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
|
|
5250 -vf scale=720:576,harddup -ofps 25 \
|
|
5251 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
|
|
5252 keyint=15:vstrict=0:aspect=16/9 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5253 </screen>
|
|
5254 </para>
|
|
5255 </sect3>
|
|
5256
|
|
5257
|
|
5258 <sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy">
|
|
5259 <title>NTSC AVI Containing AC-3 Audio to DVD</title>
|
|
5260
|
|
5261 <para>
|
|
5262 If the source already has AC-3 audio, and is NTSC @ 24000/1001 fps:
|
|
5263 <screen>
|
|
5264 mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \
|
|
5265 -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\
|
|
5266 vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \
|
|
5267 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5268 </screen>
|
|
5269 </para>
|
|
5270 </sect3>
|
|
5271
|
|
5272
|
|
5273 <sect3 id="menc-feat-vcd-dvd-all-pal-svcd">
|
|
5274 <title>PAL SVCD</title>
|
|
5275
|
|
5276 <para>
|
|
5277 <screen>
|
|
5278 mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
|
|
5279 scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
|
|
5280 vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
|
|
5281 vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \
|
|
5282 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5283 </screen>
|
|
5284 </para>
|
|
5285 </sect3>
|
|
5286
|
|
5287
|
|
5288 <sect3 id="menc-feat-vcd-dvd-all-ntsc-svcd">
|
|
5289 <title>NTSC SVCD</title>
|
|
5290
|
|
5291 <para>
|
|
5292 <screen>
|
|
5293 mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
|
|
5294 scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
|
|
5295 vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
|
|
5296 vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \
|
|
5297 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5298 </screen>
|
|
5299 </para>
|
|
5300 </sect3>
|
|
5301
|
|
5302
|
|
5303 <sect3 id="menc-feat-vcd-dvd-all-pal-vcd">
|
|
5304 <title>PAL VCD</title>
|
|
5305
|
|
5306 <para>
|
|
5307 <screen>
|
|
5308 mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
|
|
5309 scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
|
|
5310 vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:\
|
|
5311 vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \
|
|
5312 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5313 </screen>
|
|
5314 </para>
|
|
5315 </sect3>
|
|
5316
|
|
5317
|
|
5318 <sect3 id="menc-feat-vcd-dvd-all-ntsc-vcd">
|
|
5319 <title>NTSC VCD</title>
|
|
5320
|
|
5321 <para>
|
|
5322 <screen>
|
|
5323 mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
|
|
5324 scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
|
|
5325 vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:\
|
|
5326 vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \
|
|
5327 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
|
|
5328 </screen>
|
|
5329 </para>
|
|
5330 </sect3>
|
|
5331 </sect2>
|
|
5332 </sect1>
|
|
5333 </chapter>
|