Pd2vlc

De fablabo
Révision de 1 septembre 2016 à 15:48 par Oli44 (discussion | contributions) (du côté de chez Puredata)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher


Patch puredata pour commander le lecteur VLC par Telnet

Pd2vlc Capture du 2016-05-04 16-38-47.png

Contributeur·ice·s

Statut du projet

Experimental

Statut de la publication

License

GFDL

Inspiration

sur une idée du recyclartiste Julien Merlaud

Machines

Matériaux




Objectifs

Le but est d'utiliser des PC hors d'âge sous Linux, Rasbian, MacoOS ou Windows comme lecteurs de vidéo. Le choix de VLC est simple: c'est le seul lecteur qui marche sur autant de plateformes, en profitant potentiellement de l'accélération matérielle. On peut le lancer avec une interface telnet qui permet de le commander à distance via une simple connexion réseau TCP pas du tout sécurisée. Le patch Puredata partagé ici permet potentiellement d'en commander plusieurs simultanément distribuées sur une grappe de machines connectées.

Pd2vlc Capture du 2016-05-04 16-38-47.png

Mise en oeuvre

Il faut lancer VLC avec les options permettant d'écouter les commandes réseau. On doit spécifier le nom (ou l'IP, quand on a plusieurs interfaces) de la machine et un numéro de port. Sous Mac/Linux, on peut utiliser le nom Avahi/Bonjour sans souci. La doc originale est disponible sur le site de videolan : https://wiki.videolan.org/Console/. Pour avoir plus d'information sur les commandes disponibles, il suffit de taper $ vlc -h | less en ligne de commande sous Linux.

Il faut au préalable enregistrer une playlist, peu importe son format, m3u ou xspf.

Version utilisée: VLC media player 2.1.6 Rincewind pour Linux X86_64. Marche aussi avec la version Rasbian mais sans accélération graphique (needs recompile).


Les commandes VLC importantes

--intf rc

Il s'agit du choix d'interface. Attention, quand on la lance, si on a l'option autostart désactivée, aucune fenêtre n’apparaît au démarrage.

--rc-host truc.local:44400
--rc-host 192.168.1.100:44400

On donne le nom de la machine ou son IP, ainsi que le numéro de port, supérieur à 1000. Il faut évidemment que le firewall laisse ce port accessible en TCP.

Sous Linux, ça donne ça:

xubuntu@Astro:~$ vlc --intf rc --rc-host Astro.local:44400 --no-playlist-autostart /home/xubuntu/liste.xspf

Sous Mac OSX, ça donne ça:

/Applications/VLC.app/Contents/MacOS/VLC --intf rc --rc-host 192.168.1.99:44400 --no-playlist-autostart ./playlist.m3u

du côté de chez Puredata

Il y a 3 abstractions et un simple fichier de demarrage avec une interface simplifiée. Si les commentaires dans le code ne vous suffisent pas pour comprendre le fonctionnement, get back to me, dude!

Fichier:Pd2vlc20160901.zip

Pour mémoire, toute première version: Fichier:Pd2VLC 20160504.tar.gz

configuration de Puredata

J'ai utilisé Pd-L2ork , paquet Burrito Supreme 64 bit , Février 2016. Les 2 librairies vraiment nécessaires sont mrpeach (objets [tcpclient] et [str to_list] et moocow ([any2string], quoi que ces 2 derniers devraient pouvoir être réécrits en purepd.

Résultat(s)

Pas mal même s'il y a de la latence.

Evolution(s)

On peut imaginer implémenter le même groupe de commande dans Arduino, Processing, Python...