Aller au contenu

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


Einsteinium

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

@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
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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" ^^

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

@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).

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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 🙂

Lien vers le commentaire
Partager sur d’autres sites

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.