From flv to avi and back with mencoder

La rete si va progressivamente riempiendo di filmati in formato Flash Video, di riflesso ci troviamo a dover “maneggiare” praticamente ogni giorno file in formato flv, a doverli visionare, a doverli convertire e a doverli inserire nei nostri siti. D’altra parte chi non naviga su YouTube o Google Video?

Per visionarli all’interno dei nostri browser è sufficiente avere installato l’Adobe Flash Player dalla versione 6 in poi ricordandosi però che fino alla versione 9 update 2 è possibile processare solo file in formato flv codificati col codec proprietario, dalla versione 9 update 3 in poi è possibile visionare anche filmati codificati in h264 e aac, il file video comunque può anche essere incluso all’interno del file swf oltre che essere stand-alone (come di solito è).

Per visionare i suddetti filmati in locale (aka sul vostro pc) è sufficiente un qualsiasi MPlayer, VLC media player, Quicktime o un player che supporti i filtri DirectShow (come Media Player Classic, Windows Media Player e Windows Media Center) una volta che abbiate installato i filtri ffdshow nel vostro sistema.

Tuttavia doverli convertire o inserire in un sito web senza DreamWeather o Flash installati può essere qualcosa di leggermente più complesso…

Convertire file flv scaricati da youtube ad avi

Prima di iniziare vorrei fare una breve intruduzione su quelle che sono le caratteristiche di questo formato.

Di solito i file Flash Video hanno lo stream video codificato con una variante proprietaria dello standard h263, dalla versione Flash Player 9 Update 3 è stato incluso il supporto alla codifica video in h264 che, anche se computazionalmente più complesso, permette di avere un rapporto quality/bitrate migliore. Il supporto alla codifica in Flash Video è ovviamente presente sia in prodotti commerciali (gli ovvii prodotti Adobe e altri) che in prodotti free (come ad esempio mencoder e ffmpeg). L’audio nei Flash Video è tipicamente codificato in mp3, tuttavia dalla versione Flash Player 9 Update 3 è possibile codificare l’audio anche nel formato aac, da tale versione in poi dovrebbero anche essere supportati container alternativi al flv come mp4 e varianti, 3gp e mov.

Negli esempi che seguiranno utilizzeremo mencoder e non ffmpeg (programma che abbiamo conosciuto nel post precedente) per un semplice motivo: ffmpeg non include il supporto a lame ed xvid e quindi dovremmo compilarlo, visto che mencoder il supporto a questi formati ce l’ha già utilizzeremo quest’ultimo.

Ora si arriva al sodo, essendo youtube uno dei maggiori contributors al successo di questo formato parecchi file che potremmo voler convertire avranno questa sorgente. Esistono una quantità sempre crescente di programmi per scaricare filmati da youtube, quello scelto da me è youtube-dl, programma per linux installabile via apt e facilmente utilizzabile invocando $nome_programma $url_file come in esempio:

sudo apt-get install youtube-dl
youtube-dl http://www.youtube.com/watch?v=Fo3zUXzeoEk

Per prendere visione dei file scaricati in questo modo è sufficiente digitare:

mplayer -identify ./Fo3zUXzeoEk.flv

…dal file appena scaricato è possibile passare facilmente ad un avi codificato con xvid e lame digitanto il seguente comando valido per mencoder:

mencoder Fo3zUXzeoEk.flv -o Fo3zUXzeoEk.avi -oac mp3lame -lameopts cbr:br=64 -srate 22050 -ovc xvid -xvidencopts fixed_quant=6

Se siete interessati ad una codifica con una qualità un pò più elevata il seguente comando fà al caso vostro:

mencoder Fo3zUXzeoEk.flv -o Fo3zUXzeoEk.avi -oac mp3lame -lameopts cbr:br=64 -srate 22050 -ovc xvid \
        -xvidencopts chroma_opt:chroma_me:hq_ac:trellis:gmc:vhq=4:subq=6:max_bframes=2:quant_type=h263:fixed_quant=6

Queste sono sostanzialmente le opzioni che abbiamo utilizzato per convertire i DVD viste in questo post. Tenete presente però che se il file originale è codificato con una bassa qualità (come spesso accade per i video scaricati da youtube) è praticamente inutile cercare una qualità della codifica migliore perchè difficilmente otterrete i risultati sperati. Per un video di qualità media rispetto a quelli che si trovano in rete sono più che sufficienti le impostazioni di default.

From avi to flv

La conversione da avi a flv si effettua molto semplicemente col comando seguente:

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

…utlizzando libavcodec per la codifica del filmato le due opzioni essenziali per la codifica sono vcodec e vqscale necessari per dire a mencoder quale codec utilizzare e con che qualità codificare il filmato, per quest’ultimo valore valgono le considerazioni fatte in questo post, le altre opzioni servono per aggiungere qualità alla codifica, se desiderate ulteriori informazioni a riguardo chiedete pure. L’audio è un semplice stream mp3 codificato con valori medio-bassi, non credo che sia il caso di dilungarsi oltre con le opzioni di lame, anche in questo caso però se desiderate avere ulteriori informazioni chiedete pure.

Lo step successivo è la pubblicazione online, esisto una quantità sempre crescente di player multimediali scritti in flash per il web, basta farsi un giro su sourceforge per trovarne a decine, comunque il mio personalissimo gusto ha selezionato FlowPlayer: questo player è disponibile sia in versione a pagamento che con licenza GPL, ha il supporto per flv, h264 e jpg, è facilmente configurabile e custommizzabile tramite javascript e ultimo, ma non per importanza, ha una documentazione ottima.

Dimenticavo: visto che l’inclusione di oggetti multimediali tramite il tag html object presenta qualche problema di compatibilità multi-browser vi consiglio di dare un’occhiata prima a questo articolo, costituisce un vero must read!

Related post:

Comments are closed.