summaryrefslogtreecommitdiffstats
path: root/DOCS/it/encoding.html
blob: 74eb3396f868520e809a316e38a12883c684d6e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<HTML>
<!-- Synced with english version 1.87 -->

<HEAD>
<TITLE>Codificare - MEncoder - Movie Encoder per Linux</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>

<BODY>


<H1><A NAME="encoding">7.  Codificare con MEncoder</A></H1>

<P>Per la lista completa delle opzioni disponibili per MEncoder e gli esempi, vedi
  la pagina di man. Per una serie di esempi pratici ed una guida dettagliata
  sull'uso dei parametri di codifica, leggi i
  <A HREF="tech/encoding-tips.txt">consigli per la codifica</A> raccolti da
  varie discussioni avvenute sulla mailing list
  <A HREF="http://mplayerhq.hu/mailman7listinfo/mplayer-users">mplayer-users</A>.
  Cerca negli <A HREF="http://mlayerhq.hu/mailman/mplayer-users">archivi</A>
  le discussioni sui dettagli ed i problemi relativi alla codifica con MEncoder.
</P>

<H3><A NAME="2pass">7.1 Codificare in MPEG-4 ("DivX") in 2 o 3 passaggii</H3>

<P><U><B>codifica a 2 passaggi :</B></U> il nome deriva dal fatto che questo metodo codifica il file <I>due volte</I>.
La prima codifica (<I>passaggio</I> doppiato) crea dei file temporanei (*.log) con una grandezza
di pochi megabyte, non cancellarli ancora (puoi cancellare l' AVI). Nel secondo passaggio, viene creato il
file di output, usando i dati sul bitrate dei file temporanei. Il file risultante avrà una
migliore qualità d'immagine. Se questa è la prima volta che ne senti parlare,
dovresti consultare alcune guide disponibili in rete.</P>

<P>Questo esempio mostra come codificare un DVD in un AVI MPEG-4 ("DivX") a 2
 passaggi. Bisogna dare solo due comandi :<BR>

<CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - rimuovi questo file che può essere rimasto
  da una precedente codifica a 3 passaggi (interferisce col processo attuale)<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc -lavcopts
    vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc -lavcopts
    vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P>

<P><U><B>codifica a 3 passaggi :</B></U> questa è un' estensione della codifica a 2 passaggi,
  dove la codifica audio avviene in un passaggio separato. Questo metodo abilita la
  stima del bitrate video raccomandato per far stare il file risultante in un CD. In più,
  l'audio è codificato solo una volta, diversamente dalla modalità in 2 passaggi. Schema :</P>

<OL>
  <LI>Rimuovi il file temporaneo che va in conflitto:
    <P><CODE>rm frameno.avi</CODE></P></LI>
  <LI>Primo passaggio:
    <P><CODE>mencoder &lt;file/DVD&gt; -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi</CODE></P>
    <P>Sarà creato un file avi di solo audio, contenente SOLO
      il flusso audio richiesto. Non dimenticare <CODE>-lameopts</CODE>, se ne
      hai bisogno. Se stai codificando un filmato lungo, MEncoder da
      i valori di bitrate consigliati per dimensioni di destinazione di 650Mb, 700Mb, e 800Mb,
      dopo la fine di questo passaggio.</P></LI>
  <LI>Secondo passaggio:
    <P><CODE>mencoder &lt;file/DVD&gt; -oac copy
      -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=&lt;bitrate&gt;</CODE></P>
    <P>Questo è il primo passaggio della codifica video.
      Puoi specificare il bitrate video dato da MEncoder alla fine del precedente
      passaggio.</P></LI>
  <LI>Terzo passaggio:
    <P><CODE>mencoder &lt;file/DVD&gt; -oac copy
      -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=&lt;bitrate&gt;</CODE></P>
    <P>Questo è il secondo passaggio della codifica video.
      Specifica lo stesso bitrate del passo precedente a meno che tu sappia
      veramente cosa stai facendo. In questo passaggio, l'audio preso da
      <CODE>frameno.avi</CODE> sarà inserito
      nel file di destinazione.. ed è tutto pronto!</P></LI>
</OL>

<P><B>Esempio di codifica a 3 passaggi :</B></P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - rimuovi questo file,
  che può essere rimasto da una precedente codifica a 3 passaggi (interferisce con quella attuale)<BR>

<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc frameno
  -o frameno.avi -oac mp3lame -lameopts vbr=3<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc
    -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -ovc lavc
    -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P>

<H2><A NAME="rescaling">7.2 Codificare in formato MPEG</A></H2>

<P>MEncoder può creare file in formato MPEG (MPEG-PS). Ciò è probabilmente utile
 solo con il codec <I>mpeg1video<I> di libavcodec, poiché i programmi - tranne
 MPlayer - si aspettano solo video MPEG1 ed audio MPEG1 layer 2 (MP2) nei file
 MPEG.</P>

<P>Questa funzione non è molto utile al momento, oltre ad avere probabilmente
 molti bug, soprattutto perchè al momento MEncoder non può codificare l'audio
 MPEG1 layer 2 (MP2), che tutti gli altri player si aspetano di trovare nei
 file MPEG.</P>

<P>Per modificare il formato d'uscita di MEncoder, usare l'opzione
 <CODE>-of mpeg</CODE>.</P>

<P>Esempio:<BR>
 &nbsp;&nbsp;<CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video
 -oac copy &lt;other options&gt; media.avi -o output.mpg</CODE></P>


<H2><A NAME="rescaling">7.3 Ridimensionare i filmati</A></H2>

<P>Spesso emerge l'esigenza di ridimensionare le immagini del filmato. Le ragioni possono
  essere molte: diminuire la dimensione del file, la larghezza di banda della rete, ecc. Molte persone
  usano il ridimensionamento anche quando convertono DVD o SVCD in AVI DivX. <B>Questo è male.</B>
  Invece di fare così, leggete la sezione <A HREF="#aspect">Conservare
  le proporzioni</A>.</P>

<P>Il processo di ridimensionamento è gestito dal filtro video <I>'scale'</I>:
  <CODE>-vf scale=larghezza:altezza</CODE>. La qualità può essere impostata tramite l'opzione
  <CODE>-sws</CODE>. Se non specificata, <B>MEncoder</B> userà il valore 0 :
  bilineare veloce.</P>

<H5>Utilizzo :</H5>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder input.mpg -ovc lavc -lavcopts
  vcodec=mpeg4 -vf scale=640:480 -oac copy -o
  output.avi</CODE></P>


<H2><A NAME="copying">7.4 Copia da stream</A></H2>

<P><B>MEncoder</B> può gestire i flussi in entrata in due modi : <B>codificandoli</B> o
  <B>copiandoli</B>. Questa sezione tratta la <B>copia</B>.</P>

<P>
<UL>
  <LI><B>Flusso video</B> (opzione <CODE>-ovc copy</CODE>) : si possono fare tante belle cose :)<BR>
  Come, mettere (non convertire!) video FLI o VIVO o MPEG1 in un file AVI !
  Naturalmente solo <B>MPlayer</B> può leggere tali file :) E probabilmente non ha
  alcuna utilità nella vita reale. Seriamente : la copia del flusso video può essere utile per esempio
  quando si vuole codificare solo il flusso audio (come, PCM non compresso
  in MP3).</LI>

  <LI><B>Flusso audio</B> (opzione <CODE>-oac copy</CODE>) : semplice da capire.
  E' possibile prendere un file audio esterno (MP3, AC3, Vorbis) e mixarlo
  nel flusso di output. Usa l'opzione <CODE>-audiofile &lt;filename&gt;</CODE>
  per farlo.</LI>
</UL>
</P>


<H2><A NAME="fixing">7.5 Correggere gli AVI con indice o intervallo malformati</A></H2>

<P>E' semplicissimo. Copiamo semplicemente i flussi audio e video, e
<B>MEncoder</B> genera l'indice. Naturalmente questo non può correggere possibili bug
nei flussi video e/o audio. Corregge anche i file mal intervallati,
così non sarà più necessaria l'opzione <CODE>-ni</CODE> per leggerli.</P>

<P>Comando : <CODE>mencoder -idx input.avi -ovc copy -oac copy -o output.avi</CODE></P>


<H3><A NAME="appending">7.5.1 Unire file AVI</A></H3>

<P>Un utile effetto collaterale della funzione di riparazione dei file AVI è la
 possibilità di usare MEncored per unire 2 (o più) file AVI:</P>

<P>Comando: <CODE>cat 1.avi 3.avi | mencoder -noidx -ovc copy -oac copy -o
 output.avi -</CODE></P>
 
<P><B>Nota:</B>MEncoder si aspetta che <CODE>1.avi</CODE> e <CODE>2.avi</CODE>
 utilizzino gli stessi codec, risoluzione, stream rate, ecc, ed almeno 1.avi
 non deve avere errori. Se necessario, puoi riparare i file prima di unirli,
 come descritto <A HREF="#fixing">sopra</A>.</P>


<H2><A NAME="libavcodec">7.6  Codificare con le famiglia di codec libavcodec</A></H2>

<P><A HREF="codecs.html#libavcodec">Libavcodec</A> fornisce una semplice codifica in
molti interessanti formati video e audio (al momento i suoi codec audio non sono
supportati). Puoi codificare i seguenti codec :</P>

<P>
<UL>
  <LI>mjpeg - Motion JPEG</LI>
  <LI>h263 - H263</LI>
  <LI>h263p - H263 Plus</LI>
  <LI>mpeg4 - ISO standard MPEG-4 (DivX 5, XviD compatibile)</LI>
  <LI>msmpeg4 - variant MPEG-4 pre-standard di MS, v3 (noto anche come DivX3)</LI>
  <LI>msmpeg4v2 - MPEG-4 pre-standard di MS, v2 (usati in vecchi file asf)</LI>
  <LI>wmv1 - Windows Media Video, versione 1 (noto anche come WMV7)</LI>
  <LI>rv10 - un vecchio codec RealVideo</LI>
  <LI>mpeg1video - video MPEG1 :)</LI>
  <LI>huffyuv - compressione lossless (senza perdita di qualità, ndt)</LI>
</UL>
</P>

<P>La prima colonna contiene i nomi dei codec che devono essere passati dopo l'opzione
  <CODE>vcodec</CODE>, come : <CODE>-lavcopts vcodec=msmpeg4</CODE></P>

<P>Un esempio, con la compressione MJPEG :<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder dvd://2 -o title2.avi -ovc lavc 
  -lavcopts vcodec=mjpeg -oac copy</CODE></P>


<H2><A NAME="image_files">7.7  Codificare da file di immagine multipli (JPEG, PNG o TGA)</A></H2>

<P><B>MEncoder</B> è in grado di creare filmati a partire da uno o più file JPEG, PNG o TGA.
  Con un semplice framecopy può creare file MJPEG (Motion JPEG) o MPNG
  (Motion PNG).</P>

<P><B><I>Spiegazione del processo</I></B></P>

<P><B>MEncoder</B> <I>decodifica</I> le immagini in input con un codec video MJPEG
  disponibile (per i PNG, usa <B>libpng</B>).
</P>

<P><B>MEncoder</B> quindi passa l' immagine decodificata al compressore video scelto
  (DivX4, Xvid, ffmpeg msmpeg4, ecc...).</P>

<P><B><I>Esempi</I></B></P>

<P>La spiegazione dell'opzione <CODE>-mf</CODE> si trova nella pagina di man.</P>

<P><I>Creare un file DivX4 da tutti i file JPEG presenti nella directory attuale :</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 
  -o output.avi \*.jpg</CODE></P>

<P><I>Creare un file DivX4 da alcuni dei file JPEG presenti nella directory attuale :</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 
  -ovc divx4 -o output.avi frame001.jpg,frame002.jpg</CODE></P>

<P><I>Creare un file Motion JPEG (MJPEG) da tutti i file JPEG presenti nella directory attuale :</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc copy
  -o output.avi \*.jpg</CODE></P>

<P><I>Creare un file non compresso da tutti i file PNG presenti nella directory attuale :</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb
  -o output.avi \*.png</CODE></P>

<P><B>Nota:</B> La larghezza deve essere un multiplo intero di 4, è una
 limitazione del formato RAW RGB dei file AVI.</P>

<P><I>Creare un file Motion PNG (MPNG) da tutti i file PNG presenti nella directory attuale :</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy
  -o output.avi \*.png</CODE></P>

<P><I>Creare un file Motion TGA (MTGA) da tutti i file TGA presenti nella directory attuale:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy
  -o output.avi \*.tga</CODE></P>

<H2><A NAME="vobsub">7.8  Estrarre i sottotitoli dei DVD in un file Vobsub</A></H2>

<P><B>MEncoder</B> è in grado di estrarre i sottotitoli dei DVD e codificarli nel formato file Vobsub.  
Questi consistono in un paio di file con estensione .idx  e .sub e sono generalmente impacchettati in un unico archivio .rar. MPlayer può leggerli usando le opzioni <I>-vobsub</I> e <I>-vobsubid</I>.</P>

<P>Devi specificare il nome di base (cioè senza le estensioni .idx o .sub) dei file di output con
<I>-vobsubout</I> e l'indice per questo sottotitolo nei file risultanti con <I>-vobsuboutindex</I>.</P>

<P>Se l'input non viene da un DVD dovresti usare <I>-ifo</I> per indicare il file .ifo necessario per 
costruire il file .idx risultante.</P>

<P>Se l'input non viene da un DVD e non hai il file .ifo devi usare l'opzione <I>-vobsubid</I> per fargli 
sapere quale identificativo di lingua mettere nel file .idx.</P>

<P>Ogni esecuzione aggiungerà l'attuale sottotitolo ai file .idx e .sub se questi esistono già.
Quindi dovresti rimuoverli prima di ogni nuova esecuzione.</P>

<P><B>Esempi</B></P>

<P><I>Copiare due sottotitoli da un DVD usando la codifica a tre passaggi</I><BR>   
&nbsp;&nbsp;<CODE>rm sottotitoli.idx sottotitoli.sub</CODE><BR>    
&nbsp;&nbsp;<CODE>mencoder dvd://1 -vobsubout sottotitoli -vobsuboutindex 0 
-sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=1</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=2 -vobsubout
    subtitles -vobsuboutindex 1 -sid 5</CODE></P>

<P><I>Copiare un sottotitolo francese da un file MPEG</I><BR>
&nbsp;&nbsp;<CODE>rm sottotitoli.idx sottotitoli.sub</CODE><BR>
&nbsp;&nbsp;<CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>

<H2><A NAME="aspect">7.9 Conservare le proporzioni</A></H2>

<P>I file dei DVD e dei SVCD (cioè MPEG1/2) contengono un valore di proporzione,
  che descrive come il lettore dovrebbe ridimensionare il flusso video, così che
  le persone non abbiano teste a uovo (es.: 480x480 + 4:3 = 640x480). Comunque quando
  si codificano file AVI (DivX), bisogna considerare che le intestazioni degli AVI non salvano
  questo valore. Ridimensionare il filmato è disgustoso e spreca tempo, deve esserci
  un modo migliore!</P>

<P>C'è.</P>

<P>L'MPEG4 ha una caratteristica unica: il flusso video può contenere
  le proporzioni che gli servono. Si, proprio come i file MPEG1/2 (DVD, SVCD).
  Purtroppo, <U>non<U> ci sono lettori video la fuori che supportino questa
  possibilità. Eccetto MPlayer.</P>

<P>Si può usare questa caratteristica solo con il codec <CODE>mpeg4</CODE> di <B>libavcodec</B>.
  Ricorda: anche se MPlayer riproducerà correttamente il file creato,
  gli altri lettori useranno le proporzioni sbagliate.</P>

<P>Dovresti considerare seriamente la possibilità di tagliare le bande nere sopra e sotto al filmato.
  Vedi la pagina di man per l'utilizzo dei filtri <CODE>cropdetect</CODE> e
  <CODE>crop</CODE>.</P>

<H4>Utilizzo:</H4>

<P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts
  vcodec=mpeg4:aspect=16.0/9.0 -vf crop=714:548:0:14 -oac copy -o output.avi</CODE></P>

</BODY>
</HTML>