Hier soir, j'ai enfin voulu tester mon propre Mediacenter sur ma Smart TV chez ma famille. J'ai récemment acheté Jellyfin une solution de serveur logiciel open source permettant d'obtenir une interface web similaire à Netflix et de visionner des séries et des films. La particularité est que le serveur peut également fonctionner sur mon ordinateur portable Windows et que l'on peut regarder les différents épisodes confortablement via l'interface. Bien sûr, on peut aussi chercher les différents fichiers vidéo dans le gestionnaire de fichiers de Windows, mais une interface similaire à Netflix est tout de même plus pratique.
Mais il n'est pas si simple de faire sortir cette expérience de streaming de son propre ordinateur portable et même pour moi, en tant qu'informaticien, je me demande pourquoi il faut que ce soit si difficile pour que l'on puisse faire du streaming.
Problème 1 : le pare-feu
En principe, le pare-feu est très important, car il empêche que quelqu'un puisse accéder au serveur/à l'ordinateur depuis Internet. On peut s'imaginer cela de manière imagée : Le pare-feu est une porte, mais même si l'on a une clé pour entrer, quelqu'un dans la maison doit d'abord la libérer pour que l'on puisse ouvrir la porte avec cette clé. Je ne sais pas si cette analogie convient, mais je n'en ai pas trouvé de meilleure.
Le pare-feu est la barrière de protection, et il ne faut pas la désactiver. Mais comment faire pour que le film soit diffusé en continu du serveur vers le client ?
Problème 2 : le partage de port
Chaque logiciel qui fournit un serveur fonctionne sur le localhost, c'est-à-dire l'ordinateur local. Selon le serveur/logiciel, un port différent est utilisé. Jellyfin, par exemple, utilise par défaut le port 8096. Lorsque le serveur fonctionne, on peut accéder au Mediacenter dans le navigateur via localhost:8096 et diffuser localement dans le navigateur. Cela fonctionne sans problème.
Mais comment accéder au serveur depuis l'extérieur ?
Voici un point de vue important à comprendre : Le client demande d'abord au serveur, ce n'est pas le serveur qui fournit au client.
Il est important de comprendre cela, car c'est ainsi que le pare-feu doit être configuré. Dans les paramètres du pare-feu, il est question ici de "connexions entrantes", c'est-à-dire lorsqu'un client souhaite accéder depuis l'extérieur à la zone protégée par le pare-feu pour y atteindre un service/serveur.
Dans les paramètres du pare-feu, on choisit ensuite "Port" et on sélectionne "TCP" comme type de connexion. On indique ensuite 8096 comme port et dans l'étape suivante, on peut donner un nom et une description à ce partage. Avec le nom "Jellyfin", on peut ainsi trouver plus rapidement par la suite à quoi servait ce partage.
Ce n'est pas si difficile, n'est-ce pas ? Faux, il m'a fallu facilement 30 minutes pour voir où il était possible de définir ce paramètre, car je n'avais jamais utilisé cette fonction au cours des 10 dernières années, que ce soit sous Windows XP, Windows Vista, Windows 7 ou Windows 10.
Eh bien, il y a une première fois à tout.
Mais je me demande si cela doit être aussi difficile ? Pourquoi n'y a-t-il pas de possibilité de permettre une règle de filtrage pour les connexions entrantes dans le pare-feu directement via Jellyfin ? Une sorte d'interface API avec le système, que même un profane n'aurait pas besoin de chercher ? Malheureusement, cela n'existe pas.
Maintenant, je pouvais au moins faire du streaming sur mon réseau domestique avec ce que j'avais réalisé. Mais il n'est pas encore possible de faire du streaming sur Internet, cela dépend de la structure des couches.
Voici une explication simple :
- hôte local:8096 - est le système local
- 127.0.0.1:8096 - est équivalent à localhost, selon l'application, ce que l'on doit entrer pour y accéder diffère
- 192.168.178.XX:8096 - est l'adresse IP du routeur, elle devrait être similaire pour tous, c'est le réseau domestique. Les chiffres du bas, que j'ai indiqués par un XX, sont attribués en fonction du nombre de clients dans le réseau domestique. Une fois que le pare-feu a autorisé les connexions entrantes sur le port 8096, il est possible d'accéder au serveur avec cette adresse IP et ce port, par exemple 192.168.178.XX:8096 dans le réseau sans fil.
- XX.XX.XX.XX - l'IP publique est celle de tous ceux qui naviguent sur Internet, elle peut être affichée sur différents sites web. Pour pouvoir diffuser en streaming via cette IP publique, il faut encore obtenir un partage de port séparé dans le routeur WLAN qui relie les clients du réseau domestique à Internet, afin de pouvoir accéder au serveur depuis l'extérieur avec un port. J'avais déjà essayé cela chez moi à titre d'essai et cela fonctionne effectivement bien, j'ai ainsi pu accéder à mon Mediacenter avec mon smartphone via le réseau mobile en utilisant mon IP publique et le port que j'ai libéré sur mon routeur WLAN, mais ce n'était qu'un test et il s'est refermé. Je ne vais donc pas m'étendre sur ce point.
Problème 3 : Smart-TV
Ma famille l'a reçu il y a quelques mois seulement, après que le téléviseur à écran plasma, qui a duré et fonctionné pendant 20 ans, a rendu la télécommande du récepteur satellite inutilisable et que le téléviseur intelligent a permis de se passer de tout cela et d'inclure Netflix et autres, avec en plus une image Full-HD 1080p, l'ancien téléviseur à écran plasma n'avait "que" la HD 720p, mais au quotidien on n'avait de toute façon pas remarqué de différence, et maintenant on est déjà habitué au nouveau téléviseur intelligent.
Le téléviseur intelligent était la cible, car maintenant que j'avais accès à mon centre multimédia sur le réseau, je pensais qu'il ne serait pas si difficile d'installer Jellyfin sur le téléviseur intelligent. Eh bien, je me suis trompé. Il s'agit d'un téléviseur intelligent de Samsung, il y a différentes applications, même des jeux, mais pas de véritable magasin d'applications comme Android, où l'on pourrait simplement installer l'application de son choix. La recherche n'a donc rien donné.
J'ai alors essayé de le taper péniblement dans le navigateur web avec la télécommande, ce qui n'est pas agréable quand on n'a pas de fonction vocale à distance. Le navigateur web a au moins essayé de charger le masque de connexion Jellyfin, mais il n'a pas pu le traiter et je n'ai pas pu accéder au Mediacenter par ce biais non plus.
Comment peut-on alors transmettre sans fil des contenus sur le téléviseur ?
Problème 4 : DLNA
Une fonction qui existe s'appelle DLNAJ'ai donc décidé d'installer le DLNA sur mon ordinateur et de le partager avec d'autres appareils, à condition qu'ils soient compatibles avec le standard DLNA. J'ai donc cherché DLNA dans l'interface web de l'administration de Jellyfin et j'ai rapidement trouvé ce que je cherchais : il fallait installer un plugin de Jellyfin et redémarrer le serveur. D'accord, je ne comprends pas pourquoi on délocalise une fonction aussi importante sous forme de plugin, mais dit, fait, installé le plugin, redémarré le serveur.
Maintenant, je pouvais voir l'icône de partage DLNA en haut à droite de l'interface utilisateur. En cliquant dessus, tous les appareils sur lesquels on pouvait partager le contenu étaient affichés, même la Smart TV.
Problème 5 : marketing des différentes dénominations
J'ai donc sélectionné la Smart TV et je m'attendais à ce que cela fonctionne, à ce que mon serveur Jellyfin fonctionne et à ce que je puisse regarder le film à la télévision. Malheureusement, cela n'a pas fonctionné, car alors que Jellyfin me disait que la connexion était établie et que je ne pouvais que la couper, rien n'apparaissait sur la Smart TV.
J'ai ensuite cherché la source d'entrée pour trouver le signal, c'est ce bouton où l'on peut choisir entre TV et HDMI, etc. C'est là que j'ai trouvé la fonction "Screen Mirroring", et c'est là que nous arrivons au point suivant, le marketing, puisque DLNA semble être trop encombrant pour le consommateur normal, il faut bien que ce soit quelque chose de branché et de facile à comprendre, Screen Mirroring semble donc être cela, mais, Screen Mirroring est-il la même chose que DLNA ?
Ou s'agit-il simplement d'une implémentation simplifiée ? Le DLNA n'est-il pas entièrement pris en charge ? Je me creuse la tête et je pense que pour les appareils mobiles, il y a la possibilité de partager l'écran sur mon smartphone Xiaomi, peut-être que cela fonctionne ?
Je vais dans les paramètres et je vais dans le menu "Connexion et partage" et tout en bas dans la section "Autres", je vois "Affichage WLAN" avec la description "Connexion sans fil à un écran". Je ne peux que secouer la tête, chaque entreprise désigne cela différemment, oui, comment le client qui veut l'utiliser peut-il savoir s'ils sont compatibles entre eux ?
Problème 6 : l'écran reste allumé
Après avoir réussi à connecter l'écran de mon smartphone au mode Screen Mirroring de la Smart TV via l'affichage WLAN, j'ai enfin pu regarder mon film via l'application Jellyfin sur le smartphone, qui est connectée au serveur sur mon ordinateur portable. Malheureusement, le Screen Mirroring ne fonctionne que lorsque l'écran est allumé, même si le lecteur est en train de lire le film au premier plan.
Je devais donc laisser le smartphone sur le câble de recharge, qui se trouvait ironiquement à côté de la télévision, et je devais me lever pour mettre le film en pause ou reprendre la lecture.
Résumé : Le streaming avec des obstacles
Pour pouvoir diffuser sans fil un film de mon ordinateur portable sur la Smart TV, j'ai besoin d'un partage de port dans le pare-feu Windows, puis j'ai besoin de DLNA activé pour diffuser sur le réseau, puis j'ai besoin de l'application Jellyfin sur mon smartphone pour accéder au contenu du serveur et j'ai dû partager l'écran de mon smartphone avec la Smart TV pour pouvoir regarder mon film alors que l'écran de mon smartphone était allumé en permanence.
Oui, Plug and Pray. C'est quand même incroyable qu'en 2024, nous ayons autant de mal à appliquer correctement une norme qui fonctionne simplement, pourquoi ne puis-je pas diffuser en streaming depuis mon ordinateur portable vers un téléviseur sans problème ? Ou pourquoi ne puis-je pas installer mes propres applications sur une Smart TV ?
Pourquoi est-il plus facile, et moins long, d'utiliser un câble HDMI pour connecter directement l'ordinateur portable à la télévision et regarder le film ? En dehors de ces deux cas, je n'ai jamais été en mesure de contrôler le contenu de Jellyfin avec la télécommande de la télévision, donc que je regarde le film avec mon smartphone ou que je connecte mon ordinateur portable via HDMI, je dois toujours me lever.
Pourquoi ? Pourquoi n'avons-nous pas, en 2024, des solutions fonctionnelles et fiables qui ne rendent pas difficile le streaming d'un film depuis un ordinateur portable vers un téléviseur intelligent ?
Ai-je oublié quelque chose ? Y a-t-il déjà une autre norme que je n'ai pas vue ?