Univers Apple

22
Sept.
2018

Plein phare sur une application Brew : minidlna

Publié par sky

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

minidlna via Brew - Affichage de la progression de la création du cache

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.

minidlna via Brew - Affichage du serveur de media sur Kodi

minidlna via Brew - Affichage des dossiers disponibles sur le serveur de media 

Et ici sur VLC iPad.

 minidlna via Brew - Affichage des dossiers disponibles sur VLC

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

minidlna via Brew - Configuration du démon

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

 
Sommaire de la série
 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Les cookies assurent le bon fonctionnement de nos services. En continuant, vous acceptez leur utilisation sur notre site internet.
Accepter