Streaming audio/video avec Gstreamer et Icecast
vinux | 14 décembre 2009
Gstreamer est un framework multimédia opensource pour systèmes Unix.
Voici comment utiliser ce framework pour diffuser un flux audio/vidéo vers un serveur Icecast2 préalablement configuré et opérationnel.
- Pré requis : gstreamer-tools, un serveur icecast2 fonctionnel (relai)
- Si vous êtes sous Ubuntu, Gstreamer est déjà inclus dans la distribution, il vous suffit juste d’installer le paquet gstreamer-tools
# sudo apt-get install gstreamer-tools
Quelques exemples d’utilisation
- Génération d’une mire avec son (à des fins de test) et diffusion vers un serveur Icecast2 (ici 127.0.0.1) | Exemple vidéo : mire.ogg
# gst-launch videotestsrc ! ffmpegcolorspace ! video/x-raw-yuv,width=320,height=240 ! clockoverlay ! cairotextoverlay text="stream currently unavailable" shaded-background=true ! theoraenc quality=5 ! queue ! oggmux name=mux audiotestsrc ! audioconvert ! vorbisenc quality=0.1 ! queue ! mux. mux. ! queue ! shout2send ip=127.0.0.1 port=8000 password=monpass mount=mire.ogv
- Diffusion d’un flux provenant d’une source V4L2 (par exemple webcam) vers un serveur Icecast2 (live.monsite.com) et ajout d’un logo incrusté (logo_2.png) avec un texte
# gst-launch multifilesrc location=logo_2.png ! "image/png,framerate=1/1" ! pngdec ! alphacolor ! alpha method=0 alpha=0.5 ! videomixer name=mixer ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! theoraenc quality=16 ! oggmux ! shout2send ip=live.monsite.com port=8000 password=monpass mount=live.ogv v4l2src ! ffmpegcolorspace ! cairotextoverlay text="Plus d'infos - www.monsite.com" shaded-background=true ! clockoverlay halign=right valign=top text="En direct" shaded-background=true ! timeoverlay ! videoscale ! alpha method=0 alpha=1.0 ! mixer.


Après l’annonce de Microsoft qui va proposer une fenêtre de sélections de navigateurs web dans le futur Windows 7, Opera souhaiterai étendre cette fonctionnalité à Linux et à Mac.
Google a annoncé sa volonté de sortir Google Chrome OS d’ici 2010.




