Synology [Tuto] Installation de Jellyfin avec ou sans transcodage matériel avec Container Manager

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 297
1 599
278
/var/run/docker.sock
[Tuto] Installation de Jellyfin avec ou sans transcodage matériel avec Container Manager

Pourquoi ce tutoriel ? :giggle:
Voici un tuto, pour ceux qui souhaiterai installer Jellyfin en docker avec Container Manager sur un NAS Synology.

Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...

Sommaire :
1/ Création des dossiers
2/ Récupération du PUID et GUID
3/ Création et lancement du projet
4/ Accès à l'interface
5/ Activation du transcodage matériel


Aller go :)




1/ Création des dossiers
Depuis File Station, dans le dossier partagé docker, nous allons créer un dossier jellyfin, avec dedans un dossier config, et un dossier cache :
1687119691433.png




2/ Récupération du PUID et GUID
Pour l'instant, voir https://www.forum-nas.fr/threads/tuto-connaitre-le-puid-pgid-dun-utilisateur.13213/



3/ Création et lancement du projet
Direction Container Manager > Projet > Créer
Dans le nom du projet, je choisi jellyfin
Chemin : J'indique le dossier jellyfin qu'on a créé a l'étape 1
Source : Créer un fichier docker-compose.yml

1687119756908.png

Juste en dessous, je copie colle ce compose :
YAML:
version: '3.5'
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: <PUID>:<PGID>
    ports:                                                                                                                                                                                                                                                      
      - 8096:8096
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media
    restart: 'unless-stopped'
    devices:                                                                                                                                                                                                                                                    
      - /dev/dri/renderD128:/dev/dri/renderD128

Nous allons devoir personnaliser certaines choses :

- Dans la ligne "user: <PUID>:<PGID>", remplacer <PUID> par l'ID de l'utilisateur ( voir étape 2 ), et remplacer <PGID> par l'ID du groupe de l'utilisateur ( voir étape 2 ).
- Dans la ligne - /path/to/media:/media, remplacer /path/to/media par le chemin complet vers vos médias. Au besoin, depuis File Station, effectuer un clique doit sur le dossier > propriétés pour connaitre son chemin complet.

/!\ Si votre NAS n'est pas capable de faire du transcodage hardware, vous devez supprimer les lignes suivantes :
Code:
    devices:                                                                                                                                                                                                                                                     
      - /dev/dri/renderD128:/dev/dri/renderD128


1687121200699.png

Puis on valide avec Suivant !

1687120141864.png

On continu, on valide avec Suivant !

1687120155741.png
Et on clique sur Effectué, pour lancer la création et le lancement du conteneur !

Une fois la récupération de l'image terminée, et lancement du conteneur ok, on retrouver notre conteneur "au vert" dans Container Manager" :

1687120532870.png




4/ Accès à l'interface
Par défaut, Jellyfin écoute sur le port 8096. Il vous suffit donc de rentrer dans votre navigateur l'adresse de votre NAS suivant de :8096 pour accéder a l'interface de Jellyfin.

Exemple, si l'IP de votre NAS est : 192.168.1.20, alors l'adresse de Jellyfin sera : http://192.168.1.20:8096




5/ Activation du transcodage matériel
A venir, pour le moment, vous pouvez regarder le point C du tutoriel suivant par exemple :

 
  • J'aime
Réactions: sypqys et P4sh0u
Merci du tuto :)
Petite question, j"utilise la version linuxserver.io, y'a t-il une différence entre la version officielle et celle de linuxserver ?
 
[Tuto] Installation de Jellyfin avec ou sans transcodage matériel avec Container Manager

Pourquoi ce tutoriel ? :giggle:
Voici un tuto, pour ceux qui souhaiterai installer Jellyfin en docker avec Container Manager sur un NAS Synology.

Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...

Sommaire :
1/ Création des dossiers
2/ Récupération du PUID et GUID
3/ Création et lancement du projet
4/ Accès à l'interface
5/ Activation du transcodage matériel


Aller go :)




1/ Création des dossiers
Depuis File Station, dans le dossier partagé docker, nous allons créer un dossier jellyfin, avec dedans un dossier config, et un dossier cache :
Voir la pièce jointe 9338




2/ Récupération du PUID et GUID
Pour l'instant, voir https://www.forum-nas.fr/threads/tuto-connaitre-le-puid-pgid-dun-utilisateur.13213/



3/ Création et lancement du projet
Direction Container Manager > Projet > Créer
Dans le nom du projet, je choisi jellyfin
Chemin : J'indique le dossier jellyfin qu'on a créé a l'étape 1
Source : Créer un fichier docker-compose.yml

Voir la pièce jointe 9339

Juste en dessous, je copie colle ce compose :
YAML:
version: '3.5'
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: <PUID>:<PGID>
    ports:                                                                                                                                                                                                                                                      
      - 8096:8096
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media
    restart: 'unless-stopped'
    devices:                                                                                                                                                                                                                                                    
      - /dev/dri/renderD128:/dev/dri/renderD128

Nous allons devoir personnaliser certaines choses :

- Dans la ligne "user: <PUID>:<PGID>", remplacer <PUID> par l'ID de l'utilisateur ( voir étape 2 ), et remplacer <PGID> par l'ID du groupe de l'utilisateur ( voir étape 2 ).
- Dans la ligne - /path/to/media:/media, remplacer /path/to/media par le chemin complet vers vos médias. Au besoin, depuis File Station, effectuer un clique doit sur le dossier > propriétés pour connaitre son chemin complet.

/!\ Si votre NAS n'est pas capable de faire du transcodage hardware, vous devez supprimer les lignes suivantes :
Code:
    devices:                                                                                                                                                                                                                                                     
      - /dev/dri/renderD128:/dev/dri/renderD128


Voir la pièce jointe 9346

Puis on valide avec Suivant !

Voir la pièce jointe 9341

On continu, on valide avec Suivant !

Voir la pièce jointe 9342
Et on clique sur Effectué, pour lancer la création et le lancement du conteneur !

Une fois la récupération de l'image terminée, et lancement du conteneur ok, on retrouver notre conteneur "au vert" dans Container Manager" :

Voir la pièce jointe 9344




4/ Accès à l'interface
Par défaut, Jellyfin écoute sur le port 8096. Il vous suffit donc de rentrer dans votre navigateur l'adresse de votre NAS suivant de :8096 pour accéder a l'interface de Jellyfin.

Exemple, si l'IP de votre NAS est : 192.168.1.20, alors l'adresse de Jellyfin sera : http://192.168.1.20:8096




5/ Activation du transcodage matériel
A venir, pour le moment, vous pouvez regarder le point C du tutoriel suivant par exemple :

Bonjour

/path/to/media vers le chemin de nos médias, c'est-à-dire ?
là ou les données du NAS sont stockés, en gros, le chemin de la racine ou un dossier spécifique ?
<PUID>:<PGID>
peuvent-ils être identiques ?
 
/path/to/media vers le chemin de nos médias, c'est-à-dire ?
là ou les données du NAS sont stockés, en gros, le chemin de la racine ou un dossier spécifique ?
Chemin complet du dossier avec tes médias, celui que tu trouve quand depuis File Station tu regarder les propriétés d'un dossier ( /volume1/... )

PUID:pGID peuvent-ils être identiques ?
Sur un systeme Linux, c'est possible. Sur un NAS Synology en général PUID est égal a une valeur dans les 1000 ( exemple 1030 ), et le PGID plutot à 100, je n'ai pas encore vu de cas sur DSM ou les deux était identique.
 
  • J'aime
Réactions: sypqys
Chemin complet du dossier avec tes médias, celui que tu trouve quand depuis File Station tu regarder les propriétés d'un dossier ( /volume1/... )


Sur un systeme Linux, c'est possible. Sur un NAS Synology en général PUID est égal a une valeur dans les 1000 ( exemple 1030 ), et le PGID plutot à 100, je n'ai pas encore vu de cas sur DSM ou les deux était identique.
c'est un nombre ? Je croyais un nom d'utilisateur...
les médias ? est-ce à dire musique, vidéos confondus, ils sont dans des dossiers différents je crois...

je ne sais pas où trouver ces nombres...

Merci :)
 
je ne sais pas où trouver ces nombres...
Le lien vers le tuto est dans le topic :
 
  • J'aime
Réactions: sypqys
Bonjour à tous et tout d'abord merci @EVO pour son super tuto

L'objectif étant de se passer de Kodi et de basculer en mode client/serveur
Au début je penchais sur PLEX mais la nécessiter de se logger sur leur site m'a refroidi.

Je suis donc parvenu à installer Jellyfin dans le Container avec le tuto

Ma config :
DS220+ avec 2x 4to formatés en BTRFS et en RAID SHR (donc RAID 1 - deux HDD miroirs)
Jellyfin version LINUXSERVER dans Container avec accès en lecture/écriture au dossier Docker/jellyfin et en lecture seule au dossier contenant les médias
Pourquoi la version Linuxserver ? parce qu'elle permet l'ajout d'un mod pour conserver le transcodage hardware avec la dernière version de Jellyfin, qui ne fonctionne plus avec la version officielle (une histoire de version de drivers OpenCL)
Un accès distant en HTTPS via reverse proxy

Le YAML pour info :
Code:
---
version: "2.1"
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin-linuxserver
    environment:
      - PUID=1029
      - PGID=100
      - TZ=Etc/UTC
      - DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel-23.13.26032.30 // ce qui permet de pouvoir profiter de l'accès au GPU et conserver le transcodage hardware
    volumes:
      - ./config:/config // read/write par l'utilisateur Jellyfin
      - ./cache:/cache // read/write par l'utilisateur Jellyfin
      - /volume1/Vidéos/FILMS:/media // lecture seule par l'utilisateur Jellyfin
      - /dev/dri/renderD128:/dev/dri/renderD128
    ports:
      - 8096:8096
    restart: unless-stopped
    devices:                                                                                                                                                                                                                       
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0


Tout fonctionne correctement en dehors de quelques sujets de son multicanal mais qui est un problème client et non serveur (forcer le transcodage du DD TrueHD par exemple ou pouvoir lire des fichiers en DTS HD-MA 7.1), mais c'est un autre sujet.

La question du présent poste concerne plutôt quelque chose d'étrange lors de la lecture d'un film par un client : j'ai remarqué que les HDD grattent sans cesse lors de la lecture.
Le moniteur de ressource montre que les disques écrivent alors qu'ils devraient lire sauf erreur :

1704557580583.png

On voit bien les 2 HDD écrire à 1,8 MB/s en moyenne voire un peu plus lors de la lecture.

La question est donc pourquoi cette écriture constante ?
Quand j'utilisais Kodi, les HDD du NAS ne grattaient pas du tout.
Je précise en l'espèce qu'il s'agit bien d'une lecture directe sans transcodage.

Est-ce lié au fait que le dossier contenant les médias est en lecture seule et que la lecture vidéo est "écrite" dans le dossier Docker/Jellyfin avant d'être envoyée au client ?

Si quelqu'un a un tuyau à ce sujet car le NAS étant dans le salon c'est assez casse-pied de l'entendre gratter pour ça !

Merci !
 
Dernière édition:
@walloo peux-tu utiliser la balise de code pour le yaml ? Car la tu perds les Indentations…
La balise dont je parle est celle avec ce symbole : </>