Aller au contenu

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

Featured Replies

Posté(e)
Le 21/05/2021 à 21:02, GrOoT64 a dit :

Bonsoir,
Alors soi je suis idiot, soi ça a changé ça ?
Merci

Quelqu'un a une idée ou peu m'aider pour le transcodage ?
J'ai donc DSM 7 (le tout dernier mis à jour aujourd'hui) et le dernier plex sous docker.

  • Réponses 1 k
  • Vues 221 k
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Most Popular Posts

  • Merci @MilesTEG1 il est bien en host ... Visiblement d'autres rencontrent le même problème plex token not written to preferences on first run · Issue #100 · linuxserver/docker-plex · GitHub

  • Merci @Einsteinium pour ce tuto. Je viens de le mettre en place, c'est top. Efficace et fonctionnel. De même pour le transcodage Hardware (transcodage de vidéos 4k sur smartphone à distance en 4G

  • Bonjour, Ça dépend si tu l'as activé ou non. C'est dans "Panneau de configuration > Réseau > Interface réseau > Gérer > Paramétre d'Open vSwitch" C'est disponible sur les NA

Images postées

Posté(e)

@GrOoT64 Il faut Plex Plass pour avoir le transcodage hardware.
Ou est-ce que cela a changé?

Modifié par cadkey

Posté(e)

@GrOoT64, d'accord, je n'avais pas lu que tu avais Plex pass.
Mon Plex n'est pas installé via Docker, je ne saurai te répondre dans ta configuration.
Dans mon cas je l'active depuis Plex Medis Server directement.
Mais en pratique, je fais différemment. je valide 'désactiver le transcodage du flux vidéo' et je traite mes vidéos (les bandes sons dans mon cas) préalablement. Car tous mes clients (dans la maison et ceux à qui j'ai donné accès) ont une box android et une tv qui lisent 1080p, 4K et à minima AC3 5.1 et EAC3 5.1. donc je transforme mes vidéos  dans ces formats audios si elles ne le sont pas déjà, avant de les mettre sur mon serveur.
Et si j'ai besoin de regarder une vidéo sur mon smartphone nécessitant un transcodage vidéo, je l'autorise depuis mon smartphone. dans les parametres PMS via le site plex.tv.

Modifié par cadkey

Posté(e)

Merci pour ton retour, moi j'ai 26 utilisateurs qui utilisent mon serveur avec plusieurs périphériques différents donc je ne peux pas me permettre ton encodage.

Posté(e)

J'en ai beaucoup également sinon le probleme ne se poserait pas.
C'est pour cela que j'ai choisi de traiter toutes les bandes son préalablement une fois pour toutes avec un script sur des dossiers complets via ffmpeg. 67To sur un G Suite via rclone crypt. Ma limite est uniquement ma connexion fibre 1Go.
Je ne fais aucun encodage vidéo à la volée, je fais du pré-traitement sur mes mkv.

Modifié par cadkey

Posté(e)

Bonjour @EVOTk, tu as une idée pour mon soucis de transcodage HW ?
Je rappelle ma config : 
DS918+ et DS418play sous DSM 7 
PMS sur les 2 NAS via Docker.
Dans le .json , je n'ai pas de "device" je ne peux donc pas le modifier...
J'ai quand même tenté de le rajouter mais ça ne change rien.

Export de mon .json en ci-dessus :

Citation

{
   "cmd" : "",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : true,
   "enabled" : true,
   "entrypoint_default" : "/init",
   "env_variables" : [
      {
         "key" : "PATH",
         "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      {
         "key" : "HOME",
         "value" : "/root"
      },
      {
         "key" : "LANGUAGE",
         "value" : "en_US.UTF-8"
      },
      {
         "key" : "LANG",
         "value" : "en_US.UTF-8"
      },
      {
         "key" : "TERM",
         "value" : "xterm"
      },
      {
         "key" : "NVIDIA_DRIVER_CAPABILITIES",
         "value" : "compute,video,utility"
      },
      {
         "key" : "DEBIAN_FRONTEND",
         "value" : "noninteractive"
      },
      {
         "key" : "PLEX_DOWNLOAD",
         "value" : "https://downloads.plex.tv/plex-media-server-new"
      },
      {
         "key" : "PLEX_ARCH",
         "value" : "amd64"
      },
      {
         "key" : "PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR",
         "value" : "/config/Library/Application Support"
      },
      {
         "key" : "PLEX_MEDIA_SERVER_HOME",
         "value" : "/usr/lib/plexmediaserver"
      },
      {
         "key" : "PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS",
         "value" : "6"
      },
      {
         "key" : "PLEX_MEDIA_SERVER_USER",
         "value" : "abc"
      },
      {
         "key" : "PLEX_MEDIA_SERVER_INFO_VENDOR",
         "value" : "Docker"
      },
      {
         "key" : "PLEX_MEDIA_SERVER_INFO_DEVICE",
         "value" : "Docker Container (LinuxServer.io)"
      },
      {
         "key" : "PLEX_CLAIM",
         "value" : "BLABLABLABLABLABLA"
      },
      {
         "key" : "TZ",
         "value" : "Europe/Paris"
      },
      {
         "key" : "VERSION",
         "value" : "latest"
      },
      {
         "key" : "PUID",
         "value" : "6969"
      },
      {
         "key" : "PGID",
         "value" : "100"
      }
   ],
   "exporting" : false,
   "id" : "BLABLABLABLABLABLA",
   "image" : "linuxserver/plex:latest",
   "is_ddsm" : false,
   "is_package" : false,
   "links" : [],
   "memory_limit" : 6442450944,
   "memory_limit_slider" : 8192,
   "name" : "Plex",
   "network" : [
      {
         "driver" : "host",
         "name" : "host"
      }
   ],
   "network_mode" : "host",
   "port_bindings" : [],
   "privileged" : false,
   "shortcut" : {
      "enable_shortcut" : false
   },
   "use_host_network" : true,
   "volume_bindings" : [
      {
         "host_volume_file" : "/ADULTES - SERIES ANIMEES",
         "mount_point" : "/data/adults-tvshows",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/DESSINS ANIMES",
         "mount_point" : "/data/dessins-animes",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/SPECTACLES",
         "mount_point" : "/data/spectacles",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/EMISSIONS",
         "mount_point" : "/data/emissions",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/DOCUMENTAIRES",
         "mount_point" : "/data/documentaires",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/CONCERTS",
         "mount_point" : "/data/concerts",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/SERIES ANIMEES",
         "mount_point" : "/data/tvshows-animees",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/VIDEO",
         "mount_point" : "/data/movies",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/SERIES",
         "mount_point" : "/data/tvshows",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/MUSIC",
         "mount_point" : "/data/musics",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/docker/Plex/Certificat",
         "mount_point" : "/certificat",
         "type" : "rw"
      },
      {
         "host_volume_file" : "/docker/Plex/Transcode",
         "mount_point" : "/transcode",
         "type" : "rw"
      },
      {
         "host_volume_file" : "/docker/Plex/Config",
         "mount_point" : "/config",
         "type" : "rw"
      }
   ]
}

 

Modifié par GrOoT64

Posté(e)
  • Auteur
Il y a 16 heures, cadkey a dit :

Mais en pratique, je fais différemment. je valide 'désactiver le transcodage du flux vidéo' et je traite mes vidéos (les bandes sons dans mon cas) préalablement. Car tous mes clients (dans la maison et ceux à qui j'ai donné accès) ont une box android et une tv qui lisent 1080p, 4K et à minima AC3 5.1 et EAC3 5.1. donc je transforme mes vidéos  dans ces formats audios si elles ne le sont pas déjà, avant de les mettre sur mon serveur.

Si tu désactive cette option, alors le serveur ne transcode alors plus que le son, ce dernier ne mange pour ainsi dire aucune ressource... tu perds beaucoup de temps à réencoder pour rien...

 

@GrOoT64 tu as fais un petit script qui doit être exécuté à chaque reboot ? non car sans cela, tu auras beau le mettre dans le json, le docker y aura pas accès 🙂

 

#!/bin/sh

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

 

Posté(e)

Bonjour @Einsteinium
Le script est bien présent sur mon NAS, je l'ai exécuté de nouveau au cas où...
Mais je ne peux pas rajouter (ou ne sais pas rajouter) ça :

Le 20/02/2018 à 22:20, Einsteinium a dit :

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

Puisque dans l'export de ma config, je n'ai pas de ligne "devices" ^^

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

Si tu désactive cette option, alors le serveur ne transcode alors plus que le son, ce dernier ne mange pour ainsi dire aucune ressource... tu perds beaucoup de temps à réencoder pour rien...

Tout à fait ^^

Cependant, j'ai constaté un effet de bord sur ma TV (Sony AF8), lors du transcodage de l'audio. Les sous-titres SRT se finissent plus vite que prévu... ce qui rend parfois leur lecture (même pour un aguerri comme moi), un peu délicate. Heureusement pour moi que je comprends plutôt bien l'anglais/américain.

edit : on en a parlé dans le sujet sur HFR.

Posté(e)
  • Auteur
il y a 2 minutes, MilesTEG1 a dit :

La chance 🍀

Ou bien c'est ta TV qui fait ce qu'il faut pour 😅

Je prends que du bon c'est pour sa 🤣🤣

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

@GrOoT64 Tu le rajoutes ou tu veux, genre après cpu prioritty 🙂

Ok je test ça.
Quelqu'un peut m'envoyer une capture de sa conf de PMS dans Transcodeur ?
Moi j'ai ça

image.thumb.png.687a820900878ed08b1972c6bf86afa3.png

image.thumb.png.ef5a06a3b7ea05a757b8c3ee9a5f0382.png

Posté(e)

@Einsteinium Je viens de remarquer une différence entre DSM 6 et DSM 7 en voyant le message de @GrOoT64.
/dev/driv/renderD128 n'appartient plus à root/root mais root/videodriver.

J'ai cherché avec find, je n'ai trouvé aucun autre fichier qui appartienne à ce groupe.
Il serait dès lors beaucoup plus propre que l'utilisateur exécutant Plex via Docker soit membre de ce groupe, les permissions étant 660 par défaut ça devrait être fonctionnel. Et c'est beaucoup moins dangereux et permissif qu'un chmod 666.

Il semblerait que le paquet Plex Media Server pour DSM 7 soit prévu pour utiliser ce groupe :

https://www.gitmemory.com/issue/SynoCommunity/spksrc/4215/757384200 (pas directement lié vu qu'on parle de ffmpeg ici, mais on voit que Plex est inclus dans le groupe videodriver).

Posté(e)

Merci @.Shad. mais je pense avoir besoin d'un peu plus d'explication lol
Je dois faire quoi du coup ? 🙃

Posté(e)
il y a 12 minutes, .Shad. a dit :

/dev/driv/renderD128 n'appartient plus à root/root mais root/videodriver.

J'ai cherché avec find, je n'ai trouvé aucun autre fichier qui appartienne à ce groupe.
Il serait dès lors beaucoup plus propre que l'utilisateur exécutant Plex via Docker soit membre de ce groupe, les permissions étant 660 par défaut ça devrait être fonctionnel. Et c'est beaucoup moins dangereux et permissif qu'un chmod 666.

Oh ! Ça change aussi de ce coté là !
Heureusement que je n'ai pas encore lancé la migration du 920+ vers DSM7.
Faut d'abord que je vois si mon script est encore utile ou pas...

Rappel, mon script fait ceci, à chaque reboot :
 

sudo chmod 666 /dev/dri/card0 /dev/dri/renderD128

Du coup il faudrait que je change le 666 par un 660, c'est ça ?
Et que mon user PMS appartienne au groupe videodriver ? C'est faisable via l'UI DSM ? Ou faut passer par une ligne de commande...

Posté(e)

Non rien de tout ça lol. C'est une suggestion soumise à l'expert mdr.

Posté(e)
  • Auteur
il y a 20 minutes, .Shad. a dit :

@Einsteinium Je viens de remarquer une différence entre DSM 6 et DSM 7 en voyant le message de @GrOoT64.
/dev/driv/renderD128 n'appartient plus à root/root mais root/videodriver.

J'ai cherché avec find, je n'ai trouvé aucun autre fichier qui appartienne à ce groupe.
Il serait dès lors beaucoup plus propre que l'utilisateur exécutant Plex via Docker soit membre de ce groupe, les permissions étant 660 par défaut ça devrait être fonctionnel. Et c'est beaucoup moins dangereux et permissif qu'un chmod 666.

Il semblerait que le paquet Plex Media Server pour DSM 7 soit prévu pour utiliser ce groupe :

https://www.gitmemory.com/issue/SynoCommunity/spksrc/4215/757384200 (pas directement lié vu qu'on parle de ffmpeg ici, mais on voit que Plex est inclus dans le groupe videodriver).

Effectivement pour le coup on pourrait rajouté l’utilisateur directement dans le groupe, maintenant cela serait en ligne de commande, la question c’est est ce qu’une modification de l’utilisateur, le fera sauter du groupe videodriver… ?

Maintenant on réduit à l’utilisation de la partie graphique, pas grand risque à craindre 🙂

Posté(e)

image.png.eda8289ca436285f0a14a45a66fea231.png

Quand je rajoute la lignes "device", je perds la possibilité de transcoder tout court

Posté(e)

je peux pas avoir ta config ? ta DSM 7 aussi ça pourrait peut-être m'aider

Posté(e)
  • Auteur
il y a 26 minutes, GrOoT64 a dit :

je peux pas avoir ta config ? ta DSM 7 aussi ça pourrait peut-être m'aider

Moi je passe plus par les json, mais via un petit bash que j’exécute chaque nuit, afin de ne plus avoir à surveiller les update de l’image sur github ^^

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…

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.