MEncoder (MPlayer's Movie Encoder, Codificatore Filmati di MPlayer) è un semplice encoder, studiato per codificare i filmati leggibili da MPlayer (AVI/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET) in altri formati leggibili da MPlayer (vedi sotto). Può usare vari codec, come DivX4 (1 o 2 passaggi), libavcodec, audio PCM/MP3/VBRMP3. Ha anche capacità di copiare da stream e di ridimensionare i video.
lame
non è sufficiente. Comunque: meno ottimizzazione usi
per lame, migliore sarà la qualità. Puoi testare la
qualità eseguendo make test
dopo aver finito il processo di compilazione di
lame. Il numero risultante dovrebbe essere minore di 30. Non ti spaventare
se è 400 o comunque alto, non dovresti sentire una diminuzione di
qualità. Oh, e se il tuo compilatore non esegue nemmeno make test
...
Bhe, cancella quel GCC 2.96.Sei pronto. Come forse saprai, altri strumenti per la codifica necessitano installata la libreria avifile. MEncoder non ne ha per niente bisogno.
2.4.3. Caratteristiche di MEncoder
-ofps
(utile quando si codifica
un VOB a 29.97fps in un AVI a 24fps)Caratteristiche programmate :
2.4.3.1. Codificare DivX4 in 2 o 3 passaggi
codifica a 2 passaggi : il nome deriva dal fatto che questo metodo codifica il file due volte. La prima codifica (passaggio 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.
Questo esempio mostra come codificare un DVD in un AVI DivX4 a 2 passaggi. Bisogna dare solo
due comandi :
rm frameno.avi
- rimuovi questo file che può essere rimasto
da una precedente codifica a 3 passaggi (interferisce col processo attuale)
mencoder -dvd 2 -divx4opts br=1100
-o movie.avi -pass 1
mencoder -dvd 2 -divx4opts br=1100 -o movie.avi -pass 2
codifica a 3 passaggi : 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 :
rm frameno.avi |
rimuovi il file temporaneo che va in conflitto |
mencoder <file/DVD> -ovc frameno -o
frameno.avi |
Primo passaggio : sarà creato un file avi di solo audio, contenente SOLO
il flusso audio richiesto. Non dimenticare -lameopts , 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. |
mencoder <file/DVD> -oac copy -pass 1
-divx4opts br=<bitrate> |
Secondo passaggio : cioè il primo passaggio della codifica del video DivX4. Puoi specificare il bitrate video dato da MEncoder alla fine del precedente passaggio. |
mencoder <file/DVD> -oac copy -pass 2
-divx4opts br=<bitrate> |
Terzo passaggio : 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 frameno.avi sarà inserito
nel file di destinazione.. ed è tutto pronto! |
Esempio di codifica a 3 passaggi :
rm frameno.avi
- rimuovi questo file,
che può essere rimasto da una precedente codifica a 3 passaggi (interferisce con quella attuale)
mencoder -dvd 2 -ovc frameno
-o frameno.avi
mencoder -dvd 2
-divx4opts br=1100 -oac copy -o movie.avi -pass 1
mencoder -dvd 2
-divx4opts br=1100 -oac copy -o movie.avi -pass 2
2.4.3.2. Ridimensionare i filmati
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.
MEncoder può ridimensionare le immagini di input se sono in formato YV12 (per esempio:
ffdivx, driver odivx, o mpeg1/2). Le dimensioni di output si specificano co le opzioni
-x
, e -y
. Inoltre, ci sono 3 filtri
di ridimensionamento in MEncoder, 0
: bilineare veloce, 1 : bilineare, 2 : bicubico (migliore qualità).
Possono essere specificati con l'opzione -sws
. Se non specificato,
MEncoder userà 0 : bilineare veloce.
Ridimensionare è molto semplice :
mencoder sample-svcd.mpg -divx4opts br=1300 -x 640 -y 480 -sws 2 -o output.avi
MEncoder può gestire i flussi in entrata in due modi : codificandoli o copiandoli. Questa sezione tratta la copia.
-ovc copy
) : si possono fare tante belle cose :)-oac copy
) : inutile spiegare.2.4.3.4. Correggere gli AVI con indice o intervallo malformati
La cosa più semplice. Copiamo semplicemente i flussi audio e video, e
MEncoder genera l'indice. Naturalmente questo non può correggere possibili bug
nei flussi video e/o audio. Corregge anche i file con mal intervallati,
così non sarà più necessaria l'opzione -ni
per leggerli.
Comando : mencoder input.avi -ovc copy -oac copy -o output.avi
2.4.3.5. Codificare con le famiglia di codec libavcodec
libavcodec 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 :
La prima colonna contiene i nomi dei codec che devono essere passati dopo l'opzione
vcodec
, come : -lavcopts vcodec=msmpeg4
Un esempio, con la compressione MJPEG :
mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg
mencoder [opzioni] [file di input] [opzioni] ...
NOTA : per tutte le opzioni disponibili, leggi la pagina di man !
Dato che MEncoder è costruito sulle stesso codice di MPlayer, ci sono
molte opzioni di MPlayer che hanno funzioni anche in MEncoder!
Vedi, puoi usare -sid
per "rippare" un DVD con i sottotitoli, o
-noidx
per ignorare in input l'indice malformato di un AVI. Sii sveglio!
-ss tempo | comincia a codificare dal tempo dato (può partire solo dai frame chiave !) |
-endpos tempo | smetti di codificare al tempo dato. Vedi la pagina di man per esempi ! |
-o nomefile | specifica il nome del file di output |
-x larghezza in pixel | ridimensiona l'output alla data larghezza in pixel |
-y altezza in pixel | ridimensiona l'output alla data altezza in pixel |
-sws 0-2 |
metodo di ridimensionamento 0 - bilineare veloce 1 - bilineare 2 - bicubico (migliore qualità) |
-ovc nomecodec |
Codifica col codec dato (i nomi dei codec sono quelli presenti in codecs.conf). Esempi: help - ottieni una lista dei codec disponibili null - non creare un flusso video nell'AVI di output raw - crea un video non compresso rawrgb - ? copy - nessuna codifica, copia il flusso (solo da AVI/ASF per ora) divx4 - codifica in DivX4 lavc - codifica con un codec di libavcodec vfw - codifica con una DLL Windows |
-oac nomecodec |
Codifica col codec dato (i nomi dei codec sono quelli presenti in codecs.conf). Esempi: help - ottieni una lista dei codec disponibili copy - nessuna codifica, copia il flusso (solo da AVI/ASF per ora) pcm - codifica in un PCM non compresso mp3lame - codifica in MP3 (usando Lame) |
-divx4opts |
Se codifichi in DivX4, puoi specificare i sui parametri qui, come:-divx4opts br=1800:deinterlace:key=250 Opzioni comuni: (per la lista completa leggi la pagina di man!) help - ottieni l'aiuto br=XXX - specifica il bitrate in kbit <4-16000> o bit <16001-24000000> q=XXXX - qualità (1-veloce, 5-migliore - predefinito 5) key=XXXX - intervallo tra i frame chiave |
-lavcopts |
Se codifichi in libavcodec, puoi specificare i sui parametri qui, come:-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250 Opzioni comuni: (per la lista completa leggi la pagina di man!) help - ottieni l'aiuto vcodec=XXX - seleziona il codec video (per la lista completa, vedi la sezione libavcodec sopra) vbitrate=XXX - specifica il bitrate in kbit <4-16000> o bit <16001-24000000> vhq - alta qualità keyint=XXX - intervallo tra i frame chiave |
-lameopts |
Se codifichi in MP3 con libmp3lame, puoi specificare i sui parametri qui, come:-lameopts q=3 -lameopts br=192:cbr Opzioni comuni: (per la lista completa leggi la pagina di man!) help - ottieni l'aiuto cbr - seleziona MP£ CBR MP3 (il default è VBR) br=XXX - specifica il bitrate in kbit <0-1024> (solo per CBR!) q=XXXX - qualità (0-alta, 9-veloce - predefinito 0) (solo per VBR!) |
Usare MEncoder è la cosa più facile della Terra. Vedi il seguito :
Codificare da DVD, titolo 2 :
mencoder -dvd 2 -o title2.avi
Lo stesso, ma con la famiglia libavcodec, compressione MJPEG :
mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -ffourcc mjpg
Codifica da DVD, titolo 2, con ridimensionamento :
mencoder -dvd 2 -x 640 -y 480 -sws 2 -o title2.avi
Codifica da HTTP :
mencoder http://mplayer.hq/example.avi -o example.avi
Codifica da pipe :
rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -
Codificare file *.vob multipli :
cat *.vob | mencoder <opzioni> -
Codifica da sintonizzatore TV (per le opzioni vedi la sezione input TV !) :
mencoder -tv on:driver=v4l:width=640:height=480 <opzioni>
Per tutte le opzioni disponibili, controlla la pagina man di MEncoder !