mpv/DOCS/it/encoding.html

265 lines
12 KiB
HTML
Raw Normal View History

<HTML>
<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>
<H2><A NAME="encoding">2.4. Codificare con MEncoder</A></H2>
<P>Per la lista completa delle opzioni disponibili per Mencoder e gli esempi, vedi
la pagina di man.</P>
<H3><A NAME="2pass">2.4.1. Codificare DivX4 in 2 o 3 passaggi</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<76> una
migliore qualit<69> d'immagine. Se questa <20> 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 DivX4 a 2 passaggi. Bisogna dare solo
due comandi :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - rimuovi questo file che pu<70> 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 <20> 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<70>,
l'audio <20> codificato solo una volta, diversamente dalla modalit<69> 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<EFBFBD> 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>Cio<EFBFBD> il primo passaggio della codifica del video DivX4.
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>Cio<EFBFBD> il secondo passaggio della codifica video DivX4.
Puoi specificare il bitrate video dato da MEncoder alla fine del precedente
passaggio. In questo passaggio, l'audio da <CODE>frameno.avi</CODE> sar<61> inserito
nel file di destinazione.. ed <20> 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<70> 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>
<H3><A NAME="rescaling">2.4.2. Ridimensionare i filmati</A></H3
<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 <20> male.</B>
Invece di fare cos<6F>, leggete la sezione <A HREF="#aspect">Conservare
le proporzioni</A>.</P>
<P>Il processo di ridimensionamento <20> gestito dal filtro video <I>'scale'</I>:
<CODE>-vop scale=larghezza:altezza</CODE>. La qualit<69> pu<70> essere impostata tramite l'opzione
<CODE>-sws</CODE>. Se non specificata, <B>MEncoder</B> user<65> il valore 0 :
bilineare veloce.</P>
<P>Utilizzo :<BR>
<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder input.mpg -ovc lavc -lavcopts
vcodec=mpeg4 -vop scale=640:480 -oac copy -o
output.avi</CODE></P>
<H3><A NAME="copying">2.4.3. Copia da stream</A></H3>
<P><B>MEncoder</B> pu<70> 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<70> leggere tali file :) E probabilmente non ha
alcuna utilit<69> nella vita reale. Seriamente : la copia del flusso video pu<70> 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>
<H3><A NAME="fixing">2.4.4. Correggere gli AVI con indice o intervallo malformati</A></H3>
<P>E' semplicissimo. Copiamo semplicemente i flussi audio e video, e
<B>MEncoder</B> genera l'indice. Naturalmente questo non pu<70> correggere possibili bug
nei flussi video e/o audio. Corregge anche i file mal intervallati,
cos<EFBFBD> non sar<61> pi<70> 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="libavcodec">2.4.5. Codificare con le famiglia di codec libavcodec</A></H3>
<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 - DivX4</LI>
<LI>msmpeg4 - il vecchio DivX</LI>
<LI>msmpeg4v2 - Micro$oft MPEG4 V2 (predecessore del DivX alias MP43)</LI>
<LI>rv10 - un vecchio codec RealVideo</LI>
<LI>mpeg1video - video MPEG1 :)</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>
<H3><A NAME="image_files">2.4.6. Codificare da file di immagine multipli (JPEG, PNG o TGA)</A></H3>
<P><B>MEncoder</B> <20> in grado di creare filmati a partire da uno o pi<70> file JPEG, PNG o TGA.
Con un semplice framecopy pu<70> 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...). Attenzione al decoder PNG, dato che
attualmente pu<70> fornire in output solo formati RGB, quindi non pu<70> essere usato con i codec
che richiedono un input YUV, come il DivX4 o l' msmpeg4 di ffmpeg.</P>
<P><B><I>Esempi</I></B></P>
<P>La spiegazione dell'opzione <CODE>-mf</CODE> si trova pi<70> sotto nella sezione
delle <A HREF="#options">Opzioni</A> generali e 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 \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4
-o output.avi</CODE></P>
<P><I>Creare un file DivX4 da alcuni dei file JPEG presenti nella directory attuale :</I><BR>
&nbsp;&nbsp;<CODE>mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25
-ovc divx4 -o output.avi</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 \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy
-o output.avi</CODE></P>
<P><I>Creare un file non compresso da tutti i file PNG presenti nella directory attuale :</I><BR>
&nbsp;&nbsp;<CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw
-o output.avi</CODE></P>
<P><I>Creare un file Motion PNG (MPNG) da tutti i file PNG presenti nella directory attuale :</I><BR>
&nbsp;&nbsp;<CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy
-o output.avi</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 \*.tga -mf on:w=800:h=600:fps=25:type=tga -ovc copy
-o output.avi</CODE></P>
<H3><A NAME="vobsub">2.4.7. Estrarre i sottotitoli dei DVD in un file Vobsub</A></H3>
<P><B>MEncoder</B> <20> 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<70> leggerli usando le opzioni <I>-vobsub</I> e <I>-vobsubid</I>.</P>
<P>Devi specificare il nome di base (cio<69> 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<65> l'attuale sottotitolo ai file .idx e .sub se questi esistono gi<67>.
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>
<H3><A NAME="aspect">2.4.8 Conservare le proporzioni</A></H3>
<P>I file dei DVD e dei SVCD (cio<69> MPEG1/2) contengono un valore di proporzione,
che descrive come il lettore dovrebbe ridimensionare il flusso video, cos<6F> 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 <20> disgustoso e spreca tempo, deve esserci
un modo migliore!</P>
<P>C'<27>.</P>
<P>L'MPEG4 ha una caratteristica unica: il flusso video pu<70> 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<69>. Eccetto MPlayer.</P>
<P>Si pu<70> usare questa caratteristica solo con il codec <CODE>mpeg4</CODE> di <B>libavcodec</B>.
Ricorda: anche se MPlayer riproducer<65> correttamente il file creato,
gli altri lettori useranno le proporzioni sbagliate.</P>
<P>Dovresti considerare seriamente la possibilit<69> 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>
<H5>Utilizzo:</H5>
<P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts
vcodec=mpeg4:aspect=16.0/9.0 -vop crop=714:548:0:14 -oac copy -o output.avi</CODE></P>
</BODY>
</HTML>