Aller au contenu

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


Messages recommandés

Posté(e)

Bonjour,
Après une utilisation d'un mois de 2 serveurs PLEX via docker compose, j'ai un petit désagrément.
Je m'explique: je me connecte sur mon PC tout le temps via app.plex.tv et les 2 serveurs ne me font pas part des mises à jours à installer.
Il faut que je redémarre les conteneurs pour savoir si il y avait une mise à jour ou non.
J'ai loupé quelque chose ?

Merci.

Posté(e)

Je sais pas trop. 
Je viens de refaire mon docker-compose.
J'ai mis : 

services:
  plex_PlexMediaServer:
    #image: linuxserver/plex:latest
    # https://github.com/linuxserver/docker-plex
    image: ghcr.io/linuxserver/plex:latest

L'image n'était pas en :latest
Je ne sais pas si c'est ça mais j'ai modifié.

De plus dans l'interface de PLEX, j'ai modifié ceci :

image.png.afe36fca62503d21358480320ff50e7f.png

Pareil, je ne sais pas si c'est utile mais en effectuant ce changement, j'ai eu une mise à jour de proposée...

Les notifications sont elle envoyées à tous les utilisateurs PLEX ou seulement au compte ADMIN ?
Moi qui partage mes bibliothèques avec pas mal de personnes...

Posté(e)
il y a 31 minutes, GrOoT64 a dit :

donc si j'ai le couple "latest" et "public" c'est le mieux ?

Le mieux c’est de ne pas mettre latest et de spécifier une variable d’environnement docker pour dire quel type de mise à jour tu veux.

je remets mon docker-compose.yml, lit les commentaires 😇

 

Citation

---
version: "2.4"
services:
  plex_PlexMediaServer:
    #image: linuxserver/plex:latest
    # https://github.com/linuxserver/docker-plex
    image: ghcr.io/linuxserver/plex
    container_name: plex_PlexMediaServer
    network_mode: host
    environment:
      - PUID=1000  # Utiliser la commande (en SSH) : id NOM_UTILISATEUR
      - PGID=100
      - TZ=Europe/Paris
      #- LANG=fr_FR.UTF8
      #- LANGUAGE=fr_FR.UTF8
      - UMASK=022 #optional
      - VERSION=docker    # docker : Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date
                          #          with the latest public builds.
                          # latest : will update plex to the latest version available that you are entitled to.
                          # public : will update plexpass users to the latest public version, useful for plexpass users
                          #          that don't want to be on the bleeding edge but still want the latest public updates.
                          # <specific-version>: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to
                          #                     install, note you cannot use this to access plexpass versions if you do not
                          #                     have plexpass.
                          # Dernière version connue pour être OK : (en cas de plantage dûe à une MAJ foireuse)
                          #        1.22.1.4275-48e10484b

      # Si plex est en mode HOST, la ligne suivante n'est pas nécessaire.
      #- PLEX_CLAIM=BLABLA #obtain claim token https://plex.tv/claim expire within 4 minutes.
      
      # Section pour changer le thème à PMS via DOCKER_MODS
      #    - Utilisation de ce dépôt : Source : https://github.com/gilbN/theme.park/wiki/Gitea
      #      Possibilités :  changer xxXXxx dans la ligne  - TP_THEME=xxXXxx
      #                      par :
      #                               aquamarine      <--- Pas mal celui là.
      #                               hotline
      #                               plex            <--- TOP
      #                               dark            <--- TOP
      #                               space-gray      <--- TOP, mon préféré !
      #                               organizr-dark
      - DOCKER_MODS=ghcr.io/gilbn/theme.park:plex
      - TP_THEME=space-gray
    
    # ###############
    # Le label ci-dessous permet à Watchtower de faire les mises à jour automatiquement
    # Cela peut-être supprimé si Watchtower n'est pas utilisé.
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    # ###############

    volumes:
      - "/volume1/docker/plex/config:/config"
      - "/volume1/docker/plex/transcode:/transcode" #optional
      - "/volume2/medias_1:/data/tvshows:ro"
      - "/volume2/medias_2:/data/movies:ro"
      - "/volume2/medias_3:/data/videos:ro"
    
    # Ce qui suit permet au conteneur PMS d'accéder à l'accélération matériel sans avoir besoin d'exporter puis éditer le fichier de configuration JSON du conteneur
    # 
    # Il faut quand même faire le script de modification de permissions.
    devices:
      - /dev/dri:/dev/dri #optional
    
    restart: unless-stopped
    
    # Les valeurs ci-dessous sont à adapter à la quantité de RAM de votre NAS.
    # Sur mon 920+ j'ai 12Go de RAM.
    mem_limit: 4096m
    mem_reservation: 2048m

Ps : désolé j’ai pas la balise code sur mobile…

Posté(e)
il y a 46 minutes, MilesTEG1 a dit :

    - VERSION=docker    # docker : Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date

Donc là je laisse docker ?

Posté(e)
il y a 2 minutes, GrOoT64 a dit :

Donc là je laisse docker ?

Oui si tu veux que PMS se mette à jour  en redémarrant ton conteneur.

ça n’empêchera pas de devoir mettre à jour le conteneur soit en le recréant manuellement soit en utilisant Watchtower.

Posté(e)
Il y a 1 heure, MilesTEG1 a dit :

@GrOoT64

c’est couillu de mettre son PMS en mode bêta pour les maj…

il y a fréquemment des versions bêta qui cassent tout… 

J’ai dû connaître qu’une seule fois un bug d’une bêta en 3 ans, corrigé rapidement.

Le canal de mise à jour, c’est lui qui donne la notification dans le panel de Plex et permet la mise à jour manuel.

Maintenant toujours le faire via un redémarrage du docker, jamais en manuel, cela évite des problèmes.

A partir du moment où tu as mis latest en variable dans le docker et que tu as le plexpass tu auras la dernière bêta installé à chaque reboot, si tu n´en veux pas, c’est là où il faut mettre public.

Posté(e)
Il y a 2 heures, Einsteinium a dit :

A partir du moment où tu as mis latest en variable dans le docker et que tu as le plexpass tu auras la dernière bêta installé à chaque reboot, si tu n´en veux pas, c’est là où il faut mettre public.

Il y a aussi l'option Docker pour l'image LinuxServer :

      - VERSION=docker    # docker : Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date
                          #          with the latest public builds.
                          # latest : will update plex to the latest version available that you are entitled to.
                          # public : will update plexpass users to the latest public version, useful for plexpass users
                          #          that don't want to be on the bleeding edge but still want the latest public updates.
                          # <specific-version>: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to
                          #                     install, note you cannot use this to access plexpass versions if you do not
                          #                     have plexpass.
                          # Dernière version connue pour être OK : (en cas de plantage dûe à une MAJ foireuse)
                          #        1.22.1.4275-48e10484b

Je préfère laisser Docker gérer ça... Un reboot du conteneur permet aussi de mettre à jour le PMS qui est une sorte de routine indépendante à l'intérieur du conteneur, comme tu le dis @Einsteinium.

Mais du coup, tu soulèves un point intéressant : est-ce que laisser la variable sur DOCKER est intéressant ? 

Et surtout, pour ceux qui n'ont pas watchtower de paramétré pour faire les MAJ automatiquement des images de conteneurs, est-ce que ça change quelque chose ?

Posté(e)

Dernier petit truc, quand je rejoute un épisode s'une série par exemple, la bibliothèque ne se met pas à jour seule... 
Pourtant j'ai ces réglages
image.png.94ff0f8c73c027b4c0af8e4c7c0f34c5.png

Posté(e)
Il y a 11 heures, Einsteinium a dit :

Fait un clic droit sur ton dossier multimédia et dit moi le nombre le de dossier 🙂

Qui englobe tous les documents PLEX?

Rien que le dossier partager séries contient 20229 fichiers et 693 dossiers

Jsuis en train de faire ta requête en SMB c'est un peu long... lol

Posté(e)

Bonjour,

Je viens d'installer le container plex en suivant les instructions, ça fonctionne ; merci encore pour ce beau tutoriel.

Néanmoins je bloque à l'étape d'activation du transcodage matériel.

Je parviens sans problème à chmoder /dev/dri/renderD128 et le script est en place pour s'exécuter à chaque redémarrage par l'user root.
En passant, j'ai aussi un /dev/dri/card0 ; à quoi ça correspond ? On doit lui appliquer un chmod 666 aussi ?

En revanche, impossible de trouver trace de ces lignes dans mon fichier de conf .json.

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

J'ai donc pris le parti d'ajouter les lignes nécessaires juste après celle visant la priorité de cpu mais les lignes ne sont pas conservées par docker !
En effet, si j'importe le json, lance le container et re-exporte le json, mes éditions ont disparues et je me retrouve au point de départ 😞

 

A toutes fins utiles, j'attache le json tel qu'exporté et celui que j'importe.
Je précise que je modifie le json soit via l'éditeur de texte de dsm soit via sublimetext donc, normalement, je n'importe pas de fichier foiré.

plex.syno.json_edited plex.json_original

Posté(e)
Le 15/07/2021 à 08:00, GrOoT64 a dit :

Rien que le dossier partager séries contient 20229 fichiers et 693 dossiers

D’accord donc c’est pas beaucoup et suffisant pour être pris en compte par plex.

Il y a 2 heures, Amsonia a dit :

On doit lui appliquer un chmod 666 aussi ?

Non, on l’utilise pas 😉

C’est normal les lignes ne seront pas dans l’export, mais ne t’en fait pas la modification est bien prise en compte.

Posté(e)

Il y a probablement quelque chose que j'ai du faire à côté de la plaque car je ne vois pas le '(hw)' quand je force un transcodage.

Je lis depuis http://app.plex.tv, sur le même LAN que celui où est le NAS.
J'ai le plexpass si jamais cela a une importance quelconque.

Voici le fichier que j'ai importé pour re-créer le container. On y voir bien les lignes nécessaires même si, comme dit, j'ai du les ajouter purement et simplement.

plex.syno.json


Comme dit précédemment, le json exporté ne contenait pas les lignes suivantes

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

 

Et comme on le voit ci-dessous, mon /dev/dri/renderD128 a bien été chmodé en 666.

image.png.e17b0c3f83fd7faadaa9a6641ee4b20b.png

 

Par ailleurs, voici une capture d'écran de ma configuration de transcodage au sein de Plex :

firefox_DO7W4T0XbY.thumb.png.a3daadb59cd5005d52716f75515f1300.png

 

Enfin, voici une capture vidéo du moniteur de ressources CPU dans Plex : https://www.fromsmash.com/plex
Le premier plateau correspond au lancement du transcodage du film puis on voit que ça se calme avec l'utilisation par Plex aux alentours de 30% de CPU (ligne verte).
Le second plateau correspond au moment où j'ai fait un gros saut dans la lecture de la vidéo : le système a du se reconstituer un cache d'images transcodées, puis ça se calme à nouveau.
Ce comportement correspond-il au transcodage matériel ?

 

Posté(e)
Il y a 7 heures, Einsteinium a dit :

Modification pour la partie transcodage en rajoutant des droits :

chmod 660 /dev/dri/card0

Le docker utilise maintenant les pilotes officiels du dépôt d’Intel, il réclame les droits dessus.

Le chmod n'était pas déjà en 660 ?
Je viens de vérifier mon script lancé au démarrage du NAS et il est déjà en 660. Depuis longtemps XD 

Posté(e)
il y a 21 minutes, Einsteinium a dit :

@MilesTEG1 Seulement sur le render128 avant, les nouveaux drivers demande maintenant aussi card0, je ne donne jamais de droit superflus pour ma part si ce n’est pas nécessaire 😉

Haa, voilà mon script :

#!/bin/bash

# Script de modification de permissions sur l'interface de l'IGPU du NAS
# Pour que le media-serveur puisse transcoder avec le hardware.

#Startup Script
#Access for HW Decoder Plex/Emby/Jellyfin
echo -e "\n$(date "+%R:%S -") Script de modification de permissions sur l'interface de l'IGPU du NAS\n"
echo -e "$(date "+%R:%S -") Lancement de la commande : sudo chmod 660 /dev/dri/card0 /dev/dri/renderD128\n"

if [ -d /dev/dri ]; then
  sudo chmod 660 /dev/dri/renderD128
fi

echo -e "$(date "+%R:%S -") Script terminé\n"

exit 0

Il faut donc que je le modifie pour donner l'accès à card0, c'est ça ?

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.