# 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