[repost] Anche tu fichetto, con il tuo sistema di video in flash (con free software)

Ovvero: come farsi in casa, una piccola piattaforma di publishing video in flash, come va tanto di moda ora, con strumenti liberi.

Cosa ci serve

Un po’ di software: ffmpeg, lame, un flash player (suggerisco flowplayer), flvtool2. I primi due, sono di norma disponibili nella vostra distribuzione (ma aspettate un attimo), gli altri due vanno recuperati nei rispettivi siti (link in fondo).

Un po’ di informazioni:

1. alcune distribuzioni, tra cui debian, forniscono una versione di ffmpeg senza il supporto mp3 (che è patent). Il supporto mp3 è un requisito per produrre file di tipo flv. Per questa ragione, non potete prescindere, che io sappia da un encoder mp3. Le soluzioni sono quelle di prendere ffmpeg altrove, tipicamente da debian-multimedia (sempre in fondo), ovvero i pacchetti unofficial di Marillat. Per lo stesso motivo, lame non è nemmeno disponibile in debian.

2. se volete creare un vero sistema di automazione dovrete integrare i vari passi in un vostro codice – linguaggio a piacere -, che ovviamente, non ha tanto senso qui fornire.

Passaggi

Diamo per scontato che si abbia a disposizione ffmpeg e lame correttamente installati e con supporto mp3. L’idea di fondo è quella di convertire i nostri filmati con le seguenti caratteristiche:

– formato video flv

– dimensione “da web”

– formato audio mp3 con un rate preciso (altrimenti non funziona)

Il comando ffmpeg per fare questo è:


ffmpeg -i input.avi -ar 22050 -ab 32 -f flv -s 320x240 output.flv

320×240 è una misura abbastanza tipica da web, ma siete ovviamente liberi di acconciare diversamente laddove abbiate esigenze differenti. Le altre impostazioni invece, relative all’audio, sono da considerarsi una scelta obbligata.

La considerazione più ovvia, è che è possibile integrare questo comando, in un ambito batch/automatizzato per creare una vera piattaforma di publishing video. Ci arriviamo.

Metadati

Il formato flv supporta delle metainformazioni (durata, framerate, ecc). ffmpeg può integrare queste informazioni come no, a seconda della versione che avete installato. La mia versione (Marillat/debian-multimedia) lo supporta. Diversamente, dovete iniettare questi metadata con l’ausilio di flvtool2.

Il comando classico è il seguente:


flvtool2 -U output.flv

Come ho detto, personalmente non mi serve, ma potreste averne bisogno se usate una versione non recente di ffmpeg (diciamo più vecchia di sei mesi).

Il player

Personalmente, ho trovato ottimo flowplayer, sempre in licenza libera, ma visivamente accattivante, con una pletora di opzioni sia di configurazioni, che di possibilità: è skinnable, supporta playlist, download progressivi, streaming, thumbnails, e un api per lo scripting js – che permette di controllare l’applet via javascript.

Nella sua versione più “semplice”, richiede di essere presente nella directory dove avete codificato il vostro flv, e un frammento di html tipo questo:

<object type="application/x-shockwave-flash" data="FlowPlayer.swf"

width="320" height="262" id="FlowPlayer">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="FlowPlayer.swf" />
<param name="quality" value="high" />
<param name="scale" value="noScale" />
<param name="wmode" value="transparent" />
<param name="flashvars" value="config={videoFile: 'output.flv'}" />
</object>

Fondere il tutto

Come si diceva, mescolando alla bisogna quanto sopra, è eventualmente possibile creare un piccola o grossa struttura/piattaforma di pubblishing, semplicemente usando uno dei linguaggi di vostro gradimento, e automatizzando questi passaggi, o decidere vari tipi di automatismo, YMMV.

Cosa può andare storto

Fondamentalmente, l’encoding, in particolare quello audio. Sinceratevi della versione di ffmpeg, lame, ecc, e magari, provate ad esplicitare l’opzione -acodec mp3 se ottenete video senza audio.

Un equivalente comando di conversione, si ottiene anche con mencoder, con un comando tipo:


mencoder input.avi -o output.flv -oac mp3lame -lameopts abr:br=56 -srate 22050 \
-of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames \
-ovc lavc -lavcopts vcodec=flv

ma personalmente preferisco ffmpeg.

Risultato

Collegamenti

flowplayer

flvtool2

debian-multimedia

3 comments

  1. Nota: il video non va perchè il post è vecchio. Le istruzioni rimangono per lo più, attuali. Va aggiornata la parte di flowplayer.

  2. Allo stato attuale, secondo me, conviene orientarsi verso l’html 5 e abbandonare il player in flash, vedi jplayer o videojs…

  3. Come non essere d’accordo con te, Fabio? La valenza di questo post è solo “storica”. Esso è datato, in prima pubblicazione, “Fri, 08 Jun 2007 02:56:40 +0000”. Lo mantengo anche perchè la parte interessante, quella su ffmpeg è ancora valida. 🙂

Leave a Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.