Realizzare uno streaming audio/video con VideoLan (vlc)

Dott. Emiliano Bruni, info/at/ebruni_dot_it
Copyright 2005 Emiliano Bruni

Ultima modifica: 2006/10/23
Licenza Creative Commons

Abstract.

Anche sotto Linux iniziano finalmente ad essere presenti degli strumenti per realizzare streaming audio/video efficaci, affidabile e con alti livelli di prestazioni. Uno di questi prodotti è una sorpresa in quanto il nome lascia intendere tutt'altro. Il suo nome è "vlc" che sta per "VideoLan client". Ma a dispetto del nome è anche un server di streaming veramente affidabile. In questo articolo vedremo come installarlo e configurarlo per ottenere uno streaming da una scheda di acquisizione video analogica.

Perchè proprio vlc

In un mio precedente articolo dicevo di vlc: "Lo streaming fatto con VideoLan funziona solo se il client e' VideoLan e ha un numero limitattissimissimissimo di schede di acquisizione supportate". Ovviamente due sono le cose: o sbagliavo o, nel tempo il prodotto si è evoluto tantissimo.

Ambedue le possibilità possono essere vere. Infatti, se da una parte è vero che la documentazione di VLC lascia un po' a desiderare e bisogna un attimo spulciare la documentazione e il sito degli sviluppatori per capire che VLC è un prodotto completo, funzionante su tutte le piattaforme e con un grosso punto di forza che però risulta anche una debolezza allo stesso tempo, dei codec interni che gli permettono di girare su più piattaforme permettendo di vedere filmati e audio senza la necessità di codec esterni ma che ne limitano l'usabilità a causa di una esigua presenza di questi.

Ma anche cosi VLC gira su Windows, Mac OS X, Linux, BeOS, FreeBSD, OpenBSD e sui palmari con supporto GPE riuscendo ad aprire e/o a creare filmati nei formati MPEG-1/2,DIVX (1/2/3), MPEG-4, DivX 5, XviD, 3ivX D4, H.264, Quicktime, DV, Cinepak, Theora, H.263 / H.263i, MJPEG (A/B), WMV 7/8/9, Indeo Video 2/4/5, Real Video e, come detto, tutte queste funzionalità sono già integrate "dentro" vlc senza bisogno di codec esterni.

Configurazione

Prendiamo ad esempio il file di configurazione vlc.linuxday.conf usato durante il LinuxDay 2006

del all

new onair7010 broadcast enabled
setup onair7010 input v4l:/dev/video0:adev=/dev/dsp:audio=1:norm=pal
setup onair7010 output #duplicate{dst="transcode{vcodec=DIV3,vb=256,scale=1,acodec=mp3,ab=64,channels=2}:duplicate{dst=standard{access=mmsh,mux=asfh,dst=:7010},dst=standard{access=http,mux=asf,dst=:7011}",dst="transcode{vcodec=DIV3,vb=800,scale=1,acodec=mp3,ab=128,channels=2}:standard{access=file,mux=avi,dst=/tmp/test.avi}"}
setup onair7010 option v4l-width=400 
setup onair7010 option v4l-height=300 
##setup onair7010 option v4l-width=720 
##setup onair7010 option v4l-height=576 
setup onair7010 option v4l-caching=300 
setup onair7010 option v4l-chroma="" 
setup onair7010 option v4l-samplerate=44100 
setup onair7010 option v4l-frequency=-1 
setup onair7010 option v4l-fps=-1.000000 
setup onair7010 option v4l-channel=1 
setup onair7010 option v4l-tuner=-1 
setup onair7010 option v4l-audio=-1 
setup onair7010 option v4l-stereo 
setup onair7010 option v4l-brightness=-1 
setup onair7010 option v4l-colour=-1 
setup onair7010 option v4l-hue=-1 
setup onair7010 option v4l-contrast=-1 
setup onair7010 option no-v4l-mjpeg 
setup onair7010 option v4l-decimation=1 
setup onair7010 option v4l-quality=100
setup onair7010 option sout-ffmpeg-keyint=24
setup onair7010 option sout-asf-title='Linuxday 2006'
setup onair7010 option sout-asf-author='Telug'
setup onair7010 option sout-asf-copyright='Common Creative 2.5' 

eseguito con lo script vlc.run

#!/bin/bash
vlc --intf http --extraintf telnet --vlm-conf vlc.linuxday.conf --daemon