mpv/DOCS/Italian/encoding.html

343 lines
16 KiB
HTML

<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>
<P><B><A NAME="encoding">2.4. Codificare con MEncoder</A></B></P>
<P><B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder, Codificatore Filmati di MPlayer) è un semplice encoder,
studiato per codificare i filmati leggibili da MPlayer
(<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET</B>) in altri formati leggibili da MPlayer
(vedi sotto). Può usare vari codec, come <B>DivX4</B> (1 o
2 passaggi), libavcodec, audio <B>PCM</B>/<B>MP3</B>/<B>VBRMP3</B>. Ha anche un
potente sistema di plugin per la manipolazione video.</P>
<P><B><A NAME="compilation">2.4.1. Compilazione</B></P>
<P>
<UL>
<LI><B>OPZIONALE</B> - leggi le istruzioni di compilazione di <B>MPlayer</B>.
<LI><B>OPZIONALE (SOLO PER LINUX)</B> - scarica le librerie <B>DivX4linux</B> più recenti
da <A HREF="http://avifile.sourceforge.net/download.htm">avifile.sourceforge.net</A>,
e installale CORRETTAMENTE. Ti servono se vuoi codificare in DivX4
(1/2 passaggi).</LI>
<LI><B>OPTIONALE</B> - <A HREF="codecs.html#xvid">scarica e installa
<B>XViD</B></A>. Non molto utile, il codec <I>mpeg4</I> di libavcodec
può codificare più velocemente e con una migliore qualità di XViD o DivX4/5.</LI>
di una codifica più veloce del DivX4, con approssimativamente la stessa qualità.</LI>
<LI><B>OPZIONALE</B> - per il supporto libavcodec, installa libavcodec come
descritto nella <A HREF="codecs.html#libavcodec">sezione libavcodec</A>.</LI>
<LI><B>OPZIONALE</B> - scarica e compila <B>libmp3lame</B> (da lame 3.89beta o lame CVS).<BR>
<B>ATTENZIONE : NON COMPILARE LAME &lt; 3.90 CON <U>GCC 2.96</U> ! Non funzionerà
correttamente !</B><BR>
Questo
è necessario per la possibilità di codificare audio CBR/VBR MP3. Nota che il singolo binario di
<CODE>lame</CODE> non è sufficiente. Comunque: meno ottimizzazione usi
per lame, migliore sarà la qualità. Puoi testare la
qualità eseguendo <CODE>make test</CODE> dopo aver finito il processo di compilazione di
lame. Il numero risultante dovrebbe essere minore di <B>30</B>. Non ti spaventare
se è <B>400</B> o comunque alto, non dovresti sentire una diminuzione di
qualità. Oh, e se il tuo compilatore non esegue nemmeno <CODE>make test</CODE> ...
Bhe, cancella quel <B>GCC 2.96</B> o aggiorna lame almeno all versione <B>3.90</B>.</LI>
<LI><B>OPZIONALE</B> - <CODE>libjpeg</CODE> e <CODE>libpng</CODE> -
come descritto nella sezione <A HREF="documentation.html#installation">Installazione</A>
</LI>
</UL>
</P>
<P>Sei pronto. Come forse saprai, altri strumenti per la codifica necessitano installata
la libreria <I>avifile</I>. <B>MEncoder</B> non ne ha per niente bisogno.</P>
<P><B><A NAME="features">2.4.2. Caratteristiche di MEncoder</B></P>
<P>
<UL>
<LI>codifica dall'ampia scelta di formati file e decoder di <B>MPlayer</B></LI>
<LI>codifica in tutti i codec del
<A HREF=codecs.html#libavcodec>libavcodec</A> di ffmpeg</LI>
<LI>codifica video da <B>sintonizzatori TV compatibili con V4L</B></LI>
<LI>codifica/multiplexing a file AVI intervallati con un indice corretto</LI>
<LI>creazione di file da flusso audio esterno</LI>
<LI>codifica a 1, 2 o 3 passaggi</LI>
<LI>Audio MP3 <B>VBR</B> - <B>NOTA IMPORTANTE</B> : l'audio MP3 VBR non sempre
viene letto bene da i lettori di windows! D'altra parte, attualmente
la codifica CBR di <B>MEncoder</B> non funziona coi lettori win32 :)</LI>
<LI>Audio PCM</LI>
<LI>copia da stream</LI>
<LI>sincronizzazione dell'input A/V (basata su PTS, può essere disabilitata con l'opzione -mc 0)</LI>
<LI>correzione FPS con l'opzione <CODE>-ofps</CODE> (utile quando si codifica
un VOB a 29.97fps in un AVI a 24fps)</LI>
<LI>usa il nostro potente sistema a plugin (taglia, espandi, capovolgi, post-processa,
ruota, ridimensiona, conversione rgb/yuv)</LI>
<LI>può codificare DVD/VOBsub <B>E</B> il testo dei sottotitoli nel file di output</LI>
<LI>può catturare i sottotitoli dei DVD in formato Vobsub</LI>
</UL>
</P>
<P><B><I>Caratteristiche programmate</I></B> :
<UL>
<LI>ancora più ampia scelta disponibile di formati/codec di (de)codifica
(creare file VOB con flussi DivX4/Indeo5/VIVO :)</LI>
<LI>codifica audio da v4l</LI>
</UL>
</P>
<P><B><A NAME="2pass">2.4.2.1. Codificare DivX4 in 2 o 3 passaggi</B></P>
<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 DivX4 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 -lavcopts vcodec=mpeg4:altre_opzioni
-o movie.avi -pass 1<BR>
&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -lavcopts vcodec=mpeg4:altre_opzioni -o movie.avi -pass 2</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>
<P>
<TABLE>
<TR>
<TD>
<CODE>rm frameno.avi</CODE></TD>
<TD>
<B>rimuovi il file temporaneo che va in conflitto</B></TD>
</TR>
<TR>
<TD>
<CODE>mencoder &lt;file/DVD&gt; -ovc frameno -o
frameno.avi</CODE></TD>
<TD>
<B><U>Primo passaggio</U> : 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.</B></TD>
</TR>
<TR>
<TD>
<CODE>mencoder &lt;file/DVD&gt; -oac copy -pass 1
-ovc divx4 -divx4opts br=&lt;bitrate&gt;</CODE></TD>
<TD>
<B><U>Secondo passaggio</U> : cioè il primo passaggio della codifica del video DivX4.
Puoi specificare il bitrate video dato da MEncoder alla fine del precedente
passaggio.</B></TD>
</TR>
<TR>
<TD>
<CODE>mencoder &lt;file/DVD&gt; -oac copy -pass 2
-ovc divx4 -divx4opts br=&lt;bitrate&gt;</CODE></TD>
<TD>
<B><U>Terzo passaggio</U> : cioè 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à inserito
nel file di destinazione.. ed è tutto pronto!</B></TD>
</TR>
</TABLE>
</P>
<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<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2
-lavcopts vcodec=mpeg4:altre_opzioni -oac copy -o movie.avi -pass 1<BR>
&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2
-lavcopts vcodec=mpeg4:altre_opzioni -oac copy -o movie.avi -pass 2</CODE>
</P>
<P><U><B>Codifica a 2 o 3 passaggi usando il controller interno di libavcodec</B></U> :
Opzionalmente puoi usare la modalità interna a 2 o 3 passaggi di libavcodec, può risultare
una migliore accuratezza del frame rate rispetto al controller esterno.<BR>
<UL>
<B>codifica a 2 passaggi</B> :<BR>
<CODE>rm -f lavc_stats.txt<BR>
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 (opzioni audio) -o movie.avi<BR>
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 (opzioni audio) -o movie.avi</CODE><BR>
<BR>
<B>codifica a 3 passaggi</B> :<BR>
<CODE>rm -f frameno.avi lavc_stats.txt<BR>
mencoder -dvd 2 -ovc frameno (opzioni audio) -o frameno.avi<BR>
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE><BR>
</UL>
</P>
<P><B><A NAME="rescaling">2.4.2.2. Ridimensionare i filmati</B></P>
<P>Spesso emerge l'esigenza di ridimensionare le immagini del filmato. Le ragioni possono essere molte,
come diminuire la grandezza del file di output, codificare SVCD in DivX. I DVD "rippati"
sono spesso da ridimensionare, per esempio un DVD in scala 4:3 dovrebbe essere in 640x480, specialmente se vuoi
che entri in 1 CD, e avere una buona qualità allo stesso tempo.
Gli SVCD hanno dimensione di 480x480, e la loro intestazione contiene le proporzioni
che il lettore dovrebbe usare (Es.: 480x480 + 4:3 = 640x480). Però quando codifichi
un file AVI (DivX), devi fare attenzione che l'intestazione dell'AVI non includa
questo valore. Quindi, l'unica soluzione è ridimensionare.</P>
<P>Il processo di ridimensionamento è gestito dal filtro video <I>'scale'</I>:
<CODE>-vop scale=X:Y</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>
<P>Utilizzo :<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder esempio-svcd.mpg -lavcopts vcodec=mpeg4:altre_opzioni -vop scale=640:480 -sws 2 -o output.avi</CODE></P>
<P><B><A NAME="copying">2.4.2.3. Copia da stream</B></P>
<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>
<P><B><A NAME="fixing">2.4.2.4. Correggere gli AVI con indice o intervallo malformati</B></P>
<P>La cosa più semplice. 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>
<P><B><A NAME="libavcodec">2.4.2.5. Codificare con le famiglia di codec <I>libavcodec</I></B></P>
<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</CODE></P>
<P><B><A NAME="image_files">2.4.2.6. Codificare da file di immagine multipli (JPEG o PNG)</B></P>
<P><B>MEncoder</B> è in grado di creare filmati a partire da uno o più file JPEG o PNG.
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...). Attenzione al decoder PNG, dato che
attualmente può fornire in output solo formati RGB, quindi non può 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ù 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>
<P><B><A NAME="vobsub">2.4.2.7. Estrarre i sottotitoli dei DVD in un file Vobsub</A></B></P>
<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</CODE>
&nbsp;&nbsp;<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 1</CODE><BR>
&nbsp;&nbsp;<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 2 -vobsubout sottotitoli -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>
<P><B><A NAME="options">2.4.3. Opzioni disponibili</B></P>
<P>Per tutte le opzioni disponibili e gli esempi, leggi la pagina di man</P>
</BODY>
</HTML>