Utilizzo base di <application>MEncoder</application> 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 e . 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 audioDescrizione 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 videoDescrizione 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 . 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 contenitoreDescrizione 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 ), il giusto formato contenitore verrà determinato dall'estensione del file di uscita. Puoi forzare un formato contenitore specifico con l'opzione 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 numero_titolo o 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 , insieme con seguita dal percorso della radice del DVD copiato. Le opzioni e 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 . Per esempio, 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 numero_canale come nome file e 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 -of lavf \ -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \ -lavfopts format=psp \ input.video -o output.psp Nota che puoi impostare il titolo del video con . 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 . 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: . La sua qualità può essere impostata con l'opzione . 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 ): 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 ): direttamente. E' possibile prendere un file audio esterno (MP3, WAV) e farne il mux nel flusso di uscita. Usa l'opzione per farlo. Usare per copiare da un formato contenitore ad un altro potrebbe richiedere l'utilizzo di 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: MEncoder decodifica le immagini in entrata con libjpeg (decodificando PNG, userà libpng). MEncoder passa poi le immagini decodificate al compressore video scelto (DivX4, Xvid, FFmpeg msmpeg4, etc.). Esempi La spiegazione dell'opzione è 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 e . Specifica il nome di base (per es. senza l'estensione .idx o .sub) del file di uscita con e l'indice per questo sottotitolo nel file risultante con . Se i dati in entrata non arrivano da un DVD usa 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 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