Vous en avez marre d’avoir une webcam pixellisée en stream ? Marre que votre dernier Sub ou que votre kill feed soient illisibles ? Eh bien si vous utilisez OBS, vous allez pouvoir pallier cela grâce à un tout nouveau plugin, il s’appelle Encoder ROI Editor et c’est une petite révolution pour les streams à faible débit, donc en gros pour les streams sur Twitch.

obs plugin roi editor aperçu du résultat

Limite de bitrate sur Twitch

Alors pourquoi les streams sur Twitch en particulier, et là on va faire un gros rappel sur toute la première partie, eh bien tout simplement car il existe un bitrate maximum, un débit maximum pour pouvoir streamer sur Twitch. Officiellement, Twitch recommande d’utiliser 6000 kbps maxi. Officieusement, en débridant OBS, on peut envoyer grosso modo 8000 kbps, ce qui fait un gain de plus de 30 %, c’est loin d’être négligeable.

Mais 8000 kbps reste une valeur relativement faible si on veut proposer un stream en haute définition, typiquement en FHD à 60 fps. Si on se contente de 30 fps, là ça passe vraiment bien dans quasiment toutes les situations. Mais tout le monde cherche le sacro-saint 1080p60 et je confirme que, en fonction du contenu que vous proposez, notamment si c’est du contenu qui bouge beaucoup comme Fortnite ou Warzone, 8000 kbps ne suffisent pas pour avoir un rendu quali et sans artefacts. Ce qui me permet de rappeler que ce que vous voyez sur l’aperçu dans OBS, ce n’est pas la qualité finale du stream, c’est juste l’aperçu non compressé de toutes vos sources, ça fait une énorme différence.

Plugin Encoder ROI Editor

Et c’est là qu’entre en scène notre plugin Encoder ROI Editor, pour Region of Interest Editor. Il va prioriser l’encodage du stream sur des régions, des zones d’intérêt que vous aurez définies en amont. Donc on va pouvoir indiquer qu’il faudra davantage de bitrate sur la webcam ou sur une partie de l’interface du jeu pour qu’elle soit plus nette, et ça a  de fait un intérêt pour les zones fixes. Car de base, l’encodeur privilégie ce qui est en mouvement pour répartir le bitrate, c’est pour ça que parfois, quand on a un jeu rapide, la webcam devient moche et floue puisqu’elle bouge très peu alors que le jeu bouge beaucoup.

Tout ça on y reviendra en détails dans la partie où je vous montrerai comment utiliser le plugin. Mais avant de voir comment ça marche, il faut déjà s’assurer que le stream est correctement réglé. À mon sens, c’est très important de bien paramétrer son encodage avant, et d’utiliser le plugin seulement après pour affiner. Sinon ça risque d’être contre-productif.

Les solutions actuelles

Et c’est pour ça que je voulais avant tout parler des solutions qui existent déjà pour limiter la casse et faire en sorte que le stream soit moins « pixellisé », même si ce n’est pas tout à fait le bon terme. Je n’entrerai pas trop dans le détail car j’en ai parlé dans ma vidéo montrant comment améliorer la qualité de son stream et éviter justement la bouillie de pixels, dans laquelle il y a tout un chapitre sur ce phénomène de webcam pixellisée. Donc là je vais juste faire quelques rappels et je vous laisserai le soin de regarder l’autre sujet pour bien paramétrer votre encodage, c’est très important.

Les paramètres qui vont jouer sur la qualité du stream sont essentiellement :

  • la résolution de sortie (ex : 1080p)
  • les fps de sortie (ex : 60 fps)
  • le bitrate vidéo (en kbps)
  • les réglages de l’encodeur

Résolution de sortie et fps de sortie sont à régler en fonction du bitrate que vous êtes capables d’envoyer, et pour ça il faut que votre connexion internet soit capable elle-même d’envoyer un tel débit. C’est de la logique, si vous réglez un débit à 8000 kbps dans OBS, il faut que votre connexion internet puisse envoyer ces 8000 kbps, sans compter le débit audio et les éventuelles variations globales liées au comportement de l’encodeur.

Bref, tout cela est rappelé dans l’article rappelant quel bitrate choisir pour streamer sur Twitch, mais en gros, en supposant que vous ne soyez pas bridés par votre connexion internet, on va faire un compromis entre tous ces paramètres et adapter la résolution de sortie, les fps de sortie et le bitrate vidéo, et pour ça vous pouvez vous référer au tableau sur le bitrate.

Réglages de l’encodeur

Restent les réglages de l’encodeur, et ça pour le coup ça dépendra de votre matériel, de votre PC. Là non plus je n’entrerai pas dans le détail car c’est expliqué dans la vidéo montrant comment améliorer la qualité de son stream, une fois de plus. Il y a juste une option sur laquelle je voudrais revenir et qui concerne ceux qui utilisent l’encodeur Nvenc, ce sont les Améliorations psycho-visuelles.

C’est une option intéressante d’un point de vue rendu sur les jeux rapides, parce qu’elle va faire le focus sur le centre de l’image au détriment de ce qui se passe sur les côtés.

Autrement dit, l’encodeur privilégie ce qui se situe dans le champ de vision direct, et réduit un peu la qualité de ce qui se trouve dans le champ de vision périphérique. Sur le principe, c’est plutôt malin, puisque ce qui est dans le champ de vision périphérique est de toute façon un peu flou. CQFD.

Eh bien on va pouvoir faire ça aussi avec le plugin Encoder ROI Editor sans être obligé d’utiliser Nvenc. C’est plutôt cool car tout le monde n’a pas forcément pas une carte graphique Nvidia, ou certains encodent peut-être même avec leur processeur. Et même plus fort, on va pouvoir définir des zones ou carrément des sources sur lesquelles on veut que l’encodeur mette plus de bitrate, et donc plus de qualité.

Télécharger et installer le plugin

Pour récupérer le plugin, direction la page officielle et on va cliquer sur le bouton pour le télécharger, ça renverra vers la page du projet Github, où on peut trouver la dernière version du plugin. Notez qu’il n’est compatible qu’avec la version 30.1 d’OBS minimum et avec Windows 64-bits uniquement, en tout cas pour l’instant. On peut ensuite télécharger l’installeur et l’exécuter dans la foulée, ça va installer le plugin automatiquement, rien de spécial ici.

Une fois que c’est fait, on pourra démarrer ou redémarrer OBS Studio, et dans le menu Outils, on aura une option pour accéder à l’interface du plugin ROI Editor, ainsi qu’une option pour prévisualiser le rendu obtenu avec le plugin, on verra ça aussi.

Comment utiliser le plugin

Je rappelle que je conseille quand même de bien paramétrer son encodage avant d’utiliser le plugin, mais voilà comment il fonctionne. Dans le menu Outils d’OBS, on va choisir l’option ROI Editor pour accéder à l’interface du plugin. Déjà, pensez à activer la fonctionnalité via la case tout en bas à gauche.

Et sinon c’est assez simple sur le principe puisqu’on peut simplement définir les zones à privilégier pour l’encodage, et on a le choix entre plusieurs options :

Centered Focus Region

pour définir une zone au centre de l’image, carrée ou ronde, on pourra choisir les dimensions de la zone, la position du centre, définir des bordures, le nombre d’étapes dans la zone, ça c’est très intéressant, tout en gardant en tête que le nombre maximum d’étapes dépendra de l’encodeur, par exemple le QSV n’en supporte que 256.

Manual Region

pour définir une zone manuellement, on choisit ses dimensions, sa position, on peut aussi définir la priorité pour l’encodage bien sûr, mais aussi la douceur des bordures, intérieures ou extérieures. C’est vraiment cette option qui peut être pratique pour améliorer la qualité de l’interface d’un jeu, comme un kill feed ou une mini-carte par exemple.

Scene Item Region

pour choisir une source ou un groupe de source qui sera privilégié, là aussi on peut choisir d’adoucir les bordures avec un nombre d’étapes et une affinité particulière, et là c’est la webcam qui va pouvoir bénéficier de cette option.

Prévisualiser le résultat

Enfin, pour voir à quoi ressemblera le résultat, on a une autre option dans le menu Outils, c’est « Encoder Output Preview » qui permet d’avoir un rendu en temps réel de l’encodage. Il faudra juste choisir l’encodeur qu’on a réglé soit pour le stream, soit pour l’enregistrement, et dès qu’une image-clé sera détectée, le rendu apparaîtra. Du coup, ça évite de devoir faire un stream test ou même un simple enregistrement local pour vérifier la qualité du stream, c’est très pratique pour faire des tests. Et des tests, il faudra sans doute en faire quelques-uns pour trouver un résultat correct.

Quelques tests

J’ai fait quelques tests de mon côté, mais pour bien vous montrer que ça fonctionne bien, j’ai poussé les curseurs pour vraiment mettre en évidence les zones que j’ai définies. Donc petit exemple avec la webcam ici, elle reste très nette alors que le jeu est bourré d’artefacts, on voit bien la délimitation de la zone.

Ce n’est évidemment pas un résultat qu’on recherche non plus, mais ça montre juste que ça marche. Et j’ai baissé les paramètres d’encodage pour bien montrer la différence, mais bien sûr ça sera beaucoup plus subtil avec un encodage réglé convenablement.

Autre exemple avec minimap et nombre de kills sur Fortnite, j’ai défini une petite zone manuelle qui englobe ces éléments, et là aussi on voit bien que le plugin répartit l’encodage comme on lui a dit.

Conseils

Pas besoin de vous en montrer davantage, et je ne peux pas vous donner des réglages très précis car le rendu dépendra évidemment du jeu, s’il bouge beaucoup ou pas, de la taille de votre webcam si vous voulez la booster, de l’interface du jeu… Donc je vais simplement vous donner quelques conseils pour essayer de vous orienter un peu quant à l’utilisation de ce plugin.

Priorité

Déjà, ce n’est pas nécessaire de pousser la priorité à fond, ça risque même de faire bug l’encodeur dans certains cas. Donc on évite les 100 % sur une seule zone, en plus ça n’a pas d’intérêt puisque ça va tout focaliser sur un seul endroit de l’image et l’objectif ce n’est pas non plus d’avoir une cam nickel et de la bouillie pixels tout autour. On peut démarrer à 10 ou 15 % de priorité et on ajustera au besoin en fonction du résultat.

Nombre de régions

Ensuite, essayer de ne pas définir trop de régions, ça risque de perturber l’encodage plus qu’autre chose. La cam, un élément de l’interface, c’est bien, si vous commencez à mettre une zone à chaque fois qu’il y a du texte, ça va pas le faire. Idem pour les étapes, les steps, si vous décidez d’en ajouter. A priori, le résultat sera plus propre s’il y a beaucoup d’étapes que s’il n’y en a qu’une, puisqu’on aura alors une démarcation trop nette, ça ne sera pas joli ? Cela dit, certains encodeurs ne gèrent qu’un nombre maxi d’étapes, c’est le cas de Quick Sync qui n’en gère que 256 par exemple. Donc faites attention à ce point aussi, pas trop de zones, pas trop d’étapes.

Webcam

Pour la webcam en particulier, avant même de vouloir la booster avec le plugin, il faut savoir qu’avec une cam peu contrastée ou si vous êtes mal éclairé et trop sombre, ça sera plus compliqué à encoder. Les encodeurs ont généralement un peu plus de mal avec les zones sombres. Donc la priorité numéro un est de peaufiner votre éclairage. C’est le plus important pour le rendu d’une caméra, je vous montre d’ailleurs ici-même comment améliorer sa cam en utilisant un éclairage intelligent. Je vous invite vraiment à vous pencher sur ce point avant d’envisager le plugin, bien souvent ça suffit.

Réglages « génériques »

Exemple de réglages basés sur un encodage en x264 avec un pré-réglage veryfast, en 1080p60 avec un bitrate de 3500 kbps, ce qui est vraiment peu pour une telle résolution. J’ai une zone circulaire au milieu avec quelques étapes, la cam légèrement boostée et une zone manuelle sur la minimap, tout ça avec une priorité pas trop élevée non plus. Si je fais un avant-après, on voit un petit gain sur les zones boostées, ça reste très subtil mais ça sera potentiellement plus évident avec beaucoup de mouvement à l’image, et c’est toujours ça de pris.

Tailles des blocs

Je mentionne rapidement l’option concernant la taille des blocs d’encodage ou « Encoder Block Size », car à priori sur Twitch on va pour l’instant rester sur la première avec des blocs de 16×16 pixels, puisque les streams sur Twitch sont encore aujourd’hui restreints à la norme H.264. Certains autres encodeurs proposent des tailles plus élevées, notamment avec le HEVC ou le AV1, mais pour Twitch, on va rester sur l’option par défaut. Cela dit, rien ne vous empêche de jouer avec les autres tailles si vous voulez stream sur YouTube en AV1 par exemple, même si à priori dans ce cas le plugin aura beaucoup moins d’intérêt étant donné que le AV1 offre une qualité incroyablement supérieure au H.264 avec une bien meilleure compression.

Changement de jeu

Et alors évidemment, si vous changez de jeu ou repassez en Just Chatting sur Twitch, il faudra éventuellement désactiver le plugin, sinon vous allez vous retrouver avec des zones ultra nettes sur l’image et d’autres un peu moins. Donc n’oubliez pas ce détail en décochant la case en bas à gauche sur l’interface du plugin.

Conclusion

En tout cas on a là un nouveau plugin très puissant pour améliorer la qualité d’un stream destiné à Twitch, mais je le rappelle une dernière fois, il est à utiliser en fin de parcours et il convient de bien paramétrer son encodage au préalable pour un résultat optimal. Vous trouverez toutes les ressources dont vous avez besoin sur le site.