Plein phare sur une application Brew : minidlna
Regardons comment Homebrew peut, une nouvelle fois, répondre à l'une de nos problématiques. Aujourd'hui, il s'agit de mettre en place un serveur UPnP performant afin de streamer les vidéos qui se trouvent sur le Mac, vers des Raspberry Pi sous Kodi ainsi qu'un iPad et une Amazon Fire utilisant VLC.
Devenu ReadyMedia avec le temps, minidlna est toujours disponible sous ce nom sur la plateforme Homebrew.
Attention, ce tutorial est un peu plus compliqué que les précédents, s'y aventurer nécessite de les avoir maîtrisé un minimum. Et je vous invite à lire l'ensemble de l'article avant de vous lancer pour comprendre certains choix et éventuellement adapter l'utilisation de ce serveur de media à vos besoins.
Commençons par regarder les informations de l'application
brew info minidlna
minidlna: stable 1.2.1 (bottled), HEAD
Media server software, compliant with DLNA/UPnP-AV clients
https://sourceforge.net/projects/minidlna/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/minidlna.rb
==> Dependencies
Required: libexif ✘, jpeg ✔, libid3tag ✘, flac ✔, libogg ✔, libvorbis ✔, sqlite ✔, ffmpeg ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
Simple single-user configuration:
mkdir -p ~/.config/minidlna
cp /usr/local/opt/minidlna/share/minidlna/minidlna.conf ~/.config/minidlna/minidlna.conf
ln -s YOUR_MEDIA_DIR ~/.config/minidlna/media
minidlnad -f ~/.config/minidlna/minidlna.conf -P ~/.config/minidlna/minidlna.pid
To have launchd start minidlna now and restart at login:
brew services start minidlna
Or, if you don't want/need a background service you can just run:
minidlna
==> Analytics
install: 182 (30d), 591 (90d), 2444 (365d)
install_on_request: 173 (30d), 502 (90d), 1980 (365d)
build_error: 0 (30d)
puis lançons nous dans l'installation.
brew install minidlna
Attaquons la configuration. Pour une raison que j'expliquerai plus tard, je ne vais pas mettre les fichiers de configuration dans mon dossier personnel, comme indiqué, je vais préférer le dossier partagé. Et je créé un dossier minidlna dans le dossier /Utilisateurs/Partagé/.
Ou via le terminal
mkdir -p /Users/Shared/minidlna
Si vous préférez que le dossier soit caché, préfixez en le nom par un point.
mkdir -p /Users/Shared/.minidlna
Vous pouvez toujours l'ouvrir dans le Finder
open /Users/Shared/.minidlna
Vous penserez à modifier les chemins tout au long de l'article.
Ouvrez un fichier texte, au format brut (donc, pas de RTF), et insérons les éléments de configuration.
Commençons par le nom du serveur de media
friendly_name=MacPro Media
puis le ou les dossiers contenant des medias que vous souhaitez partager. Ici, j'ajoute deux dossiers de videos, un avec mes films et mes séries.
media_dir=V,/Volumes/Media/Films
media_dir=V,/Volumes/Media/Series
le V indique qu'il s'agira de vidéos. Pour mettre des musiques, il faut remplacer le V par un A (pour audios), et pour des photos, un P (pour pictures). Evitez les dossiers avec des caractères accentués ou spéciaux, cela peut poser problème lors du partage.
minidlna va créer une base de données pour stocker le cache de vos fichiers, nous choisissons de la stocker dans le dossier.
db_dir=/Users/Shared/minidlna/cache
idem pour les logs
log_dir=/Users/Shared/minidlna/logs
Ensuite viennent les configurations de "confort".
inotify=yes
indique à minidlna de mettre à jour le cache périodiquement suite à l'ajout de nouveaux fichiers.
notify_interval=300
définit l'interval en seconde entre 2 vérifications, ici, 5 minutes.
Par défaut, minidlna compile les fichiers (dans la base de données) et les ressorts structurés. J'indique que je ne souhaite pas structurer les données, et que je veux voir les dossiers tels que je les ai indiqué.
root_container=B
merge_media_dirs=no
Enfin, j'indique le port sur lequel je pourrais regarder l'état de minidlna
port=8200
J'enregistre ce fichier dans mon dossier minidlna, et je le nomme, en tout excentricité : minidlna.conf.
Pour tester, lançons une première fois l'application sur laquelle j'indique le chemin de mon fichier de configuration.
minidlnad -f /Users/Shared/minidlna/minidlna.conf
Notez que l'application s'appelle minidlna - d, cela indique qu'il s'agit d'un démon qui va tourner en fond de tâche. D'ailleurs, une fois lancée, vous récupérez immédiatement la main. Si votre terminal ne trouve pas l'application minidlnad, vous devrez peut être mettre le dossier /usr/local/sbin dans votre path.
Une fois lancé, il faut attendre quelques minutes que minidlna compile l'ensemble de vos fichiers. Pour en vérifier la progression, vous pouvez ouvrir un navigateur et taper l'adresse IP du Mac qui fait tourner minidlna ainsi que le port indiqué dans le fichier de configuration
http://localhost:8200
Le résultat affiche
L'information "* Media Scan in progress" indique que la création du cache est toujours en cours. Vous pouvez spammer le rafraichissement pour avoir les informations qui se mettent à jour en tant réel.
Une fois le scan terminé, nous pouvons vérifier sur le lecteur approprié si tout est en ordre, ici sur l'un des Kodi.
Et ici sur VLC iPad.
Pour arrêter le service, il faut tuer le démon.
killall -15 minidlnad
Pour le relancer, il suffit de relancer la commande. En ajouter le paramètre -R, vous forcerez la re-construction de la base de données des caches (il faudra de nouveau attendre que la mise en cache soit terminée avant de lancer les lecteurs).
minidlnad -R -f /Users/Shared/minidlna/minidlna.conf
Si vous avez des soucis, arrivé à ce point du tutoriel, n'allez pas plus loin, il faut déjà résoudre les soucis. Les logs disponibles dans le dossier dédiés pourront vous aider.
Sinon, n'hésitez pas à décrire votre problème dans les commentaires.
Dans les informations, nous avons tout le processus nécessaire pour installer minidlna en mode Single User, qui se lancera sur demande, ou automatiquement lors de la connexion à votre compte. Si cela vous convient, vous pouvez suivre le tutoriel intégré.
Personnellement, je souhaite aller plus loin, et faire en sorte que minidlna se lance en tant que service dès le démarrage du Mac. Cela me permettra d'accéder aux vidéos même si ma session n'est pas lancée.
Pour cela il faut un peu adapter le guide. Pour commencer, il faut renseigner le fichier de préférence qui servira description de notre service pour launchd, le gestionnaire de services de macOS.
Déplaçons nous dans le dossier souhaité
/usr/local/Cellar/minidlna/1.2.1_1
puis faisons une copie de sauvegarde du fichier de préférence avant de le modifier
cp homebrew.mxcl.minidlna.plist homebrew.mxcl.minidlna.plist.bak
et éditons notre fichier
nano homebrew.mxcl.minidlna.plist
Il faut modifier les chemins vers la configuration, et le verrou ligne 12 et 14. Eventuellement, vous pouvez aussi faire afficher les logs dans le fichier original en changeant le chemin ligne 26 et 28.
Voici mon fichier
Comme vous pouvez le voir, l'un des paramètres est le -R vu précédemment, qui reconstruit le cache à chaque nouveau lancement, il faudra donc, être un peu patient, à chaque démarrage du Mac pour accéder à ses vidéos.
Maintenant, il ne reste plus qu'à lancer le démon en mode service. Comme l'indique le guide, et en ayant aupréalablement fermé la précédente occurence de minidlna, il faut taper
brew services start minidlna
Ici le service sera lancé immédiatement, puis fermé et réouvert à l'ouverture et à la fermeture de votre session.
Une fois la commande lancée, vous pouvez d'ailleur voir que le fichier est copier dans le dossier LaunchAgents de votre dossier Bibliothèque.
Comme indiqué précédemment, l'avoir en session, c'est bien, mais je préfèrerai l'avoir carrément au lancement du Mac, sans nécessairement ouvrir ma session. Cela se fait tout simplement en lançant la commande en root, avec la commande sudo, transférant ainsi la propriété du processus vers le système.
sudo brew services start minidlna
Vous verrez que le fichier plist sera copié automatiquement dans le dossier /Bibliothèque/LaunchDaemons.
Votre serveur de média UPnP/DLNA est prêt.
Une Raspberry Pi ? Direction Amazon.fr
- Homebrew - Gestionnaire de paquets
- Guetzli, une librairie d'encodage JPG optimisée
- Installer les commandes ecm et unecm sur macOS
- Homebrew : Recherche et commandes avancées
- Astuce macOS : Gérer les images disques au format bin/cue
- Plein phare sur une application Brew : youtube-dl
- Plein phare sur une application Brew : smartmontools
- Plein phare sur une application Brew : minidlna
- Brew et les paquets installés
- Plein phare sur une application Brew : unrar
- Plein phare sur une application Brew : glances
- Brew et les paquets à mettre à jour
- Plein phare sur une application Brew : watch
- Homebrew et la gestion de l'espace disque
- Plein phare sur une application Brew : ncdu
- Plein phare sur une application Brew : TestDisk
- Convertir une série d'images en GIF animé sur macOS
- Plein phare sur une application Brew : p7zip
- Plein phare sur une application Brew : Optimiser des PNGs avec ImageOptim
- Plein phare sur une application Brew : pstree
- Plein phare sur une application Brew : lsusb
- Plein phare sur une application Brew : rename
- Plein phare sur une application Homebrew : nmap
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur.
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur, partie 2.
- Plein phare sur une application Brew : yt-dlp
- Homebrew : Corriger un problème de dépendances trop récentes