streaming

STREAMING DE FITXERS DE VIDEO AMB ICECAST

Seguint el post sobre streaming amb icecast, ara amb el mateix esquema , es tracta de fer streaming de video "aprofitant" el mateix servidor Icecast que ja tenim montat. En principi de la configuració del servidor no caldrà tocar res, ja que el que variarà seran els source clients (el que envia el flux d'audio, o en aquest cas video al servidor, per tal que aquest fagi l'streaming). Primer veurem com fer streaming de video amb ezstream i després amb oggfwd de fitxers de video. Cal tenir en compte que icecast només suporta format theora per a video, per tal el flux de video enviat des del source clients ha d'estar amb aquest format de compressió de video.
 
EZSTREAM
En aquest cas ho farem des del mateixa màquina on hi ha el servidor icecast, i ho farem seguint aquests manual. Si no tenim instal·lat ffmpeg2theora, també l'hem d'instal·lar. Com que ezstream ja el tenim instal·lat i funcionant, només caldrà editar un altre fitxer de configuració, en el nostre cas, /etc/icecast2/ezstream_video.cfg , amb el contingut que ens indica al manual. En aquest li indiquem varis paràmetres de com trasnmetre el flux, com fer la conversió a theora, i els adaptem al nostre cas:
 
<url>http://ip_icecst_server:8000/video.ogg</url>
<sourcepassword>passwor_de_source</sourcepassword>
 
<svrinfoname>musa video</svrinfoname>>
<svrinfourl>http://musa.poperbu.net</svrinfourl>
<<svrinfogenre>video</svrinfogenre>
<svrinfodescription>video en ogg</svrinfodescription>
 
Bàsicament hem hagut de canviar el password de source, la màquina on hi ha el servidor stream i punt de muntatge, i el fitxer que volem enviar al servidor, els altres paràmetres els podem deixar igual. Dins dels apartats de veiem que hi ha la configuració de com fer la codificació del vídeo, tant si el fitxer font és un AVI o un MPEG, que està configurat de tal forma que aquesta feina la fa ffmpeg2theora:
 


...

<reencode>
        <enable>1</enable>
        <encdec>
                <!-- Support for AVI decoding (input files) -->
                <format>THEORA</format>

                <match>.avi</match>

           <decode>ffmpeg2theora -x 192 -y 128 -a -1 -v 0 @T@ -o /dev/stdout</decode>
        </encdec>
       
     <encdec>
                <!-- Support for MPG decoding (input files) -->
                <format>THEORA</format>
                <match>.mpg</match>
                <decode>ffmpeg2theora -a -1 -v 2 @T@ -o /dev/stdout</decode>
        </encdec>
        <encdec>

... 
 





Un cop tenim el fitxer de configuració editat, podem executar ezstream per tal d'enviar el flux de video a Icecast:
 
ezstream -c /etc/icecast2/ezstream_video.cfg
 

I des de qualsevol client, per exemple vlc, podem veure aquest flux.

NOTA: Els paràmetres de tamany, qualitat, bitrate, etc..es poden modificar per tal d'adaptar-lo a l'ampla de banda, cpu, memòria, etc... Aquí simplement hem volgut veure com montar aquest streaming de forma senzilla.

OGGFWD
Oggfwd és una eina de V2V , que ens permet de forma molt senzila fer un pipe cap a un servidor Icecast del que li enviem, en format ogg theora per l'entrada. Instal·lar-lo és tant fàcil com baixar-nos el binari directament que està a la web, i copiar-lo a /usr/bin, així ja el tenim com una comanda més:
 
wget http://www.v2v.cc/~j/ffmpeg2theora/oggfwd/oggfwd.linux.bin
cp oggfwd.linux.bin /usr/bin/oggfwd
 

En aquest cas, ho farem des d'una màquina diferent al servidor Icecast. Per exemple, si volem enviar un arxiu avi, doncs, amb ffmpeg2theora convertim l'arxiu avi a theora i la sortida la passem a oggfwd amb els paràmetres del servidor Icecast (password de source i punt de muntatge):
 
ffmpeg2theora /media/sda5/avi/animation/blender/ChairDivXL.avi -x 400 -y 256 -o - | oggfwd 192.168.1.2 8000 password_source /video2
 

I un altre cop, amb vlc per exemple, podem veure l'streaming d'aquest flux de xarxa.

NOTA: En aquest cas només hem baixat el tamany del video, això ho fem des de ffmpeg2theora. TAmbé podem baixar la qualitat, el bitrate Evidentment, si el video és de molta qualitat consumirem molts recursos tant de xarxa com de cpu i memòria, tant en el servidor Icecast com en el client source.

Doncs hem vist com fer streaming de video (fitxers) des de dos source clients diferents. Hem vist una configuració molt bàsica, però el que hem fet amb Oggfwd i ezstream, també ho podem fer amb altres programes.
blog comments powered by Disqus

Additional information