mopidy est un serveur audio léger et modulaire. Ce document décrit l'installation et l'utilisation du serveur mopidy sur un Raspberry Pi
Références
Sommaire
Library = partie de mopidy qui gère (recherche et exploration) la bibliothèque
Playback = État et piste en cours de lecture
Tracklist = Liste des pistes à lire qui peut-être soit une liste enregistrée et stockée soit "la queue définie par l'utilisateur"
Playlist = Liste de pistes enregistrées
History = Historique des pistes lues
On suppose que l'installation s'effectue sur une carte Raspberry Pi 4 équipée de la distribution raspbian Debian 11 à jour
Vérifier et mettre à jour le système d'exploitation
$ sudo aptitude update && sudo aptitude upgrade -y
$ cat /etc/issue
Raspbian GNU/Linux 11 \n \l
$ cat /etc/debian_version
11.1
$ uname -a
Linux raspberrypi 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:57 BST 2021 armv7l GNU/Linux
$ speaker-test -c2 -twav
Vérifier que le Raspberry est connecté à un réseau local, de préférence avec une adresse ip fixe
Noter l'adresse du raspberry, dans l'exemple suivant la connexion s'effectue par wifi, l'adresse du raspberry est 192.168.0.20
$ ip route
default via 192.168.0.1 dev wlan0
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.20
Vérifier l'accès au raspberry depuis un PC situé sur le réseau local
(PC_client) $ ping 192.168.0.20
Mopidy est disponible dans les dépôts Debian, toutefois, afin de profiter des dernières versions, l'installation est effectuée à partir du dépôt mopidy
$ wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
$ sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
$ sudo aptitude update
$ sudo aptitude install mopidy
mopidy inclue par défaut un certain nombre d'extensions, suffisante pour un media-server minimum
Mopidy-HTTP = un serveur http qui permet de contrôler mopidy
Mopidy-File = un lecteur audio à partir de fichiers disponibles localement
Mopidy-Stream = un lecteur de flux audio à partir d'URI définis dans une playlist
Mopidy-M3U = une extension pour lire et écrire des playlists au format M3U
Mopidy-SoftwareMixer =
$ mopidy deps
Executable: /usr/bin/mopidy
Platform: Linux-5.4.72-v7l+-armv7l-with-debian-10.6
Python: CPython 3.7.3 from /usr/lib/python3.7
Mopidy: 3.0.2 from /usr/lib/python3/dist-packages
GStreamer: 1.14.4.0 from /usr/lib/python3/dist-packages/gi
Detailed information:
Python wrapper: python-gi 3.30.4
Relevant elements:
Found:
uridecodebin
souphttpsrc
appsrc
alsasink
.....
Not found:
flump3dec
mad
L'absence des codes flump3dec et mad ne semble pas poser de problèmes .....
$ gst-launch-1.0 audiotestsrc ! autoaudiosink
$ gst-launch-1.0 audiotestsrc ! audioresample ! autoaudiosink
$ gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! autoaudiosiknk
Dans le cas présent, la source audio est alsa et autoaudiosink peut-être remplacé par alsasink
$ gst-launch-1.0 audiotestsrc ! alsasink
$ mopidy
Si le message d'erreur
ERROR 2020-11-23 00:22:05,134 [2206:MainThread] mopidy.commands
Frontend (HttpFrontend) initialization error: HTTP server startup failed: [Errno 98] Address already in use
s'affiche, il est probable qu'une autre instance de mopidy ait déjà été lancé, ce que l'on peut vérifier avec
$ ps -C mopidy
PID TTY TIME CMD
2117 pts/1 00:00:01 mopidy
Dans ce cas, stopper l'instance en cours avec l'une des commandes suivantes
depuis la console ou le terminal de démarrage
$ Ctrl C
depuis une autre console ou un autre terminal
$ pkill mopidy
ou si l'on connait le PID (voir la commande ps -C mopidy ci-dessus)
$ kill 2717
Après avoir démarré mopidy, ouvrir une nouvelle fenêtre de terminal ou une console et vérifier que le serveur est en écoute sur le port 6680
$ lsof -i:6680
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mopidy 3001 pi 7u IPv4 29741 0t0 TCP localhost:6680 (LISTEN)
....
mopidy peut-être utilisé comme service au lieu de programme utilisateur. Les commandes deviennent
Démarrage, arrêt
$ sudo systemctl start mopidy
$ sudo systemctl stop mopidy
$ sudo systemctl enable mopidy
Liste des dépendances
$ sudo mopidyctl deps
$ sudo mopidyctl local scan
$ sudo lsof -i:6680
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mopidy 684 mopidy 7u IPv4 12268 0t0 TCP 192.168.0.20:6680 (LISTEN)
mopidy 684 mopidy 15u IPv4 11246 0t0 TCP 192.168.0.20:6680->192.168.0.18:57980 (ESTABLISHED)