Howto – Logitech Media Server (LMS)


Référence: Ubuntu 20.04.3

LMS (Logitech Media Server) et ses clients:

La page web de LMS

LMS est un serveur pour les clients (Squeezebox – Squeezelite – Softsqueeze et des applications mobile Android ou iOS tel que SqueezePlayer). Il permet la diffusion de fichiers audios et radio internet de très haute résolution (jusqu’à 24bits-192khz) vers un client Squeezelite ce qui en fait un lecteur de très bonne qualité.

LMS permet également l’utilisation de plusieurs lecteurs clients en synchronisation pour une diffusion dans toute la maison. Il est aussi possible de diffuser un train de données en mode mp3 en configurant une limite de flux de donnée dans l’onglet AUDIO des paramètres du lecteur et ainsi diffuser en mp3 à un lieu distant via internet.

LMS a été prévue pour servir la musique pour des appareils physiques réels (Squeezebox) qui ne sont plus disponibles à la vente depuis quelques années déjà. On en trouve encore à vendre sur certains sites web, mais il s’agit bien souvent d’équipement usagé qui est vendu assez cher.

Bien qu’il soit dommage de ne plus pouvoir acheter de Squeezebox, il existe maintenant d’autres solutions qui remplacent le Squeezebox et qui reposent pour la plupart sur le logiciel Squeezelite.

  1. Squeezelite installé sur l’ordinateur qui fait office de serveur (sans interface graphique)
  2. Squeezelite sur un poste de travail (autre que le serveur)
  3. Plugin SOFTSQUEEZE fourni avec LMS
  4. Combo Raspberry-Pi et piCorePlayer
  5. Diffusion de LMS sur un mobile
  6. Lecteur VLC via une connexion ssh
  7. Diffusion du son d’un poste de travail vers le LMS
  1. Quelques problèmes rencontrés avec Squeezelite

LMS répertorie et classe les métadonnées de vos fichiers musicaux dans une base de données et vous présentent les résultats dans une page de votre navigateur internet. Vous pouvez alors construire des listes de lecture, rechercher un artiste, album, genre, date, etc.

Afin de bien classer le tout, LMS a besoin de métadonnées (tags) fiables enregistrées à même les fichiers musicaux.

Il existe plusieurs logiciels pour faire ce travail, mais ceci est très souvent fait manuellement et demande énormément de temps. Plus simplement, je vous recommande l’utilisation de BlissHQ qui fait le travail de recherche de métadonnées sur internet et corrige vos fichiers automatiquement. Les fichiers peuvent aussi être classées selon vos indications lors de la configuration de BlissHQ.

LMS existe en différentes versions: Windows, MAC, Linux, FreeBSD, ARM, PowerPC et NETGEAR ReadyNas. Je vais détailler dans ce document son installation sur un ordinateur physique dédié à des fonctions multimédias qui tourne sous Ubuntu 20.04.3

Pour télécharger la version la plus récente du « Community LMS » compatible avec les squeezebox de Slimdevices ou Logitech ainsi que le logiciel squeezelite:

https://lyrion.org/lms-server-repository/

Pour installer votre sélection de LMS:

Dans le home du nas :
cd /home/nas/downloads

Télécharger le fichier:

wget https://downloads.lms-community.org/nightly/logitechmediaserver_8.5.3~1718138983_amd64.deb

Installer les dépendances du serveur:

sudo apt install libio-socket-ssl-perl libnet-ssleay-perl perl-openssl-abi-1.1 libcrypt-openssl-rsa-perl libcrypt-openssl-bignum-perl libcrypt-openssl-random-perl lame

Installer le serveur:
sudo dpkg -i logitechmediaserver_8.5.3~1718138983_amd64.deb

Sur un système 64bits, en utilisant la version LMS 8.3, toutes les librairies sont maintenant disponibles en version 64bits alors la conversion des formats de fichiers musicaux 24-96, 24-88, 24-192 vers un format supporté par les platines Squeezebox ou pour le streaming en mp3 vers internet est fonctionnel.

Minimalement, il est nécessaire de configurer un partage Samba avec Windows (s’il s’agit de votre client) afin de permettre de gérer vos fichiers musicaux d’un autre poste de travail plutôt que directement sur le serveur ce qui est peu pratique. Une gestion des permissions est nécessaire afin que le service squeezeboxserver puisse écrire les listes de lecture et accéder aux répertoires et fichiers audio.

Suivre le lien:

Partages et permissions sous Samba avec support ACL

Si vous utilisez plutôt un client Linux ainsi que Windows, suivre ce lien:

Partages réseaux avec ACL sous Linux (nfs) et Windows (samba)

Afin de construire la bibliothèque du LMS, créer les répertoires requis pour le classement:

****ATTENTION faire ce qui suit comme utilisateur nas pas root. S’il sont crées sous root, vous ne pourrez pas y accéder avec SAMBA. Alors pas de SUDO ici

mkdir /media/nas1/Audio/Musique/24-88
mkdir /media/nas1/Audio/Musique/24-96
mkdir /media/nas1/Audio/Musique/24-192
mkdir /media/nas1/Audio/Musique/Flac
mkdir /media/nas1/Audio/Musique/Flac_vrac
mkdir /media/nas1/Audio/Musique/MP3vrac
mkdir /media/nas1/Audio/Musique/AlbumsMP3
mkdir /media/nas1/Audio/Musique/Podcasts
mkdir /media/nas1/Audio/LMS_Liste_de_lecture
mkdir /media/nas1/Audio/LMS_Dynamic_Playlist
mkdir /media/nas1/Audio/LMS_Trackstats

Ensuite afin de ne pas faire le bordel avec les répertoires, il est préférable de faire des liens symboliques qui font référence aux répertoires réels requis pour le LMS. Certains répertoires ne sont pas désirés dans la bibliothèque LMS.

mkdir /media/nas1/Audio/LMS
cd /media/nas1/Audio/LMS

Créer ensuite les liens symboliques suivants et placer les ensuite dans le répertoire créé précédemment:

ln -s /media/nas1/Audio/Musique/24-88 /media/nas1/Audio/LMS/24-88
ln -s /media/nas1/Audio/Musique/24-96 /media/nas1/Audio/LMS/24-96
ln -s /media/nas1/Audio/Musique/24-192 /media/nas1/Audio/LMS/24-192
ln -s /media/nas1/Audio/Musique/Flac /media/nas1/Audio/LMS/Flac
ln -s /media/nas1/Audio/Musique/Flac_vrac /media/nas1/Audio/LMS/Flac_vrac
ln -s /media/nas1/Audio/Musique/MP3vrac /media/nas1/Audio/LMS/MP3vrac
ln -s /media/nas1/Audio/Musique/AlbumsMP3 /media/nas1/Audio/LMS/AlbumsMP3
ln -s /media/nas1/Audio/Musique/Podcasts /media/nas1/Audio/LMS/Podcasts

Pour vérifier la présence des liens ainsi que le répertoire pointé:

ls -la /media/nas1/Audio/LMS

Sur la machine cliente, ouvrir votre navigateur WEB (http://192.168.0.11:9000) ou (http://localhost:9000) pour aller sur le LMS.

Remplacer l’adresse IP ou localhost indiqués par celle de votre machine.

Une fois en communication avec le LMS, aller au menu Réglages du serveur et inscrire l’emplacement de la bibliothèque:

/media/nas1/Audio/LMS

…des playlists:

/media/nas1/Audio/LMS_Liste_de_lecture/

Activation du plugin ACLplug-in pour support des acl

Si vous avez mis en place le partage par acl, vous devrez activer le plug-in Enable ACL filetest dans les paramètres de LMS. Donc lors de la configuration initiale de LMS il ne vous sera pas possible de voir votre répertoire de musique avant d’avoir activé le plug-in. Sauf si les permissions sont bien configurées.  Choissisez un répertoire temporaire pour y revenir après l’activation du plug-in et un redémarrage de LMS avec la commande suivante:

sudo service logitechmediaserver restart

Faire ensuite la commande pour répertorier les fichiers musicaux et attendre que la bibliothèque soit complète avant de pouvoir accéder à l’ensemble des fonctions de LMS. Certaines fonctions sont inactives durant le balayage des fichiers et répertoires.

Installation du plugin CDplayer:

Pour que LMS voit le CD, il faut installer cdda2wav et mettre /dev/sr0 ou /dev/cdrom comme « CD Device Name »

Installer d’abord cdda2wav et cdparanoia

sudo apt install cdda2wav
sudo apt install cdparanoia

Ensuite ajouter l’utilisateur squeezeboxserver au groupe cdrom

sudo usermod -a -G cdrom squeezeboxserver
sudo adduser squeezeboxserver cdrom

Activer finalement le plugin CDplayer dans l’interface des paramètres de LMS

Redémarrer l’ordinateur physique pour que la nouvelle autorisation du groupe cdrom prenne effet.

Référence pour les manipulations possible si des problèmes de permission surviennent: ne pas faire bêtement, s.v.p. vérifier si cela s’applique
cd /dev
sudo mknod sr0 b 11 0
sudo chgrp cdrom sr0
sudo chmod 660 sr0 (j’ai fait 777 pour que ça fonctionne mais j’avais de mauvaises permissions à ce moment)
sudo ln -s /dev/sr0 /dev/cdrom
sudo cdparanoia -v /dev/cdrom

Note: Sous Ubuntu 8.04 et les premières versions du squeezeboxserver 7.5, il y avait des problèmes qui sont maintenant corrigés. Je laisse toutefois ici les références pour les corrections si nécessaire à nouveau.

Ceci n’est plus vraiment applicable au système sous systemd mais s’applique au system utilisant encore systemv

L’affichage de l’écran de veille Date/Heure est toujours en anglais même si les paramètres du serveur sont configurés en français. L’heure est récupérée de l’OS alors il faut modifier le fichier /etc/init.d/squeezeboxserver et ajouter la ligne suivante:

export LANG=fr_CA.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Squeezebox Server"
NAME=squeezeboxserver
DAEMON=/usr/sbin/$NAME
DAEMON_SAFE=/usr/sbin/${NAME}_safe
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
SLIMUSER=$NAME
PREFSDIR=/var/lib/$NAME/prefs
LOGDIR=/var/log/$NAME/
CACHEDIR=/var/lib/$NAME/cache
CHARSET=utf8
SLIMOPTIONS=
export LANG=fr_CA.UTF-8

Il faut également ajouter les lignes suivantes au fichier /etc/environment.

export LC_ALL=fr_CA.UTF-8
export LANGUAGE=fr_CA

Pour ajouter le support AAC (m4a mp4) Apple et MP3 (Lame)

Installer le paquet faad :

sudo apt-get install faad

Installer le paquet lame :

sudo apt-get install lame

Pour ajouter les données de transcodage pour les ficher de type AAC :

sudo nano /etc/squeezeboxserver/custom-convert.conf

ajouter à la fin:

# Transcoding for AAC files.
mov flc * *
[faad] -w -f 2 $FILE$ | [flac] -cs --totally-silent --compression-level-0 --endian little --sign signed --channels 2 --bps 16 --sample-rate 44100 -
mov mp3 * *
[faad] -w -f 2 $FILE$ | [lame] --resample 44100 --silent -q $QUALITY$ -b $BITRATE$ -x -r - -
mov wav * *
[faad] -w -f 2 $FILE$

redémarrer le squeezeboxserver:

sudo /etc/init.d/squeezeboxserver restart

P.S je ne suis pas un génie, voir le site

http://wiki.slimdevices.com/index.php/AAC#AAC_on_Linux