Language not available Language not available Language not available

Dit bericht is niet beschikbaar in jouw taal. Hier zijn enkele andere opties:

Twitch Studio Bèta-updates

Apr 6 2020

Twitch Studio Bèta, onze gratis streamingsoftware die is ontworpen om het makkelijk te maken voor nieuwe streamers om aan de slag te gaan op Twitch, verschaft helderheid bij het opzetten en beheren van je stream. 

We hebben Twitch Studio onlangs bijgewerkt met vier spannende nieuwe functies: een groen scherm met één klik, het opnemen van het beeld uit een Chrome-browser, het opnemen van beelden uit Vulkan-games en ondersteuning voor meerdere audiobronnen. Wat heeft zich achter de schermen afgespeeld om deze functies tot leven te wekken? Lees verder om erachter te komen!

Groen scherm met één klik (chromakey)

Chromakey, beter bekend als groen scherm, is een filter dat wordt gebruikt om de achtergrond van een webcambeeld te verwijderen. Je hebt het waarschijnlijk al in actie gezien op de kanalen van een aantal van je favoriete streamers. Groene schermen vormen een leuke manier voor streamers om hun persoonlijkheid te laten zien in de stream. Ze stellen hen in staat om de achtergrond van hun stream dynamisch te veranderen, zodat hun content er nog aantrekkelijker en professioneler uitziet. Het opzetten van een groen scherm kan echter een bewerkelijk en tijdrovend proces zijn, en diverse instellingen moeten vaak op tal van manieren worden aangepast om het goed te laten werken. Daarom hebben we een automatische detectiefunctie gemaakt voor groene schermen. Hiermee kun je de chromakey-instellingen automatisch configureren en je groene scherm met één klik detecteren.

Hoe werkt een groen scherm dan? Door een achtergrond met een effen kleur te gebruiken, kan het filter alle pixels van die specifieke kleur detecteren en ze transparant maken. Dit wordt vaak gedaan met een groen vel of scherm dat specifiek voor dit doeleinde is gemaakt, maar in principe werkt het met elke effen kleur die niet in de voorgrond te zien is. Hoewel de effen achtergrond voor een mens één en dezelfde kleur lijkt te hebben, ziet de computer dat totaal anders. Door schaduwen en ongelijke verlichting ziet de computer die achtergrond als een hele reeks aan kleuren. Om daar rekening mee te houden, negeert het filter de luminantie of helderheid van elke pixel. In plaats daarvan kijkt het filter alleen naar de chrominantie of kleur.

Maar het negeren van luminantie is niet altijd voldoende. Door ongelijke verlichting verandert ook de onderliggende chrominantie van de pixels. Om dit op te vangen, heeft het filter ook een "overeenkomst"-instelling die bepaalt hoeveel de chrominantie van een pixel moet lijken op de achtergrondkleur om daarwerkelijk verwijderd te worden.

Dit werkt allemaal goed genoeg als de achtergrond redelijk gelijkmatig verlicht is en je de instellingen precies goed afstelt, maar het optimaliseren van die instellingen kan een frustrerende bedoening zijn. Als de overeenkomstwaarde te groot is, worden kleuren uit de voorgrond ten onrechte gematcht, en als de waarde te klein is, blijven er stukjes van de achtergrond verschijnen. Het vinden van de juiste instellingen wordt extra bemoeilijkt door het feit dat er eigenlijk twee parameters zijn die moeten worden aangepast om de juiste instellingen te vinden — de doelkleur en de overeenkomstwaarde — en dat is waar de groen-scherm-in-één-klikfunctie van Twitch Studio om de hoek komt kijken.

Met één druk op een knop optimaliseert ons systeem deze instellingen voor je. Het begint met het bemonsteren van de huidige afbeelding op locaties die meestal als achtergrond functioneren in een typische opstelling met een groen scherm:

Vervolgens nemen we de chrominantiewaarden van deze pixels en kennen die een plek in de UV-kleurruimte toe. Als we bij het in kaart brengen hiervan een cluster van punten detecteren, kunnen we vervolgens het middelpunt van het cluster lokaliseren, dat als doelkleur gebruiken en de straal van het cluster meten om die te gebruiken als overeenkomstwaarde:

En zo kunnen we zonder gedoe de optimale instellingen vinden!

Beelden in Chrome opnemen

Voor vensteropnames maakt streamingsoftware van oudsher gebruik van een Windows API-functie genaamd BitBlt om het beeld uit het doelvenster op te nemen. Dat is efficiënt en werkt in de meeste gevallen goed, maar sommige applicaties gebruiken modernere weergavemethoden waardoor deze methode niet werkt. Dit valt het meest op wanneer geprobeerd wordt het beeld uit Chrome of andere apps op basis van Chromium (zoals Discord, Slack, Spotify, VS Code en andere) op te nemen. En streamingapps kunnen onbetrouwbaar en foutgevoelig zijn wanneer beelden uit Chrome-vensters worden opgenomen. Dit resulteert vaak in een zwart scherm, zonder dat de streamer enige communicatie of foutmelding ontvangt over wat er aan de hand is. 

Enkele oplossingen voor dit probleem waren het gebruik van bijgesneden weergave-opname of het overschakelen van de app naar de softwarerenderingsmodus (indien mogelijk). Helaas is geen van deze oplossingen bijzonder handig. Bijgesneden weergave-opname brengt het risico met zich mee dat er per ongeluk iets op de stream wordt gedeeld als het venster wordt verplaatst, en het overschakelen naar de softwarerenderingsmodus kan gevolgen hebben voor de prestaties van de app, zelfs als deze niet wordt gestreamd.

We wilden de status quo verbeteren. PrintWindow is een andere API die kan worden gebruikt om de inhoud van andere vensters op te nemen, maar ook deze geeft standaard meestal lege of onbetrouwbare uitvoer voor deze vensters. Het blijkt echter dat de functie een ongedocumenteerde PW_RENDERFULLCONTENT-vlag accepteert die een volledige overschildering van het doelvenster forceert en dit probleem oplost.

Deze nieuwe opnamemethode is geen wondermiddel, want het dwingt het doelvenster tot extra werk om deze uitvoer te renderen, maar dat is altijd nog beter dan het alternatief: helemaal geen uitvoer. Om ervoor te zorgen dat dit extra werk alleen wordt gedaan als dat echt nodig is, schakelen we deze opnamemodus standaard alleen in voor apps waarvan bekend is dat ze opnameproblemen hebben met de traditionele BitBlt-methode. Gebruikers kunnen zich aanmelden voor deze "Compatibiliteitsopname"-modus voor al het andere dat we misschien hebben gemist. Hierdoor werkt het opnemen van vensters in bijna alle gevallen, terwijl de prestaties nog steeds worden geoptimaliseerd.

Vulkan-games opnemen 

We weten dat het gaminglandschap voortdurend in ontwikkeling is, en voor het Twitch Studio-team is het een prioriteit om bij te blijven met de nieuwste technologie en ervoor te zorgen dat creators de nieuwste games kunnen streamen. Daarom ondersteunt Twitch Studio nu het opnemen van games die draaien op de graphics-API Vulkan. Dit was een interessant project, omdat Vulkan, in tegenstelling tot andere weergave-API's, van zichzelf al een manier biedt om games op te nemen en overlays weer te geven. Game-opnames worden doorgaans gemaakt door code in de draaiende game te injecteren, die vervolgens inhaakt op de weergave-API's om elk frame van de gameplay te onderscheppen en er een kopie van te maken. Vulkan biedt een lagensysteem waardoor software van derden (zoals streaming-apps) een speciale DLL kunnen registreren die automatisch wordt ingeladen in alle Vulkan-games. Dit stroomlijnt het proces voor het opnemen van games, waardoor we een groot deel van de complexiteit van huidige technieken met het injecteren van code kunnen omzeilen.

Meerdere audiobronnen

De bèta van Twitch Studio werd gelanceerd met een initiële functieset die gericht was op het stroomlijnen van de ervaring voor nieuwe streamers. De software gebruikte daarom een versimpeld audiomodel met één microfoon en één enkele audio-opname op de computer. We blijven de functieset echter uitbreiden op basis van feedback van streamers. Een van de meest gevraagde functies was ondersteuning voor extra audiokanalen/-apparaten en om dat te kunnen doen, hebben we het onderliggende audiosysteem onlangs volledig op de schop gegooid.

Met deze herstructurering van de audio wilden we ervoor zorgen dat de standaard audio-ervaring zo eenvoudig mogelijk bleef, terwijl we geavanceerdere configuratie-opties toevoegden zonder in te boeten op het gebruiksgemak. Onder de motorkap betekende dit dat de manier waarop we audio-apparaten beheren volledig moest worden veranderd. In plaats van simpelweg de standaarduitvoer te kiezen en microfoons op verzoek toe te voegen, hebben we nu de mogelijkheid om alle in- en uitvoerapparaten te monitoren wanneer er een nieuw apparaat wordt gekozen om toe te voegen. Behalve dat hiermee het audiosysteem wordt vereenvoudigd, legt dit ook de basis voor meer spannende audiofuncties die we voor de toekomst hebben gepland, dus hou ons in de gaten!

Bij Twitch doen we er alles aan om het voor nieuwe streamers gemakkelijker dan ooit te maken om aan de slag te gaan met hun avontuur als streamer. We bouwen dit jaar veel meer tools om streamers te helpen hun streams naar een hoger niveau te tillen, terwijl we de ervaring zo eenvoudig en gestroomlijnd mogelijk houden. Als je Twitch Studio nog niet hebt uitgeprobeerd, kun je dat hier doen.

In ander nieuws