Aller au contenu

[TUTO] Plex via docker, avec ou sans transcodage matériel


Messages recommandés

Posté(e) (modifié)

Bonjour,

Nous allons voir comment faire un docker pas à pas avec Plex.

Pourquoi ? Car Plex dans un docker ne pollue pas le nas, se réinstalle en 2 clics et ne se soucis pas des changements majeurs de DSM.

 

I - Installation de l’image :

QZ202Hr.png

On se rend donc dans « Registre » (1) et on recherche « plex » (2), pour ma part et pour ce tutoriel, j’utilise la première image « linuxserver/plex », le groupe linuxserver produit des images de qualité, propres et suivies, l’image officielle de plex (en dessous ici) est arrivée bien en retard.. souvent sujette à des bugs... Bref je ne l’utilise pas pour ma part. Une fois l’image sélectionnée (3), on clique sur le bouton « télécharger » (4)

 

II - Le lancement de l’image :

lX3NcMS.png

On se rend ensuite dans « Image » (1), on la sélectionne (2), puis le bouton « Lancer » (3)

 

III - Les différentes configurations de l’image avec en dessous des explications sur les choix mis :

1) Paramètres généraux / Paramètres avancés :

TS4Iaw1.jpg

- « Exécuter le conteneur à l’aide de privilèges élevées » : décoché, si vous cochez... le conteneur aura un accès à /dev/ de votre nas... autant dire que le rôle d’isolation du docker n’a plus aucun intérêt.

- « Activer la limitation des ressources » : coché, on ne tient pas à ce que Plex cannibalise nos nas, on a d’autres paquets derrière qui ne peuvent se permettre d'être ralentis.

-> Priorité des processeurs : moyen, c’est le meilleur équilibre, bas votre plex sera à la peine, haut cela sera votre nas.

-> Limite de la mémoire : 4096, le minimum syndical... c’est 2048, si vous avez la possibilité d’en mettre plus, plex les exploitera sans aucun soucis.

- « Activer le redémarrage automatique » : coché ou pas, dock qui plante, paquet docker en auto update ou nas qui reboot pour X raison (update, maintenance...), le dock, plex par extension ici, se relancera automatiquement.

- « Raccourci sur le bureau » : coché ou pas, cela évite de lancer docker pour faire « détail » sur le dock, utile pour voir la consommation ou les logs plus rapidement.

 

2) Volume :

qdx7fqM.jpg

Ici typiquement, j’ai mis l’exemple concret d’un usage type (le mien), donc colonne « chemin d’accès », c’est ce que vous devez avoir pour que cela soit conforme et propre.

Colonne « Fichier/Dossier », pour « config » et « transcode », comme vous le voyez, j’ai un dossier Plex dans le dossier partagé docker, vous pouvez bien sûr les mettre ailleurs, mais il vous faudra donner les droits, un peu con dans la mesure où le dossier docker est là pour ça, bref là, à vous de voir si vous voulez faire un dossier partagé de plus pour cela.

Vous remarquerez aussi que pour la bibliothèque, je ne donne que des droits de lecture, plex permet la suppression de fichiers directement, personnellement.. un accident étant vite arrivé, je bloque donc en lecture seule.

Pour les droits sur vos fichiers multimédias... bien lire le tutoriel correctement, surtout la partie III / 5) Environnement / PUID/GUID

 

3) Réseau/Paramètres des ports/Liens :

UXRGJ0b.jpg

Ici vous n’avez qu’une case à cocher : « Utiliser le même réseau que Docker Host », les onglets « Paramètres des ports » et « Liens » seront donc ignorés, Plex se lance en host, sinon cela cause pas mal de soucis... (réclame du serveur, tunneling, etc...)

Dans les ports que vous êtes susceptibles d’utiliser, aucune crainte : 

- Port 5353, pas de soucis il suffira de désactiver ce service sur le serveur plex.

- Port 1900, et bien je pense que vous désactiverez le serveur multimédia pour celui de plex si vous en faites usage (on a les miniatures par exemple, plus de catégorie,etc...), le service est là aussi désactivable.

 

4) Environnement :

g79R0LJ.jpg

Pour l’environnement, je triche en mettant directement celui du mien, donc ne faites pas attention si la fenêtre est légèrement différente, d’ailleurs dans le cadre « commande » qui n’est pas visible ici, mais qu’à la création, vous le laissez vide.

Donc ici vous devez avoir l’identique sauf pour :

TZ : Selon votre fuseau horaire, ici la France.

VERSION : latest ou public. Au choix si vous avez le plex pass ou non, sachant qu’avec latest vous avez donc les bêta accessibles uniquement au membre plex pass, personnellement je n’ai jamais eu de problème avec les bêta.

PUID/GUID : Alors ici s’offre deux choix à vous...

- Soit vous supprimez ces derniers et le serveur en aura un aléatoire, à ce moment là il faudra juste donner les droits de lecture au groupe « users » pour vos dossiers multimédias.

Pour rappel ce groupe « users » contient tous les utilisateurs du nas, donc ce choix ne concerne que ceux qui utilisent le nas que pour eux ou qui s’en foutent que leurs membres voient le multimédia.

- Soit vous créez un utilisateur dédié, sur lequel vous donnerez là aussi les droits de lecture sur vos fichiers multimédias, tout en lui castrant tout le reste (cf onglet application du compte lors de la création).

Vous remarquerez lors de la définition des droits, que le compte aura un droit de lecture sur docker par défaut, ne pas toucher, sinon votre dock n’aura plus d’accès à config/transcode (cf plus haut la configuration), maintenant si ces derniers ne sont pas dans docker, il vous faudra donner un droit de lecture/écriture au dossier partagé qui les contiendra.

Une fois votre utilisateur créé, connectez vous en ssh sur le nas et tapez : id utilisateurplexcréé, vous aurez alors en retour le GUID et PUID à mettre en paramètre, en image les points rouge :

hivxHud.jpg

 

 

Voilà vous en avez terminé avec le docker. Au premier lancement, il se mettra à jour vers la dernière version choisie disponible, lorsque vous voulez mettre à jour plex, vous n’avez qu’à stopper le dock et le relancer.

Adresse du serveur : https://ipdunas:32400 

(en cas d’erreur, rajoutez /web à la fin)

 

 

IV - Activation du transcodage matériel :

Étape 1 :

Dans docker, vous allez sur « conteneur », vous sélectionnez votre dock plex, vous sélectionnez « paramètre » puis « exporter », vous laissez coché la case « Exporter les paramètres du conteneur » et mettez la destination.

Maintenant ouvrez le fichier json créé, vous remplacez :

   "ddsm_bind_share" : "",
   "devices" : [],

Par :

   "devices" : [
      {
         "CgroupPermissions" : "rwm",
         "PathInContainer" : "/dev/dri",
         "PathOnHost" : "/dev/dri"
      }
   ],

 

Étape 2 :

Ensuite vous créez un fichier « plexhw.sh » dans lequel vous mettrez le contenu suivant, vous rajouterez ce dernier dans le gestionnaire des tâches avec une exécution à chaque démarrage du nas :

#!/bin/sh

if [ -d /dev/dri ]; then
           chmod 666 /dev/dri/renderD128
           chmod 660 /dev/dri/card0
fi
exit 0

 

Exécuter ce script une première fois.

Une fois ces manœuvres terminées, supprimez votre dock plex, vous sélectionnez « paramètre » puis « Importer » et on reprend la configuration fraichement modifiée, vous retrouvez votre dock plex, mais cette fois ci avec le transcodage matériel. Dans l’état du serveur plex, vous verrez lors de transcodage matériel se rajouter (hw) :

LAWv9lN.jpg

 

 

V - Affranchir Plex et lui attribuer sa propre IP comme une VMM :

Étape 1 :

Pourquoi ? Suite à des conflits avec le port 5353 ou 1900 par exemple, si vous voulez que votre plex passe par la 4G, etc...

Nous allons créé pour commencer une nouvelle interface dans docker avec le driver macvlan, qui n´est pas disponible en interface graphique.

On se connecte en ssh, puis en root et on tape en adaptant :

docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 --ip-range=192.168.0.100/32 -o parent=ovs_eth0 plex_lan

Donc ici vous devez avoir l’identique sauf pour :
SUBNET : si votre réseau local est en 192.168.0.X, alors vous mettez 192.168.0.0, on laissera le /24, qui indique que votre réseau commence de l´ip 192.168.0.1 à 192.168.0.254

GATEWAY : l´adresse IP de votre routeur, tout simplement.

RANGE : Ici j´ai tenté plusieurs manoeuvres, on ne peut fixer l´ip d´un docker qu´en le lançant manuellement en ligne de commande, au relancement il prendra la première ip disponible du range, donc nous allons faire simple ici, vous mettez l´ip que vous voulez pour votre serveur plex, le /32 fera qu´il n´y aura que cette IP de disponible pour cette interface réseau.

PARENT=OVS_ETH0 :
Alors si vous avez open vswitch d´activé cela sera ovs_ethX, sinon cela sera ethX (X correspond à l´interface lan que vous voulez, 0 étant lan 1, 1 étant lan 2, etc...).

PLEX_LAN : le nom de l´interface réseau.

 

Étape 2 :

La suite à adapter aussi si vous avez mis un autre nom à l´interface.

Dans docker, vous allez sur « conteneur », vous sélectionnez votre dock plex, vous sélectionnez « paramètre » puis « exporter », vous laissez coché la case « Exporter les paramètres du conteneur » et mettez la destination.
Maintenant ouvrez le fichier json créé, vous remplacez :

"network" : [
      {
         "driver" : "host",
         "name" : "host"
      }
   ],
   "network_mode" : "host",

Par :

"network" : [
      {
         "driver" : "macvlan",
         "name" : "plex_lan"
      }
   ],
   "network_mode" : "plex_lan",

 

Une fois ces manoeuvres terminées, supprimez votre dock plex, vous sélectionnez « paramètre » puis « Importer » et on reprend la configuration fraichement modifiée, vous retrouvez votre dock plex, mais cette fois ci avec sa propre IP et affranchie de votre NAS au même titre qu´une VMM.

Avis Perso : Dans mon cas, je l´ai fait pour la 4G, alors oui on ne peut pas ouvrir les ports en 4G, mais on a le relai de plex, qui en plex pass donne 2Mbps de bande utilisable, toute qualité en 720p et moins restera dans sa qualité, le 1080p sera dégradé en 480p.
Quand on a l´adsl et son petit Mbps... on passe de vidéo lissée et passable... à une qualité enfin honorable.

Voilà c’est fini :razz:

Modifié par Einsteinium
IV étape 2 - update script
Posté(e)

Et bien disons que quand tu transcode matériellement, tu soulages le proco... sans, ton cpu utilisera toute les ressources qu’il pourra, avec tu seras plus au alentour des 30% de sollicitation.

Maintenant sans ou avec, dans mon cas, je ne vois aucune différence à l’usage (je transcode 5 flux Max en même temps), à part le soulagement du cpu.

Posté(e)

Ah oui quand même !

Par contre comment c'est possible de faire 5 transcodages simultanés avec un processeur de NAS qui est normalement inférieur à 2000 de benchmark. 2000 étant le minimum recommandé par Plex pour effectué 1 transcodage. 

Posté(e)

Sur les 5 flux en générale seul 2 son hd, les 3 autres sd.

Une bonne optimisation de plex et puis tu ne lance jamais les flux en même temps, donc le serveur joue la balance pour le transcodage  :mrgreen:

Personnellement je tends à faire disparaître le transcodage en mettant ma bibliothèque en h264, format lu nativement par les lecteurs plex.

Posté(e)

Pas chez moi, j'ai l'erreur suivante : "This XML file does not appear to have any style information associated with it. The document tree is shown below" avec un XML en dessous et tout plein d'information.

De plus, je n'ai pas le même fichier JSON qu'indiqué, en pièce jointe les premières lignes de celui-ci. J'ai bien suivie le tuto et pris la même image.

 

 

Capture d’écran 2018-02-23 à 19.07.44.png

Posté(e)

Cela arrive comme bug, quand le serveur et pas réclamé...

Concernant le json, c’est clair, tu dois supprimé un paramètre et en modifier un autre, qu’importe ensuite les autres différences de ce dernier, si j’ai mis en image. C’est pour que cela soit bien visible. (Encadrer jaune)

Posté(e) (modifié)

ça marche merci ! Je pensais avoir une erreur de configuration vu qu'il n'est pas exactement comme le tient.

Edit : mb je sais pas lire :neutral:

Modifié par Skylnex
Posté(e)

Ok j'ai tout configuré tout semble marché correctement.

Par contre, Plex m'indique une mise à jour dans les paramètres, alors que j'ai saisie dans les paramètres du container : VERSION / public. J'ai bien redémarré mon container.

Posté(e)

Je suis Plex pass pour un mois car je voulais tester si c'est indispensable, de plus il me semble que le transcodage matériel est disponible seulement pour le Plex pass donc je verrai.

Je suis en version 1.10.1.4602

Posté(e)

Ah bah voilà c’est normal, faut mettre latest pour avoir les versions bêtas plexpass, sinon tu auras ce message.

Effectivement j’avais lu aussi que c’était réservé aux membres plexpass le transcodage, mais là je serais pas te dire, j’ai direct pris l’abonnement.

Sinon pour avoir les alertes de maj, tu peux mettre une alerte sur ce topic : http://forums.plex.tv/discussion/62832/plex-media-server/p11

 

Posté(e)

Effectivement ça se met à jour actuellement :). Super merci !

Petite question qui n'a rien à voir avec Plex mais avec docker, est-ce que sur tous les container tu coche "utiliser le même host que docker", pour PlexPy, Sonarr, Radarr.

Posté(e) (modifié)

Petit problème lors de la Maj, j'ai ce message dans les logs "Atempting to upgrade to: 1.11.3.4803-c40bba82e" qui bloque le démarrage du container. C'est très long (plus d'une heure)

Modifié par Skylnex

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.