Streaming sur PC déporté, retour d’expérience

Étape 2, optimisations

J’avais déjà rédigé un article sur mon expérience sur le Streaming sur PC, vous le trouvez là, depuis j’ai continué à chercher car cela consomme des ressources sur mon PC de jeu, et je suis souvent limite voir pénalisé par cela quand je joue avec le Streaming activé.

En effet en VR, cela consomme beaucoup de ressources et en particulier le processeur (CPU) en plus de la carte graphique (GPU). Du coup il faut trouver un compromis, je le ressent, j’ai une perte de feeling dans mon volant quand le Stream est activé.

Donc réduire les ressources que le streaming utilise est une piste car c’est clairement avec le Streaming actif que les choses se dégradent.

Pour rappel, voici mon installation

Voici le schéma pour arriver à comprendre les dépendances entre matériel, logiciel et connections.

  • 1 PC de jeu
  • 1 Casque VR branché sur la carte graphique (GPU)
  • 1 Webcam branché au PC et ajouté à OBS
  • 1 Tablette qui sert à piloter le PC et OBS via Touch Portal
  • 1 Logiciel pour les temps/overlay iRacing
  • 1 Logiciel OBS pour le streaming (encodage via le GPU)
  • 1 Ecran 1080p où le jeu en mirroir VR est affiché

Au final sur le Stream qui est envoyé sur les deux services en simultané (via Restream.io sur Youtube & Twitch) ressemble à l’image ci dessous.

Je pilote le Stream via Touch Portal qui permet de faire dialoguer ma tablette avec OBS sans avoir besoin d’utiliser mon clavier (car en VR ce n’est pas pratique de trouver son clavier)

Déport du Streaming, première solution

J’ai récupéré un de mes ancien PC de jeu récemment, c’est un Core I3 avec 8 Go de RAM et une 970 GTX.

Du coup, l’objectif est de s’en servir pour Streamer à la place du PC de jeu.

Suite à mes recherches, la chose la plus simple à faire sans rajouter d’accessoire , c’est de mettre un OBS de Stream sur le PC de streaming et de se servir de l’OBS qui est sur le PC de jeu pour envoyer les images et sons du jeux vers l’OBS de Stream.

Les avantages :

  • Déporter l’encodage vidéo sur le PC de streaming, il y a besoin de rien d’autre qu’un plugin NDI pour faire ça.
  • Déporter l’affichage de l’Overlay sur le PC de streaming
  • Brancher la Webcam sur le PC de streaming
  • L’OBS du PC de jeu n’est plus piloté par Touch Portal, toutes les actions sont sur le l’OBS du PC de streaming

Il y a un tuto très bien fait là : https://www.obs.live/articles/2019/5/1/how-to-stream-with-two-pcs-using-obs-studio-and-the-ndi-plugin

J’ai fait cette adaptation en deux temps, premièrement que le déport NDI (en laissant l’Overlay et webcam sur le PC de jeu.)

J’ai en effet libéré ma carte graphique un petit peu, mais niveau processeurs, je n’ai rien gagné car le NDI consomme plus que l’affichage local de ma première installation en gros je suis à 10% de CPU utilisé pour le Stream.

En deuxième étape j’ai déplacé l’Overlay et la Webcam sur le PC de Streaming

Et il y a une option pour indiquer à l’Overlay que le serveur de télémétrie ne se trouve pas sur le même PC 🙂

Génial, un paramètre HOST de plus dans l’Overlay du PC de Stream et le tour est joué, host=adresseserveur:8182 (adresseserveur peut être le nom ou une IP). Je vous mets la syntaxe si vous en avez besoin.

URL : http://ir-apps.kutu.ru/stream-overlay/overlay.html#?host=000.000.000.000%3A8182&carTemps=false&carWeatherSOF=true&standingsMaxRows=9&standingsWindow=5&carFuel=false&carWind=false&relativesCompact=false&standingsMulticlass=true

Du coup en faisait le test, j’ai réduit de 7% la consommation CPU de mon PC de jeu, pas mal.

Déport du Streaming, deuxième solution

La dernière étape c’est de supprimer totalement OBS du PC Gaming pour envoyer l’image et le son vers le PC de Streaming.

Pour faire ça il faut une carte d’acquisition, quand on regarde rapidement, ça donne du 150€ à financer minimum !!! Ça pique un peu.

J’ai donc cherché le plan B, mon besoin c’est d’avoir du 1080p 60ips, et en fait il existe des clefs USB qui prennent un câble HDMI en entrée et se branchent en USB sur le PC de Streaming.

J’ai regardé un peu tout ça, et le premier prix qui correspond c’est 16€ et des câbles (HDMI et USB) pour aller d’un PC à l’autre.

Un budget autour de 40€, ça me va mieux comme investissement :).

Les liens si cela vous intéresse,

Clef d’acquisition HDMI->USB : https://www.amazon.fr/gp/product/B08DJ4FDB6/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

Câble HDMI 3m : https://www.amazon.fr/gp/product/B07RKK6QKV/ref=ppx_yo_dt_b_asin_title_o00_s01?ie=UTF8&psc=1

Rallonge USB 3m pour ma Webcam : https://www.amazon.fr/gp/product/B00NH12O5I/ref=ppx_yo_dt_b_asin_title_o00_s01?ie=UTF8&psc=1

Voilà le schéma final de mon installation:

  • Déporter l’encodage vidéo sur le PC de streaming,
  • Déporter le traitement de l’image/son sur le PC de streaming (via une carte d’acquisition et un câble HDMI).
  • Déporter l’affichage de l’Overlay sur le PC de streaming
  • Brancher la Webcam sur le PC de streaming
  • L’OBS du PC de jeu n’est plus piloté par Touch Portal, toutes les actions sont sur le l’OBS du PC de streaming

Sur ma carte graphique, il va y avoir le casque VR branché en DisplayPort, l’écran du PC de jeu branché en DVI, et le câble HDMI qui va vers l’autre PC.

Comment va se comporter tout ça niveau image et son ? Le but, cloner mon écran de jeu pour l’avoir sur la sortie HDMI et donc l’afficher dans l’OBS du PC de Streaming.

Mon inquiétude reste que j’ai finalement 3 écrans en concurrence, comment que ça va faire 🙂 🙂 , car le jeu est envoyé au casque VR, au moniteur PC de jeu et au PC de streaming via le HDMI, un beau mariage à 3 😉

Dans la pratique, j’ai fait un clone de l’écran du PC de jeu, du coup j’ai l’image du PC qui est envoyé sur le câble DVI et sur le câble HDMI.

Au final voici le résultat et la configuration de la source d’Acquisition vidéo (HDMI via USB) sur l’OBS de Streaming qui correspond à mon écran PC Gamer :

A noter la dernière partie (les 2 dernières options) pour avoir le son aussi en plus de l’image venant du HDMI dans OBS.

Comme pressenti, j’ai bien eu un souci de son, car si j’active sur mon PC Gamer le son vers mon Casque VR, il n’est plus diffusé sur le Clone d’écran HDMI !!! Donc impossible d’avoir le son dans les deux périphériques, en tout cas j’ai pas trouvé, si quelqu’un à une idée, je suis preneur (via les commentaires ou discord 😉 )

J’ai donc ressorti une vielle connaissance, VoiceMeeter : https://vb-audio.com/Voicemeeter/index.htm , et là du coup, je peux utiliser la Virtual Input en tant que son principal sur mon PC, et dans VoiceMeeter cela va cloner les sons du PC sur les sorties A & B physiques qui sont respectivement configurée sur mon Clone HDMI et Casque VR !!

Cela commence à faire pas mal de source de sortie audio sur mon PC !!! :

Pour finir, il faut donc dans Windows mettre comme son de référence VoiceMeeter Input, dans le jeu iRacing, il faut indiquer comme sortie audio, le VoiceMeeter Input aussi.

Suite à cela, j’ai les sons de mon PC Gamer sur le HDMI en plus du casque VR et donc sur l’OBS Streaming j’ai du son !!!

Voilà, on arrive au bout, résultat des courses, mon CPU est passé de 98% d’utilisation à 78% d’utilisation, car il n’y a plus OBS qui tourne dessus, tout est cloné de façon matérielle pour l’images et avec VoiceMeeter pour le son qui n’a pas l’air de consommer de CPU plus que ça.

C’est en tout cas le résultat relevé lors de ma course faite avec cette installation, aucune perturbation pendant mon pilotage !! , pour voir le résultat :

Quelques tests audio pour confirmer mes réglages, je pense qu’il y a un petit délai quand je roule niveau son dans le casque VR due à VoiceMeeter, mais c’est acceptable :

Au final j’ai donc fixé ma Webcam et passé les fils vers le PC de Streaming, quelques photos de mon installation Streaming déporté :

Voilà pour les quelques informations que je voulais partager, maintenant si vous voulez me suivre, c’est simple :

Youtube : https://www.youtube.com/djustou/

Twitch : https://www.twitch.tv/djustou

Si vous avez des questions, les commentaires sont ouverts, ou via Discord 😉