streaming sur son réseau local en quelques minutes

genre, vouloir mater un film dans son lit, avec le film situé sur le disque dur de son ordinateur de bureau

Voici la situation : j'ai un laptop, avec un espace disque limité, et pas envie d'avoir un disque dur usb qui risque de trop chauffer sur le lit... (comment ça je quitte jamais mon lit?)

La solution que j'ai utilisé pendant quelques temps était le partage réseau. Je lisais directement les vidéos depuis un partage SMB/CIFS. Parfois, il m'arrivait de copier le fichier directement le fichier sur mon disque local.

Je suis passé à une autre méthode : le streaming, ou plutôt en bon français la lecture en continu. Cela me permet d'éviter de monter un partage réseau, ou de copier le fichier sur mon disque local (donc je ne remplis pas mon disque inutilement). On peut faire cette manipulation très simplement avec VLC. Histoire d'être vraiment efficace en minimisant les déplacements du lit vers le bureau, chargeons-nous de contrôler le stream depuis le laptop, idéalement via un clickodrome ou une interface web.

Pour cette manipulation, il nous faut :- un ordinateur fixe avec VLC d'installé (avec un maximum de codecs, sans oublier les pages HTML pour l'interface web); l'OS importe peu, mais dans cet exemple il fonctionne sous Mandriva Linux 2007.1- un ordinateur fixe, lui aussi avec VLC dessus. Encore une fois, l'OS importe peu, mais dans cet exemple il fonctionne sous Mac OS X 10.4.10- les ports 8080 et 8081 libres et ouverts sur l'ordinateur fixe- un réseau local qui fonctionne, par exemple : ethernet, wifi, pigeon voyageur (bon d'accord celui-là c'est pour déconner !)

Sur l'ordinateur de bureau, on se trouve un répertoire avec des vidéos dedans. Si vous n'avez pas de vidéo sur votre ordinateur, vous pouvez utiliser des fichiers audios. Si vous n'en avez pas non plus, sachez qu'il y a plein d'endroits où on en télécharge gratuitement et légalement (ce billet ne traite pas le problème du contenu \^\^ ). Ensuite, il suffit de lire la documentation disponible sur le wiki de VLC, anglophone certes, mais en images. Il suffit donc de suivre les images et de lire un peu (ou de faire traduire par un outil sur le web). On en profitera pour le régler en streaming http sur le port 8080. Oui, mais... mais là c'est graphique, faut être sur l'ordinateur de bureau pour mettre sa playlist, et ça, c'est pas bien parce qu'il faut se lever. On remarque alors qu'on peut lancer VLC depuis la ligne de commande, et qu'il y a plein d'exemples ! Si j'essaie l'une d'entre elles pour streamer ma vidéo en http, cela donne ceci :

vlc -vvv Digital_Underground.tv_-_Episode_0005.avi --sout '#standard{access=http,mux=ogg,dst=nastymachine.anotherhomepage.loc:8080}'

On remarquera vite que "-vvv" rend le truc très bavard, le truc .avi c'est la vidéo, tandis que "--sout" permet de manipuler la sortie. On l'envoie donc via "access=http", le nom de la machine étant nastymachine.anotherhomepage.loc, et on stream tout ça sur le port 8080.

Si jamais on essaie ceci en ssh depuis le laptop (minimiser les déplacements !), on se rend vite compte d'un problème : ça foire, parce que VLC ne sait pas où s'afficher (Error: Unable to initialize gtk, is DISPLAY set properly?). A partir de là, soit on fait un export DISPLAY (perso, j'aime pas), soit on utilise l'interface web de VLC, qui est abordée dans le guide utilisateur.

Je relance donc ma vidéo dans mon ssh, de cette manière :

vlc -vvv Digital_Underground.tv_-_Episode_0005.avi --sout '#standard{access=http,mux=ogg,dst=nastymachine.anotherhomepage.loc:8080}' -I http --http-src /usr/share/vlc/http/ --http-host nastymachine.anotherhomepage.loc:8081

Ici, on rajoute le type d'interface (-I http), on indique où sont situées les pages HTML (le chemin est celui de ma Mandriva, il n'est sans doute pas le même sur d'autres distribs), et on spécifie le nom d'hôte et le port. Une fois ceci fait, on prend notre Firefox adoré pour se rendre sur http://nastymachine:8081 pour contrôler VLC. Les paranoïaques pourront toujours lancer l'interface en https (à eux de fournir clés et certificats), les amateurs de web 2.0 pourront trouver ou créer une nouvelle interface web, et la tester en spécifiant le chemin dans la commande.

Il est possible de transcoder la vidéo avant de la diffuser, le choix du format de diffusion est possible, et au lieu du http, on peut faire du rtp. Le wiki de VLC est très bien fait, une bonne documentation que je recommande.

Je tiens à préciser qu'il ne faut pas manger gras en regardant un film, je ne saurais être tenu pour responsable de prises de poids suite au manque d'exercice occasionné par les manipulations décrites ici. Pensez aussi à éteindre votre laptop et à le poser sur un endroit stable si vous sentez que vous vous endormez ;)