Inloggen

Hoe we schermdelen vier keer sneller maakten

Het technische verhaal achter hoe we de latentie bij schermdelen in Cliqer terugbrachten van meer dan twee seconden naar ongeveer een halve seconde.

Cliqer Team

3 september 2026 · 7 min lezen

A software engineer reviewing a video latency graph on a monitor in a dimly lit office

Latentie bij schermdelen is zo'n probleem dat je pas opmerkt als het slecht is. Een presentator klikt naar de volgende dia en het publiek dat naar het gedeelde scherm kijkt, ziet het anderhalve tel later. Niet echt kapot, gewoon net niet goed. Over een paar releases hebben we kritisch bekeken waar die vertraging in het schermdelen van Cliqer vandaan kwam, en we hebben de basislatentie teruggebracht van meer dan twee seconden naar ongeveer een halve seconde, een verbetering van grofweg vier keer. Dit is in gewone taal hoe we dat deden.

We gaan geen codenamen verstoppen of doen alsof er één wondermiddel was. Er waren drie afzonderlijke fixes, elk gericht op een andere plek waar de vertraging zich verstopte, en ze versterkten elkaar.

Belangrijkste punten
  • Drie fixes die elkaar versterken: geen dubbele encoding, een strakkere buffer en een gecachet keyframe voor nieuwe kijkers.
  • De basislatentie daalde van meer dan twee seconden naar ongeveer een halve seconde, een verbetering van grofweg vier keer.
  • Je hoeft geen enkele instelling te wijzigen. Het zit automatisch in de schermdeelpipeline van de desktop-app.

Waarom schermdelen überhaupt hapert

Wanneer je een scherm deelt, moeten er drie dingen gebeuren voordat een kijker een frame ziet: je computer moet het vastleggen, naar video encoderen en verzenden. Elk van die stappen kan ongemerkt vertraging toevoegen, en het effect stapelt zich op. Een trage encoder plus een voorzichtige buffer plus wachten op de volgende volledige frame-update kan makkelijk oplopen tot twee of drie seconden, zelfs op een snelle verbinding.

Het lastige is dat geen van die stappen afzonderlijk kapot lijkt. Vastleggen werkt. Encoderen werkt. De stream komt aan. Hij is alleen te laat, en ‘alleen te laat’ is moeilijk te diagnosticeren zonder elke fase afzonderlijk te meten.

Voelt een schermdeling traag aan terwijl de rest van je gesprek prima loopt? Kijk dan specifiek naar de videopipeline, niet naar je algemene internetverbinding. Vanuit de stoel van de kijker zien de twee problemen er identiek uit, maar de oplossingen zijn totaal verschillend.

Fix één: stop met hetzelfde beeld twee keer encoderen

De eerste bron van vertraging was verspild werk. Scherm- en NDI-shares werden achter de schermen twee keer geëncodeerd, één keer voor elk uitvoerpad, en een stilstaande dia werd continu opnieuw geëncodeerd, ook al was er niets op het scherm veranderd. Dat verdubbelde de belasting van de encoder zonder enig visueel voordeel, en het betekende dat de pipeline altijd drukker was dan nodig, waardoor elk frame verder achteraan in de wachtrij belandde.

Door de dubbele encodeerstap te schrappen en het opnieuw encoderen over te slaan als het beeld niet is veranderd, kwam er direct flink wat CPU-ruimte vrij. Minder concurrentie om de encoder betekent dat elk frame dat wel geëncodeerd moet worden, sneller wordt verwerkt.

Fix twee: de buffer strakker maken zonder in te leveren op veerkracht

De tweede bron was de buffer tussen de encoder en het netwerk, het onderdeel dat korte netwerkhaperingen opvangt zodat een hapering op de lijn geen hapering op het scherm wordt. Zulke buffers zijn van nature een afweging: te klein en een kleine hapering veroorzaakt zichtbare glitches, te ruim en je voegt aan elk afzonderlijk frame vertraging toe, voor het geval er later iets misgaat.

De buffer was ruim bemeten, waardoor hij in de normale situatie aan elk frame vertraging toevoegde om te beschermen tegen een zeldzame situatie. Door hem strakker te maken daalde de vertraging in het slechtste geval van een paar seconden naar ruim onder de één, terwijl korte netwerkhaperingen nog steeds zonder zichtbare glitches worden opgevangen. Dit is het soort fix dat er in een diff uitziet als een kleine aanpassing van een getal, maar eigenlijk een afweging is over welke manier van falen je liever hebt.

Fix drie: nieuwe kijkers niet laten wachten op het volgende keyframe

De derde fix richtte zich op een specifiek, pijnlijk moment: wat er gebeurt als iemand aansluit bij een share die al loopt. Videocompressie werkt door slechts af en toe volledige frames te sturen, keyframes genoemd, met daartussen goedkopere frames van het type ‘wat is er veranderd sinds de vorige keer’. Een kijker die halverwege de stream instapt, kan die tussenliggende frames pas interpreteren als hij een keyframe ontvangt om op te ankeren, en voorheen betekende dat wachten op het volgende geplande keyframe, tot wel drie seconden later.

De oplossing was om het meest recente keyframe in de cache te bewaren en het direct aan een nieuwe kijker te geven zodra die aansluit, in plaats van hem te laten wachten op het volgende keyframe in het schema. Gecombineerd met de op intervallen gebaseerde frametiming die in onze documentatie over schermdelen wordt beschreven, zien nieuwe kijkers nu binnen milliseconden na het aansluiten video, in plaats van tot drie seconden te wachten op het volgende keyframe.

Tel alle drie de fixes bij elkaar op en de basislatentie van ruim twee seconden die de meeste mensen nooit helemaal vertrouwden, werd ongeveer een halve seconde, een verbetering van grofweg vier keer, terwijl er minder CPU en minder bandbreedte wordt gebruikt dan voorheen. De volledige framerate telt hier ook mee: programmavideo was ongemerkt beperkt tot ongeveer 31 frames per seconde, ongeacht de bron, dus een share op 60 fps ziet er aan de ontvangende kant nu net zo vloeiend uit als op het eigen scherm van de presentator.

Wat dit betekent als je nu presenteert

Je hoeft hiervoor geen enkele instelling te wijzigen. Het zit in de schermdeelpipeline van de desktop-app en geldt of je nu één monitor deelt met een kleine ruimte of een volledige Studio-productie met meerdere bronnen draait, inclusief vMix-workflows die leunen op een snelle, voorspelbare feed. In Cliqer 3 is Studio-video op de Mac zero-copy: camerabeelden, bronnen en Program blijven in het GPU-geheugen, en de hardware-encoder leest Program rechtstreeks van het GPU-oppervlak. Cliqer 3 toont daarnaast continu de framerate van Program en de GPU- en CPU-belasting in de statusregel van Studio, zodat je de framerate tijdens de show zelf kunt controleren. Wil je naast het latentiewerk ook de kwaliteit afstemmen op de bandbreedte? De instellingen voor schermdelen behandelen codeckeuze, resolutie en bitrate, en desktop 2.2.0 voegde de optie toe om systeem- of microfoonaudio direct in een share op te nemen.

Voor hybride opstellingen waar de vertraging het meest zichtbaar was, vooral bij een spreker op afstand die naar een gedeeld scherm kijkt en live reageert, sluit dit aan bij onze gids over latentie bij schermdelen in hybride vergaderingen oplossen en onze uitleg over waarom clickerlatentie in milliseconden aan de bedieningskant net zo belangrijk is als aan de videokant.

Waar de rest van de latentie zit

Schermdelen is één deel van de reis. Het andere deel is het netwerkpad zelf: of de verbinding tussen presentator en kijker direct is of via een relay loopt, en wat er gebeurt op netwerken die direct peer-to-peerverkeer blokkeren. Die kant behandelen we, inclusief waarom die latentie op sommige netwerken nooit volledig te elimineren is, in TURN-servers uitgelegd en is WebRTC veilig.

FaseVoorNa
EncodingDubbele encodeerstap, continu opnieuw encoderen van statische framesEén stap, slaat ongewijzigde frames over
BufferingRuime buffer, voegt aan elk frame vertraging toeStrakkere buffer, vangt korte haperingen nog steeds op
Nieuwe kijker sluit aanWacht tot 3 seconden op het volgende keyframeGecachet keyframe direct geleverd
BasislatentieMeer dan 2 secondenOngeveer 0,5 seconde

TURN-servers uitgelegd

Waarom een deel van de resterende latentie uit het netwerkpad komt en niet uit de encoder.

Latentie bij schermdelen oplossen

Meer oplossingen voor hybride opstellingen waarin een spreker op afstand het scherm terugkijkt.

Instellingen voor schermdelen

Instellingen voor codec, resolutie en bitrate om kwaliteit af te stemmen op bandbreedte.

Clickerlatentie in milliseconden

Waarom latentie aan de bedieningskant net zo belangrijk is als de videofeed zelf.

Veelgestelde vragen

Probeer het zelf

De snelste manier om het verschil te voelen, is een scherm delen en naar het gezicht van iemand anders kijken op het moment dat die het ziet. Download Cliqer gratis en probeer een schermdeling op je eigen opstelling, of bekijk alle functies bij schermdelen en vergelijk abonnementen op prijzen.

engineeringscreen sharinglatencyperformance

Geschreven door het Cliqer Team

Wij bouwen Cliqer, de internetclicker die wereldwijd op podia, in klaslokalen en in vergaderzalen wordt gebruikt.

Draai je volgende show met Cliqer

Alle slides, elke telefoon, overal. De desktop-app host de ruimte, presentatoren openen gewoon een link.

Verder lezen

Meer productnieuws voor je volgende show

A laptop running Cliqer Studio and a phone running Cliqer Remote on a backstage tech table, the stage projection wall glowing behind them
Productnieuws

Waarom Cliqer 3 native is: wat versie 2 probeerde en waarom een native engine wint

Waarom Cliqer 3 native is: een Rust-engine, hardwarevideo, echte beeldschermuitgangen en NDI in plaats van een webapp in een desktopschil.
A presenter holds a phone remote: one half seen through a thermal camera glowing hot, the other half cool in mint stage light
Productnieuws

Waarom we onze Flutter-app weggooiden en Cliqer Remote native herbouwden, op een Rust-core

We bouwden Cliqer Remote in Flutter, maten het op een echte telefoon en herbouwden het daarna native op één Rust-core: de helft van de batterij, geen warmte. De cijfers en de lessen.
A dedicated server rack glowing mint in a dark data hall
Productnieuws

Waarom we de realtime van Cliqer bij Cloudflare weghaalden (en waarom we nog steeds fan zijn)

Vier maanden op de edge van Cloudflare: wat er misging, wat we bouwden om ermee om te gaan en waarom Cliqer nu op onze eigen dedicated servers draait.
Nieuwsbrief

Ontvang de volgende gids vóór je volgende show

Praktische gidsen voor presentatoren, AV-crews en eventteams, plus de Cliqer releases die ertoe doen. Geen spam, met één klik afmelden.