Serveur DLNA
Cet article fait suite à celui de la mise en place de Samba sur un Raspberry Pi avec Docker. Vous pouvez retrouver cet article ici.
Disposant d'une TV connectée, j'ai rapidement découvert qu'elle pouvait lire des vidéos via le réseau. Pour cela, elle utilise le standard DLNA. On va donc voir ici comment mettre en place un serveur compatible DLNA sur le Raspberry Pi. Et comme pour les précédents articles, on va utiliser Docker !
C'est quoi un serveur DLNA
DLNA définit un standard d'interopérabilité permettant la lecture, le partage et le contrôle d'appareils multimédia indépendamment de leur marque ou de leur nature. (source : Wikipedia)
On va utiliser ici le serveur MiniDLNA pour sa simplicité : make each program do one thing well.
Materiel
- un Raspberry Pi avec Docker
- un disque dur externe en USB
1/ Pré-requis
Le disque dur est branché au Pi et on dispose d'un point de montage. Si besoin, la marche à suivre est indiqué dans l'article mentionné ci-dessus.
2/ Installer le serveur MiniDLNA
Voici la commande que j'ai utilisé :
docker run \
--name dlna \
-d \
-it \
--net=host \
--user=1000 \
--restart=unless-stopped \
-v /media/share/videos:/media/videos \
-e MINIDLNA_MEDIA_DIR=/media/videos \
-e MINIDLNA_FRIENDLY_NAME=MyDLNA \
vladgh/minidlna
--user=1000
permet de lancer le conteneur en utilisant l'utilisateur ayant l'uid1000
, ce user est celui qui dispose des droits sur le point de montage/media/share
. On peut trouver l'uid d'un utilisateur en inspectant le fichier/etc/passwd
.-v /media/share/videos:...
permet de monter une partie du disque dur dans le conteneur. Ensuite, on utilise-e MINIDLNA_MEDIA_DIR=/media/videos
pour indiquer à MiniDLNA quel dossier utiliser.-e MINIDLNA_FRIENDLY_NAME=...
permet de définir le nom qui apparaitra sur le réseau.
Pour les autres options, je vous laisse regarder la documentation de Docker et de l'image vladgh/minidlna.
3/ Vérification
Vous pouvez aller inspecter les logs pour vérifier que le démarrage du serveur s'est bien déroulé. Pour cela, utilisez la commande suivante :
docker logs dlna
Dans ces logs, vous devriez voir apparaitre un section indiquant sur le serveur a bien pris en compte les dossiers que vous lui avez indiqué :
Scanning /media/videos
Scanning /media/videos finished (235 files)!
Et une section indiquant que le serveur est bien démarré :
Starting MiniDLNA version 1.2.1.
HTTP listening on port 8200
4/ Profit
Votre TV connectée devrait automatiquement découvrir le serveur et pourra lire les fichiers vidéos (ou audio) que vous aurez mis à disposition.