Pd2vlc
Patch puredata pour commander le lecteur VLC par Telnet
Contributeur·ice·s
Statut du projet
Experimental
Statut de la publication
License
GFDL
Inspiration
sur une idée du recyclartiste Julien Merlaud
Fichiers source
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.
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!
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...