Informations: N'ayant plus de NAS Synology, ce tutoriel n'est plus maintenu.
Vous pouvez toujours consulter : [Tuto] Installation de Jellyfin + Transcodage matériel (HW) + Acces HTTPS en Docker
Vous pouvez toujours consulter : [Tuto] Installation de Jellyfin + Transcodage matériel (HW) + Acces HTTPS en Docker
Bonjour,
Un nouveau petit tuto pour vous apprendre a installer Jellyfin en Docker sur votre NAS Synology, mais également, a activer le transcodage matériel ou hardware ( HW ).
Jellyfin, c'est quoi ?
Jellyfin est une suite d'applications multimédias conçues pour organiser, gérer et partager des fichiers multimédias numériques sur des appareils en réseau. Jellyfin se compose d'une application serveur installée sur une machine exécutant Microsoft Windows, macOS, Linux ou dans un conteneur Docker, et une autre application exécutée sur un appareil client tel qu'un smartphone, une tablette, une télévision intelligente, un lecteur multimédia en continu, une console de jeu ou dans un navigateur Web. Jellyfin peut également diffuser des fichiers multimédias sur les appareils compatibles DLNA et Chromecast. C'est un fork logiciel gratuit et open-source d'Emby.

A la différence de [Tuto] Installation de Jellyfin + Transcodage matériel (HW) + Proxy Ngnix HTTPS ( Docker-compose ) ce tuto n'utilisera pas docker-compose, nous allons créer le conteneur depuis l'interface de DSM mais il n'est pas prévu dans le tuto de parler accès extérieur.
Pré-requis :
Avoir installé le paquet Docker
Avoir un accès SSH au Synology*
Dans docker : télécharger l'image linuxserver/jellyfin:latest
* Pour faire cette manip, il vous faudra vous connecter en SSH à votre NAS, si vous ne savez pas le faire, vous trouverez ici un tuto explicatif : [Tuto] Acceder à son NAS en lignes de commande.
A modifier selon votre installation :
Toute mon installation, va ce faire dans un dossier partagé "docker"
Je vais donc installer jellyfin dans /docker/jellyfin
Les PUID/PGID de mon compte utilisateur sont : PUID=1030 PGID=100**
** Pour connaitre le PUID/GUID de l'utilisateur : [Tuto] Connaitre le PUID / PGID d'un utilisateur.
Sommaire :
1/ Télécharger le conteneur
2/ Création du dossier d'installation
3/ Paramétrage / Création du conteneur
4/ Accès a Jellyfin
5/ Activer le transcodage hardware (HW)
1/ Télécharger le conteneur
Nous allons télécharger le conteneur linuxserver/jellyfin, pour cela nous allons ouvrir docker et se rendre dans Registre et rechercher "plex".

Une fois l'image linuxserver/jellyfin, on clique dessus, puis sur Télécharger, on sélectionnera "latest".
2/ Création du dossier d'installation
Le chemin est basé sur mon installation, à adapter selon votre installation.
Voici le dossier a créer :
- /docker/jellyfin/config
3/ Paramétrage / Création du conteneur
Une fois l'image fini de télécharger, nous allons dans Image, nous sélectionnons linuxserver/jellyfin:latest et on clique sur Lancer.
Cette fenêtre s'affiche :

Il est possible de modifier, le nom "linuxserver-jellyfin1" qui est un nom par défaut, se nom sera le nom de votre conteneur t'elle qu'il apparaitra dans le liste de conteneur de Docker. On peut le nommer par exemple "Jellyfin" tout simplement.
Je vous conseil d'activer la limitation des ressources.
Priorité Moyen, par défaut c'est très bien.
Pour la RAM tout dépend de la quantité dispo sur votre machine, mais 2048Mo et a mon sens un minimum pour Jellyfin.
Ensuite, on clique sur Paramètres Avancés, dans Volumes :
Pour le fonctionnement de jellyfin, 2 dossiers sont obligatoires :
/config et /cache
Il vous faut les ajouter dans les volumes comme ceci :

Dans l'onglet "Volume", nous allons cliquer sur "Ajouter un dossier" et choisir le dossier "config" que nous avons créé précédemment pour l'installation de l'image. Le chemin de ce dossier sera /config.
Afin que Jellyfin accède a vos média, vous allez devoir lui donner accès, je vous est fait un exemple avec le dossier /music présent sur mon nas.
J'ai placé /music dans /data/music, a vous de faire la suite si par exemple, vous avez un dossier films, vous le placé de la même façon, cliquer sur Ajouter un dossier, sélectionner votre dossier /films, et dans la partie Chemins d'accès, indiquer : /data/films, ...
Dans l'onglet Réseau, nous allons cocher "Utiliser le même réseau que Docker Host"
Dans l'onglet Environnement, nous allons rajouter 3 variables :
TZ, c'est le fuseau horaire, j'ai choisi Europe/Paris.
PGID, Group id ( voir point "A modifier selon votre installation" au début du tuto ) ( dans mon exemple c'est 100 )
PUID, User id ( voir point "A modifier selon votre installation" au début du tuto ) ( dans mon exemple c'est 1030 )

Maintenant, on clique sur "Appliquer", puis "Suivant", et on arrive a la page suivante :

On clique sur "Appliquer" et le conteneur se créer, et démarre.
Dans l'onglet "Conteneur", on peu vérifier que notre conteneur est bien démarré !
4/ Accès a Jellyfin
Dans votre navigateur, il vous suffit maintenant de taper l'adresse ip de votre NAS suivi du port 8096 pour se connecter a l'interface Web de Jellyfin.
Exemple : Si l'ip de votre NAS est 192.168.0.20 alors l'adresse est http://192.168.0.20:8096
Bien sur, si le pare-feu de votre NAS est actif, ce port devra être autorisé dans celui-ci !
5/ Activer le transcodage hardware (HW)
A/ Application des permissions sur /dev/dri
Dans Panneau de configuration > Planificateur de tâches, nous allons créer une nouvelle taches ( Taches déclenchée > Script défini par l'utilisateur )

Je nomme la tache HW Jellyfin, l'utilisateur doit rester "root".

Dans Paramètres de la tache, je rentre le script suivant :
Code:
#!/bin/bash
#Startup Script
#Access for HW Decoder Jellyfin
chmod 666 /dev/dri/renderD128
exit

Maintenant, on clique sur OK, pour valider la création de la tâche.
Notre tache apparait dans la liste de tâches, on la sélectionne, et on l'Execute une 1ere fois !

B/ Modification du .json
Pour éviter tout soucis d'encodage, je vous conseil de le faire directement depuis DSM, à l'aide du paquets : Éditeur de texte
Il vous faut donc au préalable, aller dans Centre des paquets, et installer ce paquets si vous ne l'avez pas encore !

Ensuite, nous allons dans Docker, Conteneurs et on s'il est en route, on arrete le conteneur Plex
Puis, nous allons Exporter la configuration dans un dossier de DSM :

Ici je l'exporte dans /docker/Jellyfin

Maintenant, via File Station, je vais dans le dossier comprenant mon fichier exporté, chez moi /docker/Jellyfin, et dessus je clique droit pour l'ouvrir avec l'éditeur de texte :

Le début du fichier va resembler à ceci :

ll vous faudra remplacer ceci :
Code:
"devices" : null,
Par :
Code:
"devices" : [
{
"CgroupPermissions" : "rwm",
"PathInContainer" : "/dev/dri",
"PathOnHost" : "/dev/dri"
}
],
Voici ce que cela devrait vous donner :

Vous pouvez maintenant enregistrer le fichier :

Maintenant que notre fichier est prêt, nous allons l'exporter dans Docker, afin de remplacer notre conteneur jellyfin.
Dans l'application Docker > Conteneur, nous allons supprimer le conteneur Plex actuel :

Cette étape supprime le conteneur et sa configuration* uniquement, mais ni plex ou vos médias.
*configuration qui est contenu dans le fichier .json précédemment modifié !
Une fois, fait, nous allons Importer notre nouveau fichier .json de configuration de jellyfin :

On le sélectionne, et on valide, le conteneur va alors se créer :

Maintenant, nous démarrons notre conteneur Jellyfin grâce au petit bouton en bout de ligne du conteneur jellyfin :

C/ Activation du transcodage sur Jellyfin
Dans le Tableau de Bord de Jellyfin, nous allons dans l'onglet "Lecture"

Nous choisissons dans Accélération matérielle : Video Acceleration API

Le chemin Appareil VA API doit être enregistré comme l'image ci-dessous, et "Activer l'encodage matériel" activé :

En bas de page on enregistre :

et on confirme l'avertissement :

24/06/2020 - Rédaction du chapitre sur le transcodage hardware
Source: https://en.wikipedia.org/wiki/Jellyfin
Dernière édition: