Streamer une caméra en direct

Heureux possesseur (par filiation) d'une caméra DV possédant une sortie Firewire ainsi qu'un ordinateur portable disposant d'une entrée de même, j'ai pu tester les joies du streaming video en direct. Le concept : vous avez une caméra dans les mains, vous filmez, et ce que vous filmez est retransmis par un réseau Ethernet ou Wifi à un ou plusieurs récepteurs.

Alors, voici en détail comment ça peut marcher avec une Ubuntu Dapper desktop :

Numéro un : équipez-vous de vlc (y compris wxvlc et vlc-plugin-alsa si besoin). Attention, il vous faut la version 0.8.5, disponible en .deb sur la page des nightly builds de VLC. Ensuite, il vous faut dvgrab pour que VLC soit capable de lire ce qu'envoie votre caméra DV par le câble Firewire.

Une fois équipé, vous pouvez tester si votre caméra DV marche bien et si elle fait copain-copine avec dvgrab : branchez votre caméra, allumez-la en mode "caméra", et :

$ dmesg | tail

La sortie de dmesg doit vous dire si la connexion Firewire est OK.

$ sudo dvgrab

Interrompez son exécution au bout de 30 secondes (Ctrl-C). Un fichier dvgrab-001.avi a dû être créé dans le dossier courant si tout s'est bien passé. Regardez-le avec un lecteur multimédia pour vérifier que votre caméra envoie des images correctes.

Et maintenant, miracle des miracles ! On va combiner dvgrab et vlc :

$ sudo dvgrab - | vlc - :demux=rawdv

Normalement, vous devez voir "en direct" l'image de votre caméra dans VLC. On va maintenant s'occuper de streamer tout ça :

$ sudo dvgrab - | vlc --no-sub-autodetect-file - :demux=rawdv  \
   ":sout=#transcode{vcodec=mp4v,vb=256,scale=0.5,acodec=mpga,ab=112,channels=2}\
   :duplicate{dst=std{access=http,mux=ts,dst=:1234}}"

(une seule ligne, le passage à la ligne étant symbolisé par \)

Avec un autre VLC, vous pouvez maintenant vous connecter à celui que vous venez de lancer :

$ vlc http://localhost:1234/

Pour avoir un retour sur le streaming en cours, utilisez :

$ sudo dvgrab - | vlc --no-sub-autodetect-file - :demux=rawdv  \
   ":sout=#transcode{vcodec=mp4v,vb=256,scale=0.5,acodec=mpga,ab=112,channels=2}\
   :duplicate{dst=display,dst=std{access=http,mux=ts,dst=:1234}}"

Un truc amusant à faire avec ça : mettre le laptop dans un sac à dos, avec un casque pour le retour son, un micro type SHURE SM58 avec un petit câble (60 cm) XLR - Jack, et la caméra en Firewire... ne pas oublier un AP wifi à proximité si l'on veut streamer ! Pour simplement enregistrer sur le disque dur du portable, pas besoin, bien sûr...