Accedi

Come abbiamo reso la condivisione dello schermo quattro volte più veloce

La storia tecnica dietro la riduzione della latenza della condivisione dello schermo di Cliqer da oltre due secondi a circa mezzo secondo.

Cliqer Team

3 settembre 2026 · 7 min di lettura

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

La latenza della condivisione dello schermo è uno di quei problemi che noti solo quando è grave. Un relatore passa alla slide successiva e il pubblico che guarda lo schermo condiviso la vede un attimo e mezzo dopo. Non è proprio un guasto, semplicemente qualcosa non torna. Nel corso di alcune release abbiamo analizzato a fondo da dove arrivasse quel ritardo nella condivisione dello schermo di Cliqer e abbiamo portato la latenza costante da oltre due secondi a circa mezzo secondo, un miglioramento di circa quattro volte. Questa è la versione in parole semplici di come ci siamo riusciti.

Non nasconderemo nomi in codice né fingeremo che esistesse una soluzione miracolosa. Ci sono stati tre interventi distinti, ciascuno mirato a un punto diverso in cui si nascondeva il ritardo, e i loro effetti si sono sommati.

Punti chiave
  • Tre interventi sommati: niente codifica duplicata, un buffer più stretto e un keyframe in cache per i nuovi spettatori.
  • La latenza costante è scesa da oltre due secondi a circa mezzo secondo, un miglioramento di circa quattro volte.
  • Nessuna impostazione da modificare. È incluso automaticamente nella pipeline di condivisione dello schermo dell'app desktop.

Perché la condivisione dello schermo va in ritardo

Quando condividi uno schermo, devono succedere tre cose prima che uno spettatore veda un fotogramma: il tuo computer deve catturarlo, codificarlo in video e inviarlo. Ognuno di questi passaggi può aggiungere ritardo senza dare nell'occhio, e l'effetto si accumula. Un encoder lento, più un buffer prudente, più l'attesa del successivo aggiornamento completo del fotogramma possono facilmente sommarsi fino a due o tre secondi, anche con una connessione veloce.

La parte insidiosa è che nessuno di questi elementi, preso da solo, sembra guasto. La cattura funziona. La codifica funziona. Lo stream arriva. Semplicemente arriva tardi, e “arriva tardi” è difficile da diagnosticare senza misurare ogni fase separatamente.

Se una condivisione dello schermo sembra lenta ma tutto il resto della chiamata funziona bene, controlla nello specifico la pipeline video, non la tua connessione Internet in generale. Dalla poltrona dello spettatore i due problemi sembrano identici, ma le soluzioni sono completamente diverse.

Intervento uno: smettere di codificare due volte la stessa immagine

La prima fonte di ritardo era lavoro sprecato. Le condivisioni dello schermo e NDI venivano codificate due volte dietro le quinte, una per ciascun percorso di uscita, e una slide ferma veniva ricodificata di continuo anche se sullo schermo non era cambiato nulla. Questo raddoppiava il carico sull'encoder senza alcun beneficio visivo e rendeva la pipeline sempre più impegnata del necessario, spingendo ogni fotogramma più indietro nella coda.

Eliminare il passaggio di codifica duplicato, e saltare la ricodifica quando l'immagine non è cambiata, ha liberato subito un margine di CPU significativo. Meno contesa sull'encoder significa che ogni fotogramma che deve davvero essere codificato viene elaborato prima.

Intervento due: stringere il buffer senza perdere resilienza

La seconda fonte era il buffer tra l'encoder e la rete, la parte che serve ad assorbire brevi intoppi di rete, così che un'esitazione sulla linea non diventi un'esitazione sullo schermo. Buffer di questo tipo sono per natura un compromesso: troppo piccoli e un minimo intoppo provoca glitch visibili, troppo generosi e aggiungi ritardo a ogni singolo fotogramma solo nel caso in cui qualcosa vada storto più avanti.

Il buffer era stato dimensionato con generosità, il che significava aggiungere ritardo a ogni fotogramma nel caso comune per proteggersi da un caso raro. Stringerlo ha ridotto il ritardo nel caso peggiore da qualche secondo a ben meno di uno, continuando ad assorbire brevi intoppi di rete senza glitch visibili. È il tipo di intervento che in un diff sembra la modifica di un piccolo numero ed è in realtà una scelta ponderata su quale modalità di guasto preferisci avere.

Intervento tre: non far più aspettare il keyframe successivo ai nuovi spettatori

Il terzo intervento riguardava un momento specifico e fastidioso: cosa succede quando qualcuno si collega a una condivisione già in corso. La compressione video funziona inviando solo occasionalmente fotogrammi completi, chiamati keyframe, con in mezzo fotogrammi più leggeri del tipo “cosa è cambiato dall'ultima volta”. Uno spettatore che si collega a stream avviato non può interpretare quei fotogrammi intermedi finché non riceve un keyframe a cui agganciarsi, e prima questo significava aspettare il successivo keyframe programmato, fino a tre secondi dopo.

La soluzione è stata tenere in cache il keyframe più recente e consegnarlo a un nuovo spettatore nel momento in cui si collega, invece di fargli aspettare il successivo in programma. Insieme alla temporizzazione dei fotogrammi basata su intervalli descritta nella nostra documentazione sulla condivisione dello schermo, i nuovi spettatori ora vedono il video entro pochi millisecondi dal collegamento a una condivisione, invece di aspettare fino a tre secondi il keyframe successivo.

Sommando i tre interventi, la latenza costante di oltre due secondi di cui quasi nessuno si fidava davvero è diventata circa mezzo secondo, un miglioramento di circa quattro volte, con meno CPU e meno banda di prima. Anche il frame rate pieno conta: il video Program era silenziosamente limitato a circa 31 fotogrammi al secondo indipendentemente dalla sorgente, quindi ora una condivisione a 60fps appare fluida sul lato ricevente quanto sullo schermo del relatore.

Cosa significa se stai presentando adesso

Niente di tutto questo richiede di modificare un'impostazione. È incluso nella pipeline di condivisione dello schermo dell'app desktop e si applica sia che tu stia condividendo un singolo monitor per un pubblico ristretto, sia che tu stia gestendo una produzione completa in Studio con più sorgenti, compresi i flussi di lavoro vMix che contano su un feed veloce e prevedibile. In Cliqer 3, il video di Studio su Mac è a copia zero: i fotogrammi della videocamera, le sorgenti e Program restano nella memoria della GPU, e l'encoder hardware legge Program direttamente dalla superficie della GPU. Cliqer 3 mostra inoltre costantemente il frame rate di Program e il carico di GPU e CPU nella riga di stato di Studio, così puoi verificare da solo il frame rate in piena diretta. Se oltre al lavoro sulla latenza vuoi bilanciare qualità e banda, le impostazioni di condivisione dello schermo coprono la scelta del codec, la risoluzione e il bitrate, e la versione desktop 2.2.0 ha aggiunto l'opzione per includere direttamente l'audio di sistema o del microfono in una condivisione.

Per le configurazioni ibride, dove il ritardo era più evidente, in particolare quando un relatore da remoto guarda uno schermo condiviso e reagisce in diretta, questo si abbina alla nostra guida su come risolvere la latenza della condivisione dello schermo nelle riunioni ibride e al nostro approfondimento sul perché la latenza del telecomando per presentazioni in millisecondi conta sul lato del controllo tanto quanto sul lato video.

Dove va il resto della latenza

La condivisione dello schermo è una parte del percorso. L'altra è il percorso di rete stesso: se la connessione tra relatore e spettatore è diretta o tramite relay, e cosa succede sulle reti che bloccano il traffico peer-to-peer diretto. Trattiamo questo aspetto, incluso il motivo per cui su alcune reti non può mai essere eliminato del tutto, in server TURN spiegati e WebRTC è sicuro.

FasePrimaDopo
CodificaPassaggio di codifica duplicato, ricodifica continua dei fotogrammi staticiPassaggio singolo, salta i fotogrammi invariati
BufferingBuffer generoso, aggiunge ritardo a ogni fotogrammaBuffer più stretto, assorbe comunque brevi intoppi
Collegamento di un nuovo spettatoreAttende fino a 3 secondi il keyframe successivoKeyframe in cache consegnato immediatamente
Latenza costanteOltre 2 secondiCirca 0,5 secondi

Server TURN spiegati

Perché parte della latenza residua deriva dal percorso di rete, non dall'encoder.

Soluzioni per la latenza della condivisione dello schermo

Altre soluzioni per le configurazioni ibride in cui un relatore da remoto guarda lo schermo condiviso.

Impostazioni di condivisione dello schermo

Impostazioni di codec, risoluzione e bitrate per bilanciare qualità e banda.

Latenza del telecomando per presentazioni in millisecondi

Perché la latenza sul lato del controllo conta tanto quanto il feed video stesso.

Domande frequenti

Provalo tu stesso

Il modo più rapido per percepire la differenza è condividere uno schermo e osservare il volto di qualcun altro mentre lo vede. Scarica Cliqer gratis e prova una condivisione dello schermo sulla tua configurazione, oppure scopri tutte le funzionalità della condivisione dello schermo e confronta i piani nella pagina dei prezzi.

engineeringscreen sharinglatencyperformance

Scritto dal Cliqer Team

Sviluppiamo Cliqer, il telecomando via Internet per presentazioni usato sui palchi, nelle aule e nelle sale riunioni di tutto il mondo.

Gestisci il tuo prossimo evento con Cliqer

Qualsiasi slide, qualsiasi telefono, ovunque. L'app desktop ospita la stanza, i relatori aprono semplicemente un link.

Continua a leggere

Altre novità sul prodotto per il tuo prossimo evento

A presenter holds a phone remote: one half seen through a thermal camera glowing hot, the other half cool in mint stage light
Novità sul prodotto

Perché abbiamo buttato via la nostra app Flutter e ricostruito Cliqer Remote in nativo, su un core Rust

Abbiamo creato Cliqer Remote in Flutter, l'abbiamo misurata su un telefono vero e poi ricostruita in nativo su un unico core Rust: metà della batteria, niente calore. Numeri e lezioni.
A dedicated server rack glowing mint in a dark data hall
Novità sul prodotto

Perché abbiamo tolto il realtime di Cliqer da Cloudflare (e perché ne restiamo fan)

Quattro mesi sull'edge di Cloudflare: cosa si è rotto, cosa abbiamo costruito per farvi fronte e perché oggi Cliqer gira sui nostri server dedicati.
A bright hybrid meeting room with a camera on a tripod and a laptop running Cliqer Studio
Produzione live

Cliqer vs Ecamm Live: quale studio live è adatto al tuo show?

Cliqer vs Ecamm Live a confronto in modo imparziale: Mac e Windows, Studio, Live, Timer e telecomandi da smartphone contro uno studio solo per Mac.
Newsletter

Ricevi la prossima guida prima del tuo prossimo evento

Guide pratiche per relatori, tecnici AV e team di eventi, più le release di Cliqer che contano davvero. Niente spam, ti disiscrivi con un clic.