Réaliser un serveur de musique.
Réaliser un serveur de musique à l’aide d’un Raspberry Pi et du logiciel mpd.
Vous avez rippé l’emsemble de votre collection de CD audio au format mp3 pour écouter vos musiques préférées sur votre smartphone.
Malheureusement votre smartphone ne dispose pas d’assez de mémoire pour stocker l’ensemble de vos fichiers *.mp3.
Un serveur de musique est une solution, économique et ne dépendant pas d’un tier.
Pour réaliser notre serveur nous avons besoin :
- d’un serveur, ici un Rapberry Pi 3 Model B V1.2
- d’un support de stockage USB suffisant pour nos fichiers *.mp3. (clef ou disque dur)
- du logiciel mpd, Music Player Daemon.
Les explications qui vont suivre supposent que :
- vous installerez un client sur :
Sommaire
- Réaliser un Serveur Raspberry Pi
- Ajout du support de stockage USB
- Installation de mpd
- Configuration de mpd
- Ajouter des fichiers *.mp3 avec un serveur FTP
- Les clients
- Liens utiles
Réaliser un Serveur Raspberry Pi
Ajout du support de stockage USB
Installation de mpd
pi@raspberry:~ $ sudo apt-get update; sudo apt-get upgrade -y
...
pi@raspberry:~ $ sudo apt-get install mpd
...
pi@raspberry:~ $
Configuration de mpd
La configuration de mpd s’effectue à l’aide du fichier /etc/mpd.conf
pi@raspberry:~ $ sudo nano /etc/mpd.conf
Les lignes précédées d’un # sont des commentaires et ne sont pas prises en compte.
Les sections importantes pour vous :
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
# mixer_type "hardware" # optional
mixer_type "software"
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional
}
audio_output {
type "httpd"
name "flux httpd"
encoder "lame" # optional, vorbis or lame
port "8000"
# bind_to_address "192.168.250.44" # optional, IPv4 or IPv6
quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
format "44100:16:1"
max_clients "0" # optional 0=no limit
}
Les lignes importantes pour vous : Au début du fichier
music_directory "/media/musique"indique dans quel répertoire trouver vos fichiers *.mp3port "6600"à retenir pour la configuration des clients.auto_update "yes"permet la mise à jour automatique (à chaque démarrage) de la liste des fichiers .mp3
Vers la fin du fichier dans les sections audio_outputdevice "hw:0,0" # optionalindique d’utiliser la sortie casque pour le sonmixer_type "software"autorise la modification du volume de manière logiciel.port "8000"à retenir pour la configuration des clients en mode streaming
Pour prendre en compte les modifications apportées
pi@raspberry:~ $ sudo service mpd restart
Maintenant notre serveur de musique est opérationnel.
Ajouter des fichiers *.mp3 avec un serveur FTP
Pour ajouter des fichiers *.mp3 à notre serveur nous pouvons :
- brancher notre support USB sur un autre ordinateur, pas pratique mais très simple.
- partager le répertoire /media/musique/ sur le réseau avec samba, pratique mais je n’ai pas réussi à le configurer…
- installer un serveur FTP, moins pratique mais là j’ai réussi à intaller et configurer vsFTPd.
Installation.
pi@raspberry:~ $ sudo apt-get install vsftpd
Vérification que le service fonctionne.
pi@raspberry:~ $ sudo systemctl status vsftpd
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-12-31 18:02:09 CET; 1 day 14h ago
Process: 493 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 495 (vsftpd)
Tasks: 1 (limit: 1597)
CPU: 44ms
CGroup: /system.slice/vsftpd.service
└─495 /usr/sbin/vsftpd /etc/vsftpd.conf
déc. 31 18:02:09 ludwig systemd[1]: Starting vsftpd FTP server...
déc. 31 18:02:09 ludwig systemd[1]: Started vsftpd FTP server.
La ligne Active: vous indique que le serveur fonctionne active (running).
Active: active (running) since Fri 2021-12-31 18:02:09 CET; 1 day 14h ago
Configuration.
pi@raspberry:~ $ sudo sudo nano /etc/vsftpd.conf
Vous autorisez uniquement les utilisateurs connus à utiliser le service, pas d’utilisateurs anonymes.
anonymous_enable=NO local_enable=YES
Vous autorisez les utilisateurs à écrire (déposer) des fichiers,
write_enable=YES
mais seulement dans leur domaine, ils ne pourrons pas explorer ailleurs.
chroot_local_user=YES
Ajoutez à la fin du fichier
user_sub_token=$USER
local_root=/media/musique
allow_writeable_chroot=YES
pasv_min_port=30000
pasv_max_port=31000
local_root=/media/musique indique dans quel répertoire vous déposerez vos *.mp3.
Relancez le service pour prendre en compte la nouvelle configuration.
pi@raspberry:~ $ sudo systemctl restart vsftpd
Pour utiliser le service FTP vous avez besoin d’un client ftp comme FileZilla ou gFTP (celui que j’utilise). Il vous sera demander :
- l’adresse de votre serveur (par exemple 192.168.xxx.xxx ou ludwig.local)
- le port à utiliser, généralement celui par défaut (21).
- un nom d’utilisateur (pi dans notre cas)
- un mot de passe (celui de l’utilisateur pi)
Les clients
Pour commander mpd :
Ce ne sont que des exemples, il en existe beaucoup d’autres.
Je ne traiterai pas ici de la configuration des clients mais vous aurez besoin.
- de l’adresse IP de votre serveur du type 192.168.xxx.xxx ou de son adresse du type ludwig.local (où ludwig est le nom de votre serveur)
- du port utiliser, généralement 6600.
- du port pour le streaming si vous souhaitez écouter votre musique depuis votre smartphone.
Liens utiles
- Configuration du son
- Configuration d’un DAC https://forum.raspfr.org/PiFi-DAC-ou-HIFIberry-et-plex-t-2054.html
- Configuration de mpd
- Utilisation de mpc
- Configuration de vsFTPd
Votre serveur est (enfin) prêt mais vous pouvez aller plus loin en :
- Utilisant un DAC ou une carte son USB pour une meilleure qualité de son.
- Rendre votre serveur accessible de partout sur internet. (en dehors de votre foyer)
- Rendre votre serveur multi utilisateurs. (une configuration personnelle pour chaque membre de votre foyer)