mirror of https://github.com/mpv-player/mpv
343 lines
16 KiB
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 < 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> rm frameno.avi</CODE> - rimuovi questo file che può essere rimasto
|
|
da una precedente codifica a 3 passaggi (interferisce col processo attuale)<BR>
|
|
<CODE> mencoder -dvd 2 -lavcopts vcodec=mpeg4:altre_opzioni
|
|
-o movie.avi -pass 1<BR>
|
|
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 <file/DVD> -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 <file/DVD> -oac copy -pass 1
|
|
-ovc divx4 -divx4opts br=<bitrate></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 <file/DVD> -oac copy -pass 2
|
|
-ovc divx4 -divx4opts br=<bitrate></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> rm frameno.avi</CODE> - rimuovi questo file,
|
|
che può essere rimasto da una precedente codifica a 3 passaggi (interferisce con quella attuale)<BR>
|
|
|
|
<CODE> mencoder -dvd 2 -ovc frameno
|
|
-o frameno.avi<BR>
|
|
<CODE> mencoder -dvd 2
|
|
-lavcopts vcodec=mpeg4:altre_opzioni -oac copy -o movie.avi -pass 1<BR>
|
|
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> 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 <filename></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> 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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<CODE>rm sottotitoli.idx sottotitoli.sub</CODE><BR>
|
|
<CODE>mencoder -dvd 1 -vobsubout sottotitoli -vobsuboutindex 0 -sid 2 -o frameno.avi -ovc frameno</CODE>
|
|
<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 1</CODE><BR>
|
|
<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>
|
|
<CODE>rm sottotitoli.idx sottotitoli.sub</CODE><BR>
|
|
<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>
|