Installation d’un home-cinema 4K avec Kodi Plex

Suite à la fermeture des cinémas, nous nous sommes lancés dans un projet qui nous tenait à coeur : la mise en place d’un « vrai » cinéma à la maison « home cinema ». C’est à dire, un video projecteur avec une vrai toile, un bon son et une installation confortable. Et même en bonus les M&ms 🙂

Analyse préalable de notre collection de films

Nous possédons une belle collection de film d’origines diverses et des abonnements à différents services de replay

  • Des blu-ray au format « standard » 1080p 24p, et en E-AC3, et des blu-ray 4K rippée au format MKV sous Plex.
  • Des DVD vidéos au format … DVD, 480p 24p, AC3. Rippée aussi au format MKV sous Plex.
  • Des abonnements à Disney+, Amazon Prime (donc, des films en 4K, 1080p)
  • Sans compter les replay divers et variés… et les enregistreur videos sur la TNT de Plex.
Une partie de notre collection …

Une remarque intéressante : les vidéos sont souvent au format 24p. Donc dans l’idéal, il faut un video projecteur le supportant pour éviter les effets de judder.

Judder ? Késako ?

Les films cinémas sont enregistrés bien souvent à 24 images / secondes. Mais pour être diffusé sur la télé ou des vidéoprojecteur 50Hz ou 60Hz, la TV va insérer des images mais pas tout le temps, et cela donne un effet de non fluidité aux mouvements rapides. Je ne vais pas rentrer dans les considérations techniques : Voir cette vidéo YouTube de la chaîne RTings (en anglais).

Le vidéoprojecteur n’aura pas de souci s’il gère une fréquence d’affichage en multiple de 24. En 120Hz ou 240Hz ce problème n’existe pas.

Pour la diffusion des vidéos, soit le vidéoprojecteur permet directement de décoder les différents formats, soit il vaut mieux utiliser un matériel dédié. Après une loooooongue analyse nous en avons conclus que la partie video devait être dédié à la vidéo, et non pas au décodage. Il s’agit essentiellement d’une question de chauffage : le videoprojecteur chauffe beaucoup et rajouter un processeur graphique dans un emplacement surchauffée est tout sauf une bonne idée. En gros : ça rame pour éviter que ça chauffe ! On alors faut payer une fortune… Sans compter le suivant de l’OS inexistant de ce genre de matériel.

Deux possibilités sont apparues :

  • Soit utiliser un mini-pc (type Mi Box android, ou type intel nuc sous windows 10) relié à bon videoprojecteur.
  • Soit utiliser un téléphone android permettant la diffusion via un cable USB-C vers HDMI, ou des clés Android (Google Chromecast, Amazon Fire TV stick, Nvidia Shield)

Nous avons exclus la seconde possibilité car elle ne permettent pas de brancher un lecteur Blu-Ray. Mais si vous n’en avez pas besoin, c’est une solution tout à fait valable. Attention tout de même : tous les Chromecast ne supportent pas le 24p!

Notre matériel

Un Mini PC : de marque AcePC, BT 4.2, WiFi 5G, Gigabit, un disque mSSD, des ports USB3, 8G de ram et décodage de la 4K en hardware.

Le videoprojecteur : un Vankyo fourni avec son écran de projection, acheté sur AliExpress, il supporte les flux en 24p, 50hz 60hz, 1080p et 4K

Une manette Bluetooth pour utiliser Kodi

Au niveau du son, en attendant mieux, nous avons deux grosses enceintes Bose (stéréo, donc)

Pour l’écran, nous avons fabriqué un cadre peint en noir et attaché la toile avec des agrafes, bien tendue. Pour tester le tout, nous avons utilisé un chromecast ultra (4K certes, mais pas 24p…)

Le rendu avant configuration logiciel

Configuration préalable du MiniPC

  1. Créer un compte dédié à la vidéoprojection
  2. Ajouter l’autologon pour ce compte : voir l’aide en ligne de Microsoft sur le sujet :

Configurer Windows pour automatiser la logon – Windows Server | Microsoft Docs

Autologon – Windows Sysinternals | Microsoft Docs

Configuration préalable de Kodi sur windows 10

  1. Télécharger et installer Kodi
  2. Installer l’extension PlexKodiConnect : suivre la procédure d’installation du github : Installation · croneter/PlexKodiConnect Wiki · GitHub
  3. Paramètre Kodi pour basculer en 24p automatiquement l’écran : Voir l’aide en ligne Settings/Player/Videos – Official Kodi Wiki. Le réglage dans notre cas a été positionné sur « on start / stop » qui permet de basculer en 60Hz dans les menus de Kodi et en 24p dans les films.

Démarrer Kodi automatiquement lors de l’ouverture de session

Kodi ne se lance pas tout seul au démarrage de la session windows 10 : il faut ajouter un petit programme compagnon appelée Launcher4Kodi :

XBMCLauncher / Launcher4Kodi – All in One Tool for Change Shell, Set Focus and more

Plugins de streaming (Disney+, Amazon Prime etc.)

Disney+

  • Ouvrir Kodi, ouvrir les Settings, puis File Manager
  • Double cliquer sur Add Source et sélectionner None. Valider le message si nécessaire.
  • Coller le lien suivant dans la barre d’adresse et la nommer SlyGuy
http://k.slyguy.xyz
  • Revenir au menu principal de Kodi, sélectionner le menu add-on. Cliquer sur Package installer, puis Install from Zip file. Rechercher puis installer SlyGuy
  • Ensuite, il faut se rendre dans le repository SlyGuy, et chercher Disney+ dans la liste des Add-ons vidéos et l’installer puis le configurer.
  • Lors du premier lancement d’une vidéo, Kodi va vous demander d’installer le plugin « InputStream Adaptative » et le codec Widevine, qui sont absolument nécessaires pour lire des videos protégées par DRM.

Amazon Prime Video

Quasiment le même principe, mais il faut aller chercher le repository et l’installer « à la main » depuis le github suivant :

Release Plugin Repository v1.0.3 for Leia and v1.0.0 for Matrix · Sandmann79/xbmc · GitHub

Ce projet nous a permis pour l’instant de profiter agréablement d’un certains nombre de films « presque comme au cinéma ».

Pour le futur, nous avons des évolutions prévues :

  • L’ajout du lecteur Blu-Ray USB, le tout relié avec Kodi. Tests à venir 🙂
  • Intégration d’Alexa à Kodi …en français
  • L’installation d’une vraie toile de cinéma électrique
  • Installation d’un son home-cinema..

Gestion avancées des photos depuis Plex

Plex est un super outils pour la gestion des vidéos, pour l’audio (surtout avec plexamp), pour la télé (les flux IPTV de free fonctionnent très bien via xTeve!). Pour les utilisateurs payants, c’est un produit qui vaut le coup et qui a peu de concurrence (emby…)

Et parmi tout ça. Plex permet également de gérer des photos.

Bon, là, faut être honnête, c’est pas terrible terrible. Les photos peuvent avoir des autotags à la « Google Photo » mais … rien de génial.

Rien que l’export d’une sélection de photos est à s’arracher les cheveux. D’ailleurs, ça tombe bien, c’est l’objectif de cet article 🙂

Prérequis : plex, des photos

Attention, le plugin n’a plus de suivi car Plex a décidé d’arrêter le support des plugins… mais ils continuent pour l’instant de fonctionner.

  • Etape 2 : Dans votre compte plex, sélectionner les photos que vous voulez exporter et (c’est le plus important!!!) leur ajouter un tag spécial. Par exemple « mon_beau_voyage »
Ah les voyages…
  • Etape 3 : Dans plex, il faut créer une playlist automatique à partir du tag « mon_beau_voyage »
  • Etape 4 : via le plugin WebTools exporter la playlist au format m3u

Il faut se rendre sur l’url du plugin webtools (par défaut : http://<nomserveur>:33400 ), puis dans la page « playlist ». Sélectionner la playlist automatique

  • Etape 5: extraire la liste des noms de fichiers du m3u

Chacun sa méthode, mais comme je suis linuxien via windows, j’utiliser mobaxterm, un petit script comme

cat playlist.m3u | grep "path=" | sort -u  > liste_photos.txt
  • Etape 6 : Recopier la liste des photos dans un dossier à part. J’insiste sur le recopier. On ne déplace pas ces photos pour rien 😉
  • Etape 7 : Faites ce que vous voulez des photos. Vous pouvez par exemple les transférer sur photobox.fr pour faire un magnifique album de vacances. Tadam!

Bon alors, c’était pas si compliqué que ça non ?

Oui bon, d’accord, c’est quand même bien infernal pour juste exporter 30 photos.

Et sinon, plex, c’est quand que tu décides à rajouter un fichu bouton exporter?

Monitorer XTeVe via monit

XteVe est un « proxy » vers des serveurs IPTV via des listes M3U. Je l’utilise avec mon FAI (Free) pour interfacer les chaînes multipostes avec plex. On peut également l’utiliser pour regrouper des multiples playlist d’IPTV gratuites (par exemple : https://github.com/iptv-org/iptv)

Consulter le site officiel pour plus d’informations : https://xteve.de/

Oui mais voilà, parfois lors de l’enregistrement, XteVe plante (grrr…). Donc, j’ai souhaité rapidement ajouter un monitoring automatique à xteve pour permettre de le relancer sans intervention manuelle.

La première étape consiste à « transformer » xteve en démon. Ensuite, il faut utiliser un logiciel de monitoring type monit pour le surveiller. C’est simple donc 🙂

Création d’un démon de service

Créer le fichier de service :

cd /etc/systemd/system/
sudo vi xteve.service

Copier le contenu suivant

[Unit]
Description=xTeVe Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/dossier_installation/xteve -config dossier_configuration
ExecReload=/usr/bin/killall xteve
ExecStop=/usr/bin/killall xteve
KillMode=process
Restart=always
RestartSec=15

User=running_user
Group=running_group
[Install]
WantedBy=multi-user.target

Attention à bien remplir les éléments manquants : dossier_installation,dossier_configuration, running_user et running_group.

On sauvegarde le fichier, puis on active le nouveau service :

sudo systemctl enable xteve
sudo systemctl start xteve

Création du fichier de monitoring pour monit

On crée un nouveau fichier pour ce monitoring ;

sudo vi /etc/monit/conf.d/xteve
check process xteve matching "xteve"
    start program = "systemctl start xteve"
    stop program = "systemctl stop xteve"
    if failed host 127.0.0.1 port 33400 with timeout 30 seconds for 3 cycles then restart

Attention à adapter le numéro de port du monitoring.

Ensuite, il ne reste plus qu’à relancer monit :

sudo /etc/init.d/monit restart

Et voilà, xteve fonctionne désormais tout seul.

… Et les mises à jour ?

Ah… oui… le défaut, c’est que xteve se met à jour uniquement au démarrage de l’application.

Donc, il faut également penser à le relancer de temps à autre pour qu’il puisse faire ces mises à jour. Pour cela, le plus simple reste à rajouter une ligne dans le crontab pour le redémarrer par exemple une fois par semaine le mardi vers 4h du matin (peu de chances d’enregistrer quelque chose…)

Ce qui donne dans crontab :

0 4 * * 1 systemctl restart xteve