{"id":45,"date":"2011-07-13T15:41:41","date_gmt":"2011-07-13T13:41:41","guid":{"rendered":"http:\/\/www.tenzione.it\/?p=45"},"modified":"2011-07-13T15:41:41","modified_gmt":"2011-07-13T13:41:41","slug":"repost-anche-tu-fichetto-con-il-tuo-sistema-di-video-in-flash-con-free-software","status":"publish","type":"post","link":"https:\/\/www.tenzione.it\/?p=45","title":{"rendered":"[repost] Anche tu fichetto, con il tuo sistema di video in flash (con free software)"},"content":{"rendered":"<p>Ovvero: come farsi in casa, una piccola piattaforma di publishing video in flash, come va tanto di moda ora, con strumenti liberi.<\/p>\n<p><strong>Cosa ci serve<\/strong><\/p>\n<p>Un po&#8217; 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).<\/p>\n<p>Un po&#8217; di informazioni:<\/p>\n<p>1. alcune distribuzioni, tra cui debian, forniscono una versione di ffmpeg senza il supporto mp3 (che \u00e8 patent). Il supporto mp3 \u00e8 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 \u00e8 nemmeno disponibile in debian.<\/p>\n<p>2. se volete creare un vero sistema di automazione dovrete integrare i vari passi in un vostro codice &#8211; linguaggio a piacere -, che ovviamente, non ha tanto senso qui fornire.<\/p>\n<p><strong>Passaggi<\/strong><\/p>\n<p>Diamo per scontato che si abbia a disposizione ffmpeg e lame correttamente installati e con supporto mp3. L&#8217;idea di fondo \u00e8 quella di convertire i nostri filmati con le seguenti caratteristiche:<\/p>\n<p>&#8211; formato video flv<\/p>\n<p>&#8211; dimensione &#8220;da web&#8221;<\/p>\n<p>&#8211; formato audio mp3 con un rate preciso (altrimenti non funziona)<\/p>\n<p>Il comando ffmpeg per fare questo \u00e8:<\/p>\n<p><code><br \/>\nffmpeg -i input.avi -ar 22050 -ab 32 -f flv -s 320x240 output.flv<br \/>\n<\/code><\/p>\n<p>320&#215;240 \u00e8 una misura abbastanza tipica da web, ma siete ovviamente liberi di acconciare diversamente laddove abbiate esigenze differenti. Le altre impostazioni invece, relative all&#8217;audio, sono da considerarsi una scelta obbligata.<\/p>\n<p>La considerazione pi\u00f9 ovvia, \u00e8 che \u00e8 possibile integrare questo comando, in un ambito batch\/automatizzato per creare una vera piattaforma di publishing video. Ci arriviamo.<\/p>\n<p><strong>Metadati<\/strong><\/p>\n<p>Il formato flv supporta delle metainformazioni (durata, framerate, ecc). ffmpeg pu\u00f2 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&#8217;ausilio di flvtool2.<\/p>\n<p>Il comando classico \u00e8 il seguente:<\/p>\n<p><code><br \/>\nflvtool2 -U output.flv<br \/>\n<\/code><\/p>\n<p>Come ho detto, personalmente non mi serve, ma potreste averne bisogno se usate una versione non recente di ffmpeg (diciamo pi\u00f9 vecchia di sei mesi).<\/p>\n<p><strong>Il player<\/strong><\/p>\n<p>Personalmente, ho trovato ottimo flowplayer, sempre in licenza libera, ma visivamente accattivante, con una pletora di opzioni sia di configurazioni, che di possibilit\u00e0: \u00e8 skinnable, supporta playlist, download progressivi, streaming, thumbnails, e un api per lo scripting js &#8211; che permette di controllare l&#8217;applet via javascript.<\/p>\n<p>Nella sua versione pi\u00f9 &#8220;semplice&#8221;, richiede di essere presente nella directory dove avete codificato il vostro flv, e un frammento di html tipo questo:<\/p>\n<p><code> <\/code><\/p>\n<div id=\"_mcePaste\"><code>&lt;object type=\"application\/x-shockwave-flash\" data=\"FlowPlayer.swf\"<\/code><\/div>\n<p><code><\/p>\n<div id=\"_mcePaste\">width=\"320\" height=\"262\" id=\"FlowPlayer\"&gt;<\/div>\n<div id=\"_mcePaste\">&lt;param name=\"allowScriptAccess\" value=\"sameDomain\" \/&gt;<\/div>\n<div id=\"_mcePaste\">&lt;param name=\"movie\" value=\"FlowPlayer.swf\" \/&gt;<\/div>\n<div id=\"_mcePaste\">&lt;param name=\"quality\" value=\"high\" \/&gt;<\/div>\n<div id=\"_mcePaste\">&lt;param name=\"scale\" value=\"noScale\" \/&gt;<\/div>\n<div id=\"_mcePaste\">&lt;param name=\"wmode\" value=\"transparent\" \/&gt;<\/div>\n<div id=\"_mcePaste\">&lt;param name=\"flashvars\" value=\"config={videoFile: 'output.flv'}\" \/&gt;<\/div>\n<div id=\"_mcePaste\">&lt;\/object&gt;<\/div>\n<p><\/code><\/p>\n<p><strong>Fondere il tutto<\/strong><\/p>\n<p>Come si diceva, mescolando alla bisogna quanto sopra, \u00e8 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.<\/p>\n<p><strong>Cosa pu\u00f2 andare storto<\/strong><\/p>\n<p>Fondamentalmente, l&#8217;encoding, in particolare quello audio. Sinceratevi della versione di ffmpeg, lame, ecc, e magari, provate ad esplicitare l&#8217;opzione -acodec mp3 se ottenete video senza audio.<\/p>\n<p>Un equivalente comando di conversione, si ottiene anche con mencoder, con un comando tipo:<\/p>\n<p><code><br \/>\nmencoder input.avi -o output.flv -oac mp3lame -lameopts abr:br=56 -srate 22050 \\<br \/>\n-of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames \\<br \/>\n-ovc lavc -lavcopts vcodec=flv<br \/>\n<\/code><\/p>\n<p>ma personalmente preferisco ffmpeg.<\/p>\n<p><strong>Risultato<\/strong><\/p>\n<p><object id=\"FlowPlayer\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"320\" height=\"262\" codebase=\"http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,40,0\"><param name=\"data\" value=\"\/~mizio\/FlowPlayer.swf\" \/><param name=\"allowScriptAccess\" value=\"sameDomain\" \/><param name=\"quality\" value=\"high\" \/><param name=\"scale\" value=\"noScale\" \/><param name=\"wmode\" value=\"transparent\" \/><param name=\"flashvars\" value=\"config=                                          videoFile: '\/~mizio\/output.flv',                                          autoPlay: false,                                          loop: false                                        \" \/><param name=\"src\" value=\"\/~mizio\/FlowPlayer.swf\" \/><embed id=\"FlowPlayer\" type=\"application\/x-shockwave-flash\" width=\"320\" height=\"262\" src=\"\/~mizio\/FlowPlayer.swf\" flashvars=\"config=                                          videoFile: '\/~mizio\/output.flv',                                          autoPlay: false,                                          loop: false                                        \" wmode=\"transparent\" scale=\"noScale\" quality=\"high\" allowscriptaccess=\"sameDomain\" data=\"\/~mizio\/FlowPlayer.swf\"><\/embed><\/object><\/p>\n<p><strong>Collegamenti<\/strong><\/p>\n<p><a title=\"flowplayer\" href=\"http:\/\/flowplayer.sourceforge.net\/\" target=\"_blank\">flowplayer<\/a><\/p>\n<p><a title=\"flvtool2\" href=\"http:\/\/rubyforge.org\/projects\/flvtool2\/\" target=\"_blank\">flvtool2<\/a><\/p>\n<p><a title=\"debian-multimedia\" href=\"http:\/\/www.debian-multimedia.org\" target=\"_blank\">debian-multimedia<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217; 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,12],"tags":[15,50,52,42,51,17,16,53],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-tensioni","category-ti-ricordi","tag-blog","tag-ffmpeg","tag-flowplayer","tag-geek","tag-multimedia","tag-robba","tag-vecchi-post","tag-youtube"],"_links":{"self":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":2,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions\/47"}],"wp:attachment":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}