Transformer son raspberry en console de streaming
Depuis quelques années, nous avons vu apparaître sur le marché Steam Link, Nvidia Shield et autres consoles de streaming. Ces consoles s’appuient sur la puissance de votre PC pour streamer des jeux et pouvoir en bénéficier sur tous vos téléviseurs, vos tablettes et vos téléphones. Aujourd’hui, nous allons voir comment obtenir la même expérience avec un budget moins élevé : nous allons transformer notre Raspberry Pi en console de streaming.
Pour ce faire, nous allons utiliser la technologie GameStream de Nvidia et le projet open source Moonlight.
Prérequis
Pour pouvoir utiliser GameStream, il nous faudra quelques prérequis :
- Une carte graphique compatible : GeForce GTX 1080, 1070, 1060, Titan X, 900, 700, 600, 900M, 800M, 700M ou 600M
- Une bonne connexion entre le PC et le Raspberry (filaire ou routeur 802.11n double bande)
- GeForce Experience 2.1.1 ou supérieur installé sur le PC (téléchargeable ici)
Pour activer GameStream, ouvrez GeForce Experience et allez dans la partie « Paramètres ». Cliquez ensuite sur « Shield » et assurez-vous que GameStream est activé.
Une fois ces installations effectuées, nous pouvons passer à l’installation de Moonlight.
Installation de Moonlight
Connectez-vous sur votre Raspberry. Nous allons commencer par ajouter la source pour récupérer Moonlight. Éditez le fichier /etc/apt/sources.list et ajoutez la ligne suivante :
[gist https://gist.github.com/Dramloc/45a884f56bedfd0274c888e1f12ab073 /]
Installez ensuite la clé GPG :
[gist https://gist.github.com/Dramloc/e09529095990fb01e8b57fd12889034a /]
Enfin, installez Moonlight :
[gist https://gist.github.com/Dramloc/f5a0f390830c13c9fde647d8f0f7c146 /]
Moonlight est maintenant installé. Nous sommes prêts à relier notre PC et le Raspberry et commencer le streaming.
Appairage et streaming
Pour appairer le Raspberry au PC, lancez la commande suivante :
[gist https://gist.github.com/Dramloc/da2247ca7ded6515a3011a4fa1f8b3a8 /]
Un code PIN doit s’afficher dans votre console et une fenêtre doit apparaître sur le PC. Rentrez le code PIN dans celle-ci.
Nous pouvons maintenant tester le streaming, lancez la commande suivante :
[gist https://gist.github.com/Dramloc/760df081f683a9de45c96737a2a4dbfe /]
Si vous avez Steam installé, Big Picture devrait se lancer sur votre ordinateur et une réplique de votre écran devrait apparaître sur l’écran relié au Raspberry.
Vous pouvez lancer un jeu depuis Big Picture pour tester le fonctionnement. Pour quitter Big Picture, cliquez sur l’icône I/O en haut à droite et choisissez « Arrêter le streaming ».
Si vous n’utilisez pas Steam, vous pouvez choisir l’application à lancer avec Moonlight en lançant la commande suivante :
[gist https://gist.github.com/Dramloc/7904666d544a3f815a62f7bf22278459 /]
Celle-ci vous fournira la liste des jeux compatibles détectés. Vous pouvez ensuite les lancer avec la commande suivante :
[gist https://gist.github.com/Dramloc/b13d6f05bb26ff04dacd935cf79e7bae /]
Configurations avancées
Votre installation devrait fonctionner mais il est possible que vous vouliez customiser certaines options pour améliorer votre station de jeu.
Qualité d’affichage
Par défaut, Moonlight se lancera en 720p et 60fps. Il est possible de modifier ces options (détail ici). Par exemple, vous pouvez utiliser la commande suivante pour lancer en 1080p :
[gist https://gist.github.com/Dramloc/5a9da0e27a09017232b72a95766d02e0 /]
Avec un Raspberry Pi 3 et une connexion filaire, j’ai pu faire tourner Moonlight en 1080p 60fps sans aucune lenteur !
Audio
Dans mon cas, Moonlight a toujours voulu utiliser la sortie audio HDMI (même en ayant configuré le jack par défaut avec raspi-config). J’ai dû utiliser la commande suivante pour utiliser la sortie jack :
[gist https://gist.github.com/Dramloc/25bc72e53dbc2fb2410994ca7ca7d3d0 /]
Connecter une manette
Pour pouvoir profiter pleinement de votre installation, nous allons voir comment installer une manette pour votre raspberry. Cette étape dépendra de votre manette mais je vais vous donner quelques configurations pour les manettes Xbox.
Si vous disposez d’une manette Xbox ou Xbox 360, le package xboxdrv devrait suffir. Pour l’installer :
[gist https://gist.github.com/Dramloc/9600c5b318ed5953731fbc9bdaf597b8 /]
Si comme moi vous avez une manette Xbox One, l’installation sera un peu plus compliquée. Il faudra installer la version de xpad supportant ces manettes :
[gist https://gist.github.com/Dramloc/1ca1ce6fd72a188c3a838704273158a7 /]
[gist https://gist.github.com/Dramloc/07602ae23e6118ee49af9c0b45dab85b /]
Si tout ce passe bien, votre manette devrait être détectée après le reboot. Nous allons maintenant créer le mapping des touches de la manette, ce qui permettra d’avoir une configuration correcte des touches :
[gist https://gist.github.com/Dramloc/7406dc18aa44ab47095457e36d955350 /]
Suivez ensuite les instructions à l’écran en appuyant sur les touches demandées et votre manette sera entièrement configurée ! Vous pouvez ensuite spécifier un fichier de mapping à Moonlight de la façon suivante :
[gist https://gist.github.com/Dramloc/25e558b1d92df7e1be069fe3ea3df9de /]
[gist https://gist.github.com/Dramloc/d4351f2651be5529d87a38bec601e22a /]
Conclusion
J’espère que l’installation de votre console de streaming s’est bien passée. J’ai personnellement rencontré plusieurs problèmes au cours de celle-ci (principalement liés à la manette) mais le résultat en valait la chandelle. N’hésitez pas à laisser un commentaire si vous bloquez sur une étape.
Et sur ce, bon jeu !
JavaScript and Progressive Web Apps enthusiast
☕ Coffee lover ☕
Home automation newbie
Bonjour, peut on utiliser 2 manettes xbox one relier avec l’adaptateur sans fils en clé usb windows 10 ? Merci
Bonjour, apparemment le support pour l’adaptateur Xbox One n’est pas encore arrivé.
Cependant, certaines manettes Xbox One Wireless peuvent fonctionner directement via Bluetooth avec le raspberry sans avoir besoin de l’adaptateur.
Il y a quelques opérations à effectuer pour que tout fonctionne, je te recommande de suivre les étapes sur cet article ou cette vidéo.
Bon courage et n’hésite pas à nous faire des retours !
Bonjour,
J’ai suivi votre tuto, et j’ai une erreur au moment de faire le mapping du contrôleur :
sudo moonlight map -input /dev/input/eventx …
erreur: no mapping available for xbox one pad (030000…) on /dev/input/eventx
*** buffer overflow detected ***: moonlight terminated
Avez vous une idée du problème ?
Merci
Bonjour Ludo,
J’ai mis à jour vers la dernière version de moonlight (2.4.4) et je rencontre le même problème (nous ne sommes pas les seuls https://github.com/irtimmer/moonlight-embedded/issues/583).
Pour ma manette j’ai pu passer l’étape de mapping (
moonlight map ...
).Peux-tu vérifier si l’id de ta manette (030000…) est présent dans le fichier
/usr/share/moonlight/gamecontrollerdb.txt
?Si ce n’est pas le cas, il faudrait rajouter une ligne avec son id et le mapping. Pour faire ça, tu peux rechercher l’id sur internet ou utiliser la commande
jstest /dev/input/js0
pour définir le mapping.Tiens-moi au courant si cela résout ou non ton problème.
Bonjour merci pour ce tuto que j’ai essayer de réaliser cependant j’ai un problème quand je veux installer moonlight.
Pourriez vous m’aider ?
Cordialement.
sudo apt-get install moonlight-embedded
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
moonlight-embedded : Depends: libssl1.0.0 (>= 1.0.0) but it is not installable
Recommends: alsa-base but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Bonjour Meyer et merci de ton retour,
L’article n’est apparemment plus à jour pour les dernières versions de raspbian…
Pour corriger, essaye les étapes suivantes :
Tiens moi au courant si cela résout ton problème 🙂
Merci ça a fonctionner par contre j’ai un autre soucis quand je fait :
moonlight pair 192.168.0.28
Connect to 192.168.0.28…
Generating certificate…done
Et il se connecte pas pourtant j’ai geforce experience a jour et le gamestream activé mon gpu c’est une 1080ti et un raspberry pi 3
Salut,
Tu peux peut-être essayer de juste faire
moonlight pair
(sans spécifier l’IP du pc)Si ça ne fonctionne pas tu peux essayer
moonlight pair -debug
qui devrait donner plus d’informations sur le problème potentiel.Bonjour lorsque je fait moonlight pair -debug
Il me met ça une solution?
Merci d’avance
moonlight pair -debug
Moonlight Embedded 2.4.6 (PI;ALSA;EMBEDDED)
Searching for server…
Connect to 192.168.0.28…
Request https://192.168.0.28:47984/serverinfo?uniqueid=f35162bf9845501e&uuid=4822e6b0-b9e7-4e3a-a8b8-756d89600f23
Bonjour,
Suite à je pense une MAJ des drivers Nvidia, je ne peux plus lancer de jeux avec moonlight. Le jeux se lance sur mon pc mais cela fait planter mon raspberry. J’ai réinstallé la version des drivers Nvidia d’avant le soucis et j’ai même réinstaller mon Raspberry mais rien n’y fait. Cela plante à chaque lancement de jeux. Avez vous une solution ? Merci.