Tecnico ·
Come funziona la transcodifica video (e perché conta per lo streaming 24/7)
In breve
- La transcodifica converte un video in una risoluzione, un frame rate e un codec coerenti: è ciò che fa riprodurre in modo prevedibile file provenienti da fonti diverse.
- Un loop 24/7 è particolarmente sensibile ai video non uniformi, perché le clip vanno una dopo l'altra all'infinito senza nessuno che noti o risolva un intoppo.
- Normalizzare ogni video una volta sola, in anticipo, evita di ricodificare nel momento in cui vai in diretta, che è proprio da dove nascono di solito scatti e crash nei passaggi tra una clip e l'altra.
Se hai caricato nello stesso progetto video da un telefono, da un registratore dello schermo e da un'app di montaggio, avrai probabilmente notato che non sempre vanno d'accordo: risoluzioni diverse, frame rate diversi, a volte un codec completamente diverso. La transcodifica è il passaggio che risolve tutto questo e, per un loop in diretta 24/7 in particolare, non è un optional. È ciò che separa uno stream che gira per mesi senza problemi da uno che scatta ogni volta che arriva a una certa clip.
Cosa significa davvero transcodifica
La transcodifica è il processo che converte un file video da un formato a un altro, di solito normalizzando la risoluzione (per esempio tutto a 1920x1080), il frame rate (tutto a 30fps) e il codec (spesso H.264 per una compatibilità ampia), in modo che ogni file si comporti allo stesso modo nei passaggi successivi. È diverso dal semplice "cambiare tipo di file": due file .mp4 possono usare internamente codec, bitrate e frame rate completamente diversi pur avendo la stessa estensione.
Senza transcodifica, riprodurre un file 4K a 24fps seguito subito da un file 720p a 60fps nello stesso stream continuo può causare uno scatto visibile, un breve fotogramma nero o, nei casi peggiori, il crash dell'encoder, perché il software che invia lo stream deve rinegoziare le impostazioni di uscita a trasmissione in corso.
Perché conta di più per un loop 24/7 che per un singolo video
Un caricamento singolo viene guardato una volta, e qualsiasi intoppo si traduce in una singola brutta esperienza di visione. Un loop 24/7 riproduce le stesse clip una dopo l'altra, all'infinito, finché lo stream resta attivo, il che significa:
- Ogni incongruenza si ripete. Uno scatto nel passaggio tra due clip specifiche non succede una volta sola: succede ogni volta che la playlist arriva a quel punto, per tutta la durata del loop.
- Nessuno lo sta guardando per riavviarlo. L'idea stessa di una diretta 24/7 è che giri senza supervisione. Un crash che su uno stream presidiato una persona noterebbe e risolverebbe in pochi secondi può restare lì, fermo, per ore su uno non presidiato.
- Le playlist crescono nel tempo. Man mano che aggiungi video da più fonti, aumentano le probabilità che almeno una clip abbia un formato incompatibile.
Due modi per gestirlo: al caricamento o a "Vai in diretta"
La transcodifica può avvenire in due momenti, e la differenza conta:
- Al caricamento, una volta sola. Ogni video viene normalizzato in un formato di destinazione fisso nel momento in cui lo aggiungi alla libreria: risoluzione, frame rate e codec vengono fissati prima ancora che finisca in una playlist. Il costo della transcodifica si paga una volta, in anticipo, e mai più.
- A "Vai in diretta", ogni volta. Lo stream ricodifica al volo l'intera playlist ogni volta che inizi a trasmettere. Funziona, ma significa pagare il costo della transcodifica (e rischiare che fallisca) ogni volta che vai in diretta, e non fa nulla per evitare incongruenze tra le clip della stessa playlist.
Loopcast usa il primo approccio: ogni video viene normalizzato una volta sola in background subito dopo il caricamento, così quando arriva in un loop in diretta il relay si limita a concatenare clip già uniformi invece di ricodificarle al volo. È anche il motivo per cui modificare i punti di taglio di un video avvia una rapida nuova normalizzazione invece di toccare l'intero stream: serve lavoro nuovo solo per la clip che è cambiata.
Come si presenta in pratica
Di solito la transcodifica non la vedi: gira in background dopo il caricamento di un video, e il video mostra per poco uno stato di "elaborazione" prima di risultare pronto da aggiungere a una playlist. La lezione pratica non è un'impostazione da configurare: è un motivo per caricare i video prima di un lancio invece di aspettarti che siano subito pronti per lo stream, e un motivo per cui un servizio che transcodifica una volta sola, in anticipo, tende a reggere meglio durante una lunga esecuzione senza supervisione rispetto a uno che non lo fa.
Domande frequenti
La transcodifica riduce la qualità video?
Una transcodifica ben configurata punta a un bitrate e a una risoluzione abbastanza alti da rendere la perdita di qualità invisibile agli spettatori, anche perché YouTube stesso ricomprime comunque tutto ciò che carichi o trasmetti. Qui l'obiettivo della transcodifica è la coerenza, non la compressione fine a sé stessa.
Perché un video appena caricato risulta "in elaborazione" invece di essere subito pronto?
È la transcodifica in corso: il video viene normalizzato in un formato coerente in background. Quando finisce, il video diventa disponibile per essere aggiunto a una playlist.
Se due dei miei video hanno già la stessa risoluzione e lo stesso frame rate, serve comunque la transcodifica?
Di solito sì, almeno la prima volta. Avere risoluzione e frame rate uguali è necessario ma non sufficiente: impostazioni del codec, intervalli dei keyframe e formato audio possono comunque differire in modi che non si notano guardando solo le proprietà del file, quindi normalizzare ogni caricamento allo stesso modo evita di dare per scontato che una somiglianza apparente sia una corrispondenza completa.