# Utilizzo base di MEncoder

Per la lista completa delle opzioni disponibili ed esempi per MEncoder, leggi per favore la pagina di manuale. Per una serie di esempi pronti all'uso e guide dettagliate sull'utilizzo di svariati parametri di codifica leggi le indicazioni per la codifica che sono stati selezionati da vari thread sulla mailing list MPlayer-users. Cerca qui negli archivi e soprattutto per cose più vecchie, anche qui per una buona serie di discussioni riguardanti tutti gli aspetti e i problemi relativi alla codifica con MEncoder.

## Selezionare codec e formati contenitore

I codec audio e video per la codifica vengono selezionati rispettivamente con le opzioni `-oac` e `-ovc`. Esegui per esempio:

    mencoder -ovc help

per elencare tutti i codec video supportati dalla versione di MEncoder sul tuo sistema. Sono disponibili le scelte seguenti:

Codec audio:

Nome codec audio | Descrizione
--- | ---
mp3lame | codifica in MP3 VBR, ABR o CBR MP3 tramite LAME
lavc | usa uno dei codec audio di libavcodec
faac | codificatore audio FAAC AAC
toolame | codificatore MPEG Audio Layer 2
twolame | codificatore MPEG Audio Layer 2 basato su tooLAME
pcm | audio PCM non compresso
copy | non ricodifica, copia solo il flusso compresso

Codec video:

Nome codec video | Descrizione
--- | ---
lavc | usa uno dei codec video di libavcodec
xvid | Xvid, codec MPEG-4 Advanced Simple Profile (ASP)
x264 | x264, codec MPEG-4 Advanced Video Coding (AVC), AKA H.264
nuv | nuppel video, utilizzato da alcune applicazioni in tempo reale
raw | fotogrammi video non compressi
copy | non ricodifica, copia solo il flusso compresso
frameno | usato per codifica a 3 passaggi (non consigliato)

I formati contenitore di uscita si selezionano con l'opzione `-of`. Scrivi:

    mencoder -of help

per elencare tutti i contenitori supportati dalla versione di MEncoder sul tuo sistema. Sono disponibili le scelte seguenti:

Formati contenitore:

Nome formato contenitore | Descrizione
--- | ---
lavf | uno dei contenitori supportati da libavformat
avi | Audio-Video Interleaved
mpeg | MPEG-1 e MPEG-2 PS
rawvideo | flusso video grezzo (nessun mux - solo un flusso video)
rawaudio | flusso audio grezzo (nessun mux - solo un flusso audio)

Il contenitore AVI è il formato contenitore nativo per MEncoder, il che significa che è quello meglio gestito e quello per cui MEncoder è stato progettato. Come su specificato, si possono utilizzare altri formati contenitore, ma potresti avere qualche problema utilizzandoli.

Contenitori libavformat:

Se hai impostato libavformat per fare il mux del file di uscita (usando `-of lavf`), il giusto formato contenitore verrà determinato dall'estensione del file di uscita. Puoi forzare un formato contenitore specifico con l'opzione `format` di libavformat.

nome contenitore libavformat | Descrizione
--- | ---
mpg | MPEG-1 e MPEG-2 PS
asf | Advanced Streaming Format
avi | Audio-Video Interleaved
wav | Audio Waveform
swf | Macromedia Flash
flv | Macromedia Flash video
rm | RealMedia
au | SUN AU
nut | contenitore "aperto" NUT (sperimentale e non ancora spec-compliant)
mov | QuickTime
mp4 | formato MPEG-4
dv | contenitore Sony Digital Video
mkv | contenitore "aperto" audio/video Matroska

Come puoi notare, libavformat permette a MEncoder di fare il mux in una buona quantità di contenitori. Sfortunatamente, dato che MEncoder non è stato progettato dall'inizio per supportare formati contenitore diversi da AVI, dovresti essere piuttosto paranoici riguardo al file risultante. Assicurati per favore che la sincronizzazione audio/video sia a posto e che il file possa essere riprodotto correttamente da altri programmi oltre a MPlayer.

codificare nel formato Macromedia Flash

Creare un video Macromedia Flash che sia riproducibile in un browser internet con il plugin Macromedia Flash:

    mencoder input.avi -o output.flv -of lavf \
        -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
        -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3

## Selezionare il file in ingresso o il dispositivo

MEncoder può codificare da file o direttamente da un disco DVD o VCD. Includi semplicemente nella riga comando il nome file per codificare dal file stesso, oppure `dvd://`numero_titolo o `vcd://`numero_traccia per codificare da un titolo DVD o da una traccia VCD. Se hai già copiato un DVD sul tuo disco fisso (puoi usare uno strumento come dvdbackup, disponibile per la maggior parte dei sistemi) e desideri codificare da tale copia, dovresti ancora usare la sintassi `dvd://`, insieme con `-dvd-device` seguita dal percorso della radice del DVD copiato. Le opzioni `-dvd-device` e `-cdrom-device` possono anche essere usate per reimpostare i percorsi dei dispositivi al fine di leggere direttamente dal disco, se i valori di default `/dev/dvd` e `/dev/cdrom` non funzionano sul tuo sistema.

Durante la codifica da DVD, spesso si vogliono selezionare un capitolo o una serie di capitoli da codificare. Per questo fine puoi usare l'opzione `-chapter`. Per esempio, `-chapter` 1-4 codificherà solo i capitoli dall'1 al 4 dal DVD. Questo è particolarmente utile se vuoi fare una codifica in 1400 MB destinata a due CD, visto che puoi esser sicuro che il punto di divisione sia proprio tra un capitolo e l'altro invece che a metà di una scena.

Se hai una scheda di acquisizione TV supportata, puoi anche codificare dal dispositivo di ingresso TV. Usa `tv://`numero_canale come nome file e `-tv` per configurare varie opzioni di acquisizione. L'ingresso DVB funziona in modo simile.

## Codificare MPEG-4 ("DivX") in due passaggi

La definizione viene dal fatto che questo metodo codifica il file due volte. La prima codifica (dubbed pass) genera alcuni file temporanei (`*.log`) con una dimensione di pochi megabyte, non cancellarli dopo il primo passaggio (puoi cancellare l'AVI o meglio ancora non creare alcun video ridirezionandolo verso `/dev/null` o verso `NUL` sotto Windows). Nel secondo passaggio viene creato il secondo file di output, usando i dati del bitrate presi dai file temporanei. Il file risultante avrà una qualità dell'immagine decisamente migliore. Se questa è la prima volta che senti parlare di quasta cosa ti conviene leggere qualcuna delle guide disponibili su internet.

copiare la traccia audio

La codifica in due passaggi della seconda traccia di un DVD in un AVI MPEG-4 ("DivX") copiando la traccia audio.

    mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
    mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
        -oac copy -o output.avi

codificare la traccia audio

La codifica in due passaggi della seconda traccia di un DVD in un AVI MPEG-4 ("DivX") codificando la traccia audio in MP3. Fai attenzione se usi questo metodo, dato che in alcuni casi può portare desincronizzazione audio/video.

    mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
        -oac mp3lame -lameopts vbr=3 -o /dev/null
    mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
        -oac mp3lame -lameopts vbr=3 -o output.avi

## Codificare nel formato video per Sony PSP

MEncoder fornisce la codifica in formato video Sony PSP, ma, relativamente alla revisione del software PSP, i vincoli possono essere diverse. Dovresti accertarti di rispettare i seguenti vincoli:

- Bitrate: non dovrebbe oltrepassare i 1500kbps, tuttavia, versioni precedenti supportavano quasi ogni frequenza a patto che l'intestazione non dicesse che era troppo alta.

- Dimensioni: la larghezza e l'altezza del video PSP dovrebbero essere multipli di 16 e il prodotto larghezza * altezza dovrebbe essere <= 64000. In alcune circostanze, potrebbe essere possibile che la PSP riproduca risoluzioni più grandi.

- Audio: la frequenza dovrebbe essere 24kHz per video MPEG-4, e 48kHz per H.264.

codificare per PSP

    mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -oac lavc \
        -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=libfaac \
        -of lavf -lavfopts format=psp \
        input.video -o output.psp

Nota che puoi impostare il titolo del video con `-info name=TitoloFilmato`.

## Codificare in formato MPEG

MEncoder può generare file nel formato di output MPEG (MPEG-PS). Di solito, quando stai usando video MPEG-1 o MPEG-2, è perché stai codificando per un formato vincolato come SVCD, VCD, o DVD. Le richieste specifiche per questi formati sono spiegate nella sezione creazione di VCD e DVD.

Per modificare il formato file di uscita di MEncoder, usa l'opzione `-of mpeg`.

Esempio:

    mencoder input.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video \
        -oac copy altre_opzioni -o output.mpg

Creare un file MPEG-1 che possa essere riprodotto da sistemi con un supporto multimediale minimale, come l'installazione di default di Windows:

    mencoder input.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \
        -o output.mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
        -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3

Lo stesso, ma usando il muxer MPEG di libavformat:

    mencoder input.avi -o VCD.mpg -ofps 25 -vf scale=352:288,harddup -of lavf \
        -lavfopts format=mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
        -lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0

Consiglio:

Se per qualche motivo la qualità video del secondo passaggio non ti soddisfa, puoi rilanciare la tua codifica video con un diverso bitrate di uscita, sempre che tu abbia tenuto i file con le statistiche del passaggio precedente. Questo è possbilie dato che l'obiettivo principale del file delle statistiche è registrarsi la complessità di ciascun frame, che non dipende direttamente dal bitrate. Dovresti tuttavia essere consapevole che otterrai i risultati migliori se tutti i passaggi sono eseguiti con bitrate non troppo diversi tra loro.

## Ridimensionare filmati

Spesso emerge la necessità di ridimensionare le immagini del filmato. Le ragioni possono essere molte: diminuire la dimensione del file, la banda di rete, etc... Molte persone ridimensionano anche quando convertono DVD o CVD in AVI DivX. Se desideri ridimensionare, leggi la sezione Preservare il rapporto di aspetto.

Il processo di ridimensionamento è gestito dal filtro video `scale`: `-vf scale=larghezza:altezza`. La sua qualità può essere impostata con l'opzione `-sws`. Se non è specificato, MEncoder userà 2: bicubico.

Uso:

    mencoder input.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \
        -vf scale=640:480 -o output.avi

## Copia dei flussi

MEncoder può gestire i flussi in ingresso in due modi: codifica o copia. Questa sezione tratta la copia.

- Flussi video (opzione `-ovc copy`): si possono fare delle cose carine :) Come infilare (senza converzione!) video FLI o VIVO o MPEG-1 in un file AVI! Di sicuro solo MPlayer può riprodurre file siffatti :) E probabilmente non ha alcuna utilità. Razionalmente: la copia dei flussi video può essere utile per esempio quando si deve codificare solo il flusso audio (come da PCM non compresso a MP3).

- Flussi audio (opzione `-oac copy`): direttamente. E' possibile prendere un file audio esterno (MP3, WAV) e farne il mux nel flusso di uscita. Usa l'opzione `-audiofile nomefile` per farlo.

Usare `-oac copy` per copiare da un formato contenitore ad un altro potrebbe richiedere l'utilizzo di `-fafmttag` per conservare l'etichetta del formato audio del file di partenza. Per esempio, se stai convertendo un file NSV con audio AAC a un contenitore AVI, l'etichetta del formato audio sarà sbagliata e bisognerà modificarla. Per una lista delle etichette dei formati audio, controlla `codecs.conf`.

Esempio:

    mencoder input.nsv -oac copy -fafmttag 0x706D \
        -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o output.avi

## Codificare file immagine multipli (JPEG, PNG, TGA, etc.)

MEncoder è in grado di creare filmati da uno o più file immagine JPEG, PNG, TGA o altri. Con una semplioce copia fotogrammi può creare file MJPEG (Motion JPEG), MPNG (Motion PNG) o MTGA (Motion TGA).

Spiegazione del processo:

1. MEncoder decodifica le immagini in entrata con libjpeg (decodificando PNG, userà libpng).

2. MEncoder passa poi le immagini decodificate al compressore video scelto (DivX4, Xvid, FFmpeg msmpeg4, etc.).

Esempi

La spiegazione dell'opzione `-mf` è nella pagina man.

Creare un file MPEG-4 da tutti i file JPEG nella directory corrente:

    mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc \
        -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi

Creare un file MPEG-4 da alcuni file JPEG nella directory corrente:

    mencoder mf://frame001.jpg,frame002.jpg -mf w=800:h=600:fps=25:type=jpg \
        -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi

Creare un file MPEG-4 da una lista definita di file JPEG (lista.txt nella directory corrente contiene la lista dei file da usare come sorgente, uno per riga):

    mencoder mf://@lista.txt -mf w=800:h=600:fps=25:type=jpg \
        -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi

Puoi mescolare diversi tipi di immagine, senza considerare il metodo che usi — nomi file singoli, wildcard o file da una lista — posto ovviamente che abbiano la stessa dimensione. Per cui puoi per es. prendere il fotogramma dei titoli da un file PNG e poi fare una presentazione delle tue foto in JPEG.

Creare un file Motion JPEG (MJPEG) da tutti i file JPEG nella directory corrente:

    mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o output.avi

Creare un file non compresso da tutti i file PNG nella directory corrente:

    mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi

La larghezza deve essere un intero multipli di 4, è una limitazione del formato grezzo RAW RGB AVI.

Creare un file Motion PNG (MPNG) da tutti i file PNG nella directory corrente:

    mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi

Creare un file Motion TGA (MTGA) da tutti i file TGA nella directory corrente:

    mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.avi

## Estrarre sottotitoli DVD in un file VOBsub

MEncoder è in grado di estrarre i sottotitoli da un DVD in file formattati VOBsub. Essi sono composti da una coppia di file che terminano in `.idx` e `.sub` e sono solitamente compressi in un singolo archivio `.rar`. MPlayer può riprodurli con le opzioni `-vobsub` e `-vobsubid`.

Specifica il nome di base (per es. senza l'estensione `.idx` o `.sub`) del file di uscita con `-vobsubout` e l'indice per questo sottotitolo nel file risultante con `-vobsuboutindex`.

Se i dati in entrata non arrivano da un DVD usa `-ifo` per indicare il file `.ifo` che serve per costruire il risultante file `.idx`.

Se i dati in entrata non arrivano da un DVD e non hai il file `.ifo` dovrai usare l'opzione `-vobsubid` per impostare l'id della lingua da scrivere nel file `.idx`.

Se esistono già i file `.idx` e `.sub` ogni esecuzione aggiungerà il sottotitolo selezionato. Perciò dovresti cancellarli prima di iniziare.

Copiare due sottotitoli da un DVD durante la codifica in due passaggi

    rm sottotitoli.idx sottotitoli.sub
    mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
        -vobsubout sottotitoli -vobsuboutindex 0 -sid 2
    mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
        -vobsubout sottotitoli -vobsuboutindex 1 -sid 5

Copiare i sottotitoli francesi da un file MPEG

    rm sottotitoli.idx sottotitoli.sub
    mencoder film.mpg -ifo film.ifo -vobsubout sottotitoli -vobsuboutindex 0 \
        -vobsuboutid fr -sid 1 -nosound -ovc copy

## Preservare il rapporto di aspetto

I file dei DVD e dei VCD (per es. MPEG-1/2) contengono un valore del rapporto d'aspetto che instruisce il riproduttore su come ridimensionare il flusso video, così gli umani non avranno teste a uovo (es.: 480x480 + 4:3 = 640x480). Tuttavia, codificando in file AVI (DivX), devi fare attenzione che l'intestazione AVI non salva questo valore. Ridimensionare il film è disgustoso e una perdita di tempo, ci deve essere un modo migliore!

C'è

MPEG-4 ha un caratteristica unica: il flusso video può contenere il rapporto di aspetto che serve. Sì, proprio come i MPEG-1/2 (DVD, SVCD) e H.263. Tristemente, ci sono pochi riproduttori oltre ad MPlayer che gestiscono questo attributo MPEG-4.

Questa caratteristica può essere usata solo con il codec mpeg4 di libavcodec. Ricorda: anche se MPlayer riprodurrà correttamente il file generato, altri riproduttori potrebbero usare il rapporto di aspetto sbagliato.

Devi assolutamente tagliare le bande nere sopra e sotto all'immagine del film. Vedi la pagina man per l'utilizzo dei filtri cropdetect e crop.

Uso

    mencoder svcd-di-esempio.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \
        -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o output.avi