Utiliser lpd et mplayer pour gérer une queue de mp3/ogg

Il arrive qu'on soit dans un endroit avec d'autres accros à l'informatique et la musique, et on aimerait bien avoir un truc qui joue de la musique, et ou tout le monde puisse enqueuer des trucs de partout. MPD est bien, mais ca requiert d'avoir tout les morceaux en local sur la machine qui play.

Donc, une méthode ©™® OpenBSD-hackathon-proof, utiliser lpd.

Sur la box/serveur ou y'a les haut-parleurs :

# lancer lpd par défaut
$ echo 'lpd_flags=""' >> /etc/rc.conf.local

# avoir un script de spool qui balance l'input dans mplayer
$ cat /usr/local/bin/mp3spool
#!/bin/sh
/usr/local/bin/mplayer -af resample=48000 - > /dev/null 2>&1

# avoir une queue lpd qui balance son input dans mp3spool
$ cat /etc/printcap
mp3|lp:\
        :lp=/dev/null:mx#0:if=/usr/local/bin/mp3spool:sd=/tmp

# hop on lance lpd
$ sudo lpd

Enfin, sur tout les clients :

#on ajoute la queue distante
$ cat /etc/printcap
rp|remote line printer:\
         :lp=:rm=IP-DU-SERVEUR:rp=lp:sd=/var/spool/output:lf=/var/log/lpd-errs:

$ lpq -Prp
lp is ready and printing
Rank   Owner      Job  Files                                 Total Size
active lbreuil    89   06.Concrete Jungle.mp3                8134656 bytes
1st    lbreuil    90   05.Rat Race.mp3                       5228544 bytes

# on queue des trucs qui sont sur son disque local a soi
$ lpr -Prp trucs.mp3

Et voila un serveur de streaming partagé à peu de frais !! Si on est vraiment feignant et qu'on a pas envie de taper -Prp, on peut coller PRINTER=rp dans l'environnement, il trouvera tout seul.

openbsd/lpd_mplayer.txt · Last modified: 2010/01/12 13:29 (external edit)