Les solutions de streaming : Streaming local Steam et Nvidia GameStream en test

Publié le 26/07/2016 par
Imprimer

Les solutions évaluées

Pour réaliser ce test, nous sommes partis d'un besoin : vouloir jouer à distance aux jeux présents sur un PC qui n'est pas forcément dans la même pièce. De quoi profiter par exemple, c'est le cas le plus classique, de ses jeux sur le téléviseur de son salon. Nous avons retenu trois solutions, dont deux en provenance de Valve.

Attention aux jeux UWP !

Avant de commencer, rappelons que toutes les solutions que nous avons testées visent les jeux « classiques » sous Windows. Vous le savez peut être, depuis le lancement de Windows 10, Microsoft tente de pousser les développeurs de jeux à utiliser sa nouvelle Universal Windows Platform (en remplacement du win32/64 traditionnel). Ces jeux sont pour l'instant disponibles via le Windows Store. Au-delà de quelques exclusivités, on retiendra surtout les multiples limitations imposées par UWP qui isole les applications dans une sandbox. D'autres problèmes sur le multi-GPU, ou l'impossibilité de désactiver le V-Sync (un problème corrigé depuis quelques semaines) sont gênants, mais l'on retiendra surtout que l'utilisation d'une sandbox bloque de facto les overlays, mods… ou les outils de capture qui souhaiteraient accéder à la mémoire de l'applicatif.

Pour fermer cette parenthèse, notez que dans le cadre de cet article, il faudra exclure les rares titres UWP disponibles via le Windows Store qui ne sont pas compatibles avec les solutions que nous avons testés. Regardons enfin à quoi elles ressemblent !

Streaming local Steam

Steam intègre directement la possibilité de streamer ses jeux entre plusieurs machines sur un réseau local. Pour activer cette fonctionnalité, il faut aller dans "Paramètres" et choisir à gauche "Streaming Local". Sur la machine "hôte", il faut cocher la case "Activer le streaming".

Pour profiter du streaming local, il faudra installer Steam sur un autre PC (que l'on appellera "client"). Ce dernier doit être connecté au même compte Steam pour que la fonctionnalité marche. Si tous les critères sont réunis, les jeux installés sur le PC "hôte" apparaissent dans votre bibliothèque, le bouton "Jouer" se transformant en un bouton "Streamer". En pratique, la détection est instantanée en réseau local et nous n'avons pas noté de problèmes particuliers sur la reconnaissance des machines, une bonne chose.

Une fois le stream lancé, on pourra prendre le contrôle directement sur le PC "client", soit avec un clavier/souris ou un pad (USB ou sans fil au choix). Steam s'occupe de transférer automatiquement vers le PC source vos actions. Notez que l'on pourra aussi utiliser les contrôles sur le PC source en parallèle si on le souhaite.
Côté configuration, Steam est très riche en réglages même si certains réglages sont obscurs ou non documentés. En ce qui concerne la machine hôte, les choses sont assez simples et tout se passe via les options avancées :

La première priorité consiste à choisir l'encodeur H.264 que l'on souhaite utiliser. Steam gère ceux d'Intel (QuickSync), AMD (AMF) et Nvidia pour lequel une seconde option de capture est proposée (NVFBC, nous y reviendrons). Si l'on décoche l'encodage matériel, un encodage sera réalisé côté CPU avec x264 (via libx264). On pourra choisir le nombre de threads utilisés par défaut. En réglage automatique, sur notre Core i7 6700K, l'encodage s'effectue sur 4 threads.

Côté client les réglages commencent à être ambigus. D'abord il est nécessaire de rappeler que l'on doit choisir les réglages "hôte" sur la machine "hôte"... et les réglages "client" sur la machine "client". Cela parait logique mais étant donné l'imbrication des réglages on peut facilement se tromper (en pratique une machine peut être à la fois hôte et cliente, ce qui complique les choses).

Sur le panneau de paramètres principal du streaming, on retrouve en effet trois choix pour les réglages clients, "Rapide", "Equilibré" et "Beau". Le mode "Beau" est celui a privilégier en pratique, il tente de préserver 60 images par secondes (tout en s'autorisant de passer a 30 images/secondes si nécessaire pour maintenir un niveau de qualité d'images). Le mode "Equilibré" préférera réduire le débit de l'encodage (et la qualité) tout en jouant si nécessaire sur le nombre d'images/secondes. Enfin le mode "Rapide" changera le profil H.264, passant du profil "Main" au "Baseline", réduisant pour le coup encore plus significativement la qualité d'image.

Les options client avancées sont les plus intéressantes :

Le premier réglage est assez obscur, il permet de régler la bande passante utilisée, et donc indirectement le débit du flux H.264. Le réglage automatique par défaut correspond à un bitrate maximal d'environ 30 Mbit/s, soit 4 Mo/s environ de bande passante. Un bitrate important puisque l'on est dans le débit d'un Blu-ray moyen (le débit maximal autorisé pour une piste vidéo sur un Blu-ray est de 40 Mbit/s pour rappel. Si vous vous souvenez de notre test des encodeurs H.264, nous utilisions à l'époque un débit de "seulement" 10 Mbit/s !). Un mode "Illimité" est présent, avec la mention qu'il "augmente la latence". Une assertion sur laquelle nous reviendrons !


Exemple des informations avancées affichées en temps réel sur le streaming par Steam

Outre la configuration du son (et la possibilité de limiter la résolution) on s'assurera que le décodage matériel est activé sur le PC client, dans ce cas Steam utilise Quicksync lorsqu'il est présent. La dernière case à cocher ajoutera en bas de votre écran un overlay vous indiquant quelques détails sur le streaming en cours (la touche F6 permet d'avoir un peu plus de détails, on peut voit l'encodeur et le décodeur utilisé, ainsi que certaines informations sur la méthode de capture et la latence).

Quelques mots sur Big Picture

Steam dispose également d'un mode dit Big Picture qui affiche une interface adaptée à une utilisation au pad. Si elle est pratique, elle a deux inconvénients. La première est d'être relativement gourmande en temps CPU, y compris lorsqu'elle devrait être cachée. Lors de nos tests de streaming sur un modeste Celeron, nous avons noté que passer par l'interface Big Picture pour lancer nos tests ralentit significativement la machine. En cause, une utilisation CPU importante de Steam pour son interface.

Si l'on ne sait pas exactement quelles technologies Valve utilise pour son mode Big Picture, on peut en avoir un petit aperçu en appuyant sur la touche F6 (un choix maladroit, c'est la même touche qui permet de voir les infos de streaming avancées !) qui fait apparaître le debugger. On y découvre une interface qui semble mélanger des technologies plutôt "web" qu'autre chose comme XML et CSS, ce qui peut expliquer le coût CPU élevé (nous pensons que le rendu est CPU pur et qu'il ne s'agit pas d'une interface DirectX/accélérée GPU, quelque chose de logique étant donné l'aspect multi-plateforme de Steam qui est disponible également sur Mac et sous Linux).

En pratique, sur notre Celeron, l'interface n'est en prime pas particulièrement fluide, même si le problème principal a nos yeux reste que cette interface ne se mette pas en pause lorsque l'on lance un jeu !


Le debugger de Steam montre que l'interface utilise des technologies web et visiblement peu accélérées par le GPU, étant donné sa consommation sur des processeurs modestes

Le second problème de l'interface Big Picture est lié à l'utilisation de deux machines. Généralement on voudra lancer l'interface Big Picture sur le client. Dans ce cas l'interface tourne nativement sur la machine client, ce qui semble plutôt une bonne idée sur le papier, même si on le rappelle, en pratique la fluidité et la consommation processeur est bien trop élevée sur notre Celeron.

Là ou les choses se compliquent, c'est que dès que l'on va lancer un streaming de jeu, l'interface Big Picture va se lancer elle aussi sur la machine hôte. Avoir deux interfaces identiques lancées ne devraient pas être un problème... sauf dans le cas ou l'on se retrouve sur le client avec l'interface du PC hôte. Quelque chose qui arrive, par exemple, lorsque l'on quitte inopinément un jeu. De quoi vous poser quelques problèmes si vous allez changer les options...

Très intéressante sur le papier, l'interface Big Picture pose quelques problèmes spécifiques au streaming. Il n'est pas normal que l'interface ne se mette pas complètement en pause lorsque le jeu est lancé par exemple, et la double présence des interfaces fait que l'on peut rapidement se perdre.

Steam Link

La seconde solution que nous avons testée est elle aussi en provenance de Valve, avec Steam Link. Il s'agit d'un petit boîtier rectangulaire de 12.4cm de large pour 9cm de profondeur et 1.8cm en hauteur. Il se distingue par un coin arrondi qui accompagne un logo, le tout pèse 250 grammes ce qui évitera que le boîtier soit trop baladé par les câbles que l'on y branchera.

 
 

Côté connectique on retrouve à l'arrière la prise d'alimentation, deux ports USB 2.0, un port Ethernet 100 Mbit/s et une sortie HDMI (1080p). Un troisième port USB est disponible sur le côté droit du boîtier et l'on notera l'absence totale de bouton, que ce soit pour l'allumer ou redémarrer ! Le boîtier gère également le WiFi 802.11ac ainsi que le Bluetooth 4.0.

A l'intérieur on retrouve un SoC Marvell 88DE3005 (également connu sous le nom d'Armada 1500 Mini ). Certains y reconnaîtront une puce qui avait déjà trouvé sa place dans un produit lié au streaming : elle était présente dans la première génération de clefs Chromecast de Google. Marvell ne publie malheureusement pas les spécifications de ses puces (et n'a pas répondu à nos demandes) mais de ce que l'on sait, il s'agit d'un SoC mono core de type ARM Cortex A9, associé à des unités de décodage vidéo capable de décoder le H.264 jusqu'au 1080p profil "High".

C'est là qu'une des incertitudes traîne sur les capacités réelles du SoC, une des limitations de la première génération de Chromecast était le fait qu'elle ne fonctionnait qu'en 30 Hz. En pratique, Valve annonce Steam Link comme permettant de streamer en 1080p 60 Hz. Nous supposons que la différence vient du fait que le profil H.264 "High" - contrairement aux "Main" et "Baseline" utilisés par Steam - n'est pas géré en 60 Hz par le SoC Marvell.

Que fait donc ce boîtier en pratique ? Lors du premier lancement, après avoir rejoint votre réseau local, il vous sera proposé de lancer le streaming vers les machines qui le proposent dans votre réseau local. Une fois choisi, l'interface Big Picture se lance sur la machine "hôte" et cette dernière stream l'interface vers le boîtier Steam Link. Pour le reste, tout est semblable au streaming local évoqué plus haut, si ce n'est que rien ne tourne en local, et que l'on oublie les problèmes de doubles interfaces. Ainsi, si l'on va dans les options de streaming, on pourra régler en simultanée les options du client (Steam Link) et hôte dans la même interface !

En ce qui concerne les contrôles, on pourra brancher un clavier et une souris, ou un pad (USB/sans fil) sur le boîtier Steam Link. Il est possible de brancher un pad PS3 et Xbox One en filaire, et d'appairer sans fil un pad PS4. Le contrôle sur le PC source reste là aussi possible en parallèle. Valve propose aussi son propre pad, le Steam Controller avec un dongle de connexion en USB au standard WiFi Direct (5 GHz).

En pratique, tout est plus logique et l'on en viendra a regretter que Valve ne propose pas, dans le cas du streaming local, d'autoriser un mode de fonctionnement identique entre deux PC qui simplifierait grandement les choses !

Finissons par l'intérêt principal de cette solution : son prix. Comptez 54.99 euros pour le boîtier.

Nvidia Shield Android TV et GameStream

La dernière solution de notre comparatif est en provenance de Nvidia, avec sa technologie GameStream qui, vous l'aurez deviné avec son nom, permet de streamer les jeux ! Pour utiliser GameStream, il faut disposer côté PC "hôte" bien évidemment d'une GeForce, et pour recevoir GameStream, d'un périphérique Nvidia Shield. Pour notre test, nous avons utilisé la Shield Android TV du constructeur.

 
 

Le boîtier est plus imposant que celui de Valve, mesurant 21cm de large par 13 de profondeur et 2.5 cm de hauteur. Le tout pèse 648 grammes ce qui évite définitivement les problèmes de câbles HDMI un peu lourds qui tirent et soulèvent le boîtier.

A l'arrière on retrouve une connectique assez riche. Outre le connecteur d'alimentation, on retrouvera une sortie HDMI 2.0 (compatible 4K), un port Gigabit Ethernet (qui nous aura obligé a utiliser un tournevis pour sortir nos câbles réseaux, un comble !), deux ports USB 3.0 un port micro USB 2.0 ainsi qu'un lecteur de carte MicroSD. A l'intérieur le SoC utilisé est un Tegra X1 de Nvidia qui mixe quatre coeurs ARM Cortex A57 et quatre coeurs ARM Cortex A53 à un GPU génération Maxwell. La puce gère de multiples décodages y compris H.264 et H.265 et côté réseau on retrouve 802.11ac et Bluetooth 4.1.

 
 

Au cas ou le nom de la Shield Android TV ne soit pas assez explicite, le boîtier fait tourner le système Android TV de Google. Si vous souhaitez plus de détails sur les possibilités d'Android TV en général, nous vous renvoyons vers d'autres tests, nous nous sommes intéressés spécifiquement à GameStream, qui est l'une des applications disponibles dans l'interface Android TV (elle est rajoutée par Nvidia dans sa version d'Android TV).


Ici les réglages permettent juste de se connecter/déconnecter

Pour lancer GameStream, il suffit donc de lancer l'application sur la Shield TV, et d'avoir son PC allumé. De la même manière que pour Steam, il faudra être connecté en réseau local, et que le PC (via GeForce Experience, obligatoire pour le streaming) et Shield TV soient connectés au même compte Nvidia. Notez que nous avons dû déconnecter et reconnecter les deux machines du réseau pour qu'elles arrivent a se reconnaître.


Côté réglages, on pourra ajouter manuellement des jeux qui ne seraient pas détectés automatiquement. Rien pour jouer sur le bitrate de l'encodage par exemple, malheureusement

La nécessité d'un compte pour une utilisation de matériel local est clairement une contrainte (et celle-ci se multiplie malheureusement chez les constructeurs sans raison nécessaire), surtout quand le système n'est pas forcément fiable/rodé. Notez que nous utilisons ici la version "publique" de GeForce Experience, la beta de la version 3 en test actuellement imposera directement la connexion pour son utilisation, streaming ou pas.

Ceci passé, la liste des jeux reconnus par GeForce Experience apparaît directement a l'écran et l'on peut choisir le jeu à lancer. Parmi les jeux, on retrouvera aussi Steam. Choisir Steam lancera ce dernier sur l'hôte en mode Big Picture et le résultat est streamé directement vers le boîtier. L'intégration des deux logiciels est très bonne puisque les menus sont adaptés à la présence de GameStream. Bien vu des deux sociétés qui semblent avoir collaboré. La seule anicroche concerne l'impossibilité d'accéder à l'overlay Steam via les touches Shift + Tab sous GameStream, un bug qui date et qui nous aura posé problème dans nos tests.

Notez que Nvidia fournit selon les modèles un pad sans fil. Il est assez lourd, 308 grammes, et le toucher de son plastique n'est pas particulièrement agréable. Il utilise cependant le WiFi Direct ce qui est une bonne chose pour la latence. On pourra brancher à la shield également un clavier/souris. Pour ce qui est des contrôleurs, mêmes limites que pour Steam Link si ce n'est que les contrôleurs PS4 ne marchent pas en sans fil ici (sans modification du firmare en mode root). Il en va de même pour le Steam Controller même avec son dongle.

Android vous obligera également, selon les modèles, à utiliser un logiciel tiers, Virtual Here USB Server , pour "déporter" le port USB vers votre machine distante. Cela déplace le problème, le support dépendra alors des pilotes Windows. Nous vous conseillons de regarder à l'avance la méthode pour utiliser votre pad préféré.

Notez enfin que contrairement à ce que l'on trouve via Steam, il n'est pas possible de prendre contrôle du PC lorsque l'on stream, un écran avec un logo Nvidia recouvrant l'écran de votre PC principal lors du streaming. Pas particulièrement utile et l'on aimerait pouvoir le désactiver !

Côté prix le ticket d'entrée est plus élevé, comptez 199 euros pour le modèle 16 Go, et 299 pour le modèle équipé d'un disque dur 500 Go.

Et Moonlight ?

Une des différences entre les logiciels de Valve et de Nvidia est que le second ne propose pas de solution pour streamer ses jeux vers un autre PC. Officieusement, il existe cependant une alternative avec Moonlight , un logiciel Open Source compatible GameStream disponible pour de multiples plateformes (dont Android et iOS) et également pour Windows.

En pratique le port Windows est réalisé en Java et si l'on peut passer sur bon nombres de bugs, le plus gros problème est qu'il effectue le décodage de manière logicielle (et pas particulièrement optimisée), ce qui réclame une machine beaucoup plus puissante que notre machine de test équipée d'un Celeron. Sachez cependant que la solution existe.

Les solutions que nous n'avons pas retenues

Notez qu'il existe d'autres solutions que nous n'avons pas retenues pour notre test, elles présentent en général des désavantages mais selon les situations, peuvent dépanner. Il faudra distinguer deux problèmes, le flux vidéo (et audio), et le contrôle à distance.

Pour la vidéo d'abord, si la distance est assez courte, notez qu'il existe de longs câbles HDMI. Il n'y a pas de limites dans la spécification et l'on trouve des câbles passifs certifiés jusqu'à 15 mètres de longueur, capables de faire transiter du 1080p. Attention cependant à vous assurer que le câble est bien certifié HDMI pour éviter les déconvenues. Au delà, des câbles actifs existent permettant d'atteindre 30 mètres, mais le prix est généralement conséquent pour des câbles certifiés. Tant qu'elle est physiquement possible, la connexion HDMI filaire est bien entendu idéale.

Il est également possible d'utiliser des boîtiers HDMI sans fil. L'idée est d'encoder directement la sortie HDMI, l'envoyer en réseau, et la décoder dans un boîtier HDMI placé derrière l'écran. Ces solutions visent souvent le cas d'une utilisation dans la même pièce, comme par exemple pour relier un vidéo projecteur à sa source. Ils utilisent en général une connexion WiFi Direct 5 GHz dont la portée est assez courte, et très sensible aux murs. Selon la distance, c'est une solution cependant.

Une dernière option est d'utiliser des adapateurs dits Wireless Display. Egalement connu sous le nom de Miracast, la norme vise surtout le cas ou l'on souhaite relier un PC portable à un diffuseur HDMI dans une même pièce. Pour pouvoir l'exploiter, le PC doit disposer d'une carte WiFi (d'ou son utilisation qui vise principalement les PC portables), Windows s'occupant de capturer, d'encoder, et de transférer le flux vidéo. Bien évidemment la qualité et la latence vont dépendre des adaptateurs, les premiers prix ne sont compatibles que 2.4 GHz en général et leur qualité vidéo assez piètre. Les meilleurs modèles sont compatibles 5 GHz avec les mêmes limites que ce que nous évoquions plus haut. Dans tous les cas, la latence est en prime assez haute, ces adaptateurs visant plus les cas d'utilisation d'entreprise ou de lecture de vidéo distante.


La plupart des adaptateurs nécessitent une prise USB pour s'alimenter

Notez qu'on peut tomber sur d'autres problèmes, le Wireless Display Adapter de Microsoft par exemple, considéré comme l'un des meilleurs modèles et que nous envisagions de tester impose le cryptage HDCP sans raison valable. C'est particulièrement dommage pour les moniteurs/diffuseurs non compatibles, en plus d'être totalement incompatible avec notre protocole de test !

En ce qui concerne le contrôle à distance, on pourra pourra utiliser une manette sans fil pour jouer, avec le récepteur placé sur son PC. Là encore il faudra faire attention aux distances, les manettes Bluetooth ont une portée assez courte, et si le WiFi Direct fait en général mieux, la portée variera en fonction de vos conditions d'utilisation.

De ces solutions, au delà d'un long câble HDMI, les compromis nous paraissent trop importants pour vous les conseiller.

Vos réactions

Top articles