Moonshine - Et votre serveur Linux sans écran devient une console
NVIDIA a débranché GameStream, son système maison pour envoyer les jeux de votre PC vers une Shield ou un laptop. Sauf que le protocole, lui, n'est pas mort : Moonlight , le client open source qui le réimplémente, tourne toujours sur Windows, macOS, Linux, Steam Link, Raspberry Pi 4, Apple TV et Xbox, et même sur des Switch et des Vita en homebrew.
Et surtout, Hans Gaiser bricole depuis début 2024 une pièce qui manquait côté serveur, Moonshine , qui commence à être sérieusement utilisable.
Moonlight n'étant qu'un client, il affiche l'image et renvoie votre clavier, votre souris et votre manette. Derrière, il faut donc forcément une machine qui capture le jeu et qui encode la vidéo en temps réel.
Bref, comme je vous le disais, depuis que NVIDIA a rangé GameStream au placard début 2023, ce rôle revient à des serveurs communautaires. Le seul que la FAQ Moonlight recommande, c'est Sunshine , du collectif LizardByte. C'est codé en C++ sous licence GPL-3 et ça tourne sous Windows, Linux, macOS et FreeBSD. Sauf que Sunshine capture une session de bureau existante ce qui veut dire que sur une machine sans écran, il faut composer avec ça, et c'est de là que vient toute la littérature sur les dongles HDMI factices et autres écrans virtuels...
Alors que Moonshine, lui, est codé en Rust et prend un autre chemin. En fait, chaque session de streaming tourne dans son propre environnement isolé, qui est totalement séparé de votre bureau. Du coup, vous n'avez plus besoin de session active du tout... Une simple tour sans écran fera parfaitement le boulot.
Voilà, si vous avez une machine Linux qui dort dans votre placard avec un GPU dedans, ça peut vous permettre de lancer Moonlight depuis votre canapé à distance, et c'est le serveur qui gérera la session rien que pour vous.
Après, c'est du Linux uniquement, testé sur Arch même si ça remonte que ça tourne aussi sur d'autres distribs, avec systemd obligatoire pour lancer et gérer tout ce qui est processus. Et du côté du GPU, il vous faudra de l'encodage vidéo Vulkan, donc, vous l'aurez compris, une Nvidia RTX ou une AMD RDNA2 ou plus récente, voire une Intel Arc pour les plus motivés.
Voilà, toutes vos vieilles GTX resteront sur le banc de touches... Sans oublier que vous aurez besoin du client Moonlight en version 6.0.0 minimum et que la compatibilité avec les portages non officiels n'est pas garantie.
Les codecs supportés, c'est du H.264, H.265 et AV1, avec du HDR en 10 bits. L'AV1 est marqué expérimental et Hans Gaiser prévient lui-même qu'il fait gonfler la taille des images au fil du temps sur les cartes NVIDIA. Sauf que c'est réglé depuis : NVIDIA a sorti le correctif dans son pilote Vulkan beta 595.44.3.0 et Hans Gaiser a confirmé début avril, mesures à l'appui, que la qualité était revenue à la normale. Son README, lui, n'a pas suivi et vous conseille encore de rester en H.264 ou H.265. Donc si l'AV1 vous tente, prévoyez le pilote Vulkan beta, pas celui de votre distrib.
Notez aussi que Moonshine n'est pas conçu pour être utilisé sur des réseaux publics puisque le protocole GameStream sous-jacent a des limites qui font que le trafic n'est pas entièrement chiffré au niveau applicatif. Donc, si vous vous y mettez, n'exposez jamais les ports de Moonshine directement sur internet. Préférez passer par Tailscale ou un WireGuard par exemple.
Bref, Moonlight, Sunshine, Moonshine... si comme moi, vous vous emmêlez dans les noms, c'est parfaitement normal. N'empêche que c'est un super truc, encore en dev, certes, mais ça promet pour le futur...


















































