Architettura multi-CDN di alto livello con CMCD
Che cos’è il CMCD?
Common Media Client Data (CMCD) si riferisce alla specifica aperta CTA-5004 rilasciata nel 2020. Che cos’è una specifica aperta? La specifica aperta si riferisce a una serie di requisiti e standard documentati pubblicamente disponibili per chiunque. Il titolo principale è che la specifica CMCD Open definisce il modo in cui i lettori multimediali (noti come client) generano dati in streaming video e li condividono con le CDN per ogni richiesta multimediale. Prima che questa specifica venisse definita, era il selvaggio West per quanto riguarda il modo in cui i dati del cliente venivano inviati, ricevuti ed elaborati con le CDN. Il CMCD al suo centro è solo un insieme di chiavi con dati preziosi. Utilizzando il CTA-5004, ho riepilogato questi tasti e aggiunto informazioni per creare un utile riepilogo.Descrizione | Chiave | Definizione | *Uso |
---|---|---|---|
Bitrate codificato | br | Bitrate codificato dell'oggetto audio o video richiesto. | Mostra il bitrate effettivo erogato e può essere utilizzato da CDN per dedurre le dimensioni dell'oggetto. |
Lunghezza buffer | bl | Lunghezza buffer giocatore al momento della richiesta. | Può essere utilizzato da CDN per dedurre lo stato della riproduzione. |
Esaurimento del buffer | bs | Evento di esaurimento del buffer. Indica il ribuffer/stallo durante la riproduzione. | La percentuale di rebuffer viene calcolata come numero totale di sessioni rispetto alle sessioni con almeno un evento di rebuffer in un determinato periodo di tempo. |
ID contenuto | cid | Stringa univoca che identifica il contenuto corrente. | Utile per rintracciare contenuti problematici, ma raramente viene utilizzato dai giocatori. |
Durata oggetto | d | Durata della riproduzione in millisecondi dell'oggetto richiesto. |
Se aggregato, può essere utilizzato come stima delle ore osservate. Può essere utilizzato per determinare se il contenuto si trova in un'interruzione pubblicitaria e il tipo di video che viene guardato. Può essere utilizzato per determinare la dimensione del frammento. |
Scadenza | dl | Per non creare problemi di riproduzione o problemi di sottoesecuzione del buffer, è necessario che sia disponibile la scadenza dall'ora della richiesta fino al primo campione di questo segmento/oggetto | |
Misurare la produttività | mtp | Throughput tra il client e il server, misurato dal client. | Larghezza di banda di throughput stimata tra CDN e lettore. Utile per il confronto tra CDN e metriche esterne. |
Richiesta oggetto successiva | e nemmeno | Percorso relativo dell'oggetto successivo da richiedere. | Utilizzato per il precaricamento. |
Richiesta intervallo successivo | nrr | Se la richiesta successiva sarà una richiesta di oggetto parziale, questa stringa denota l'intervallo di byte da richiedere. Se il campo «NOR» non è impostato, si presume che l'oggetto corrisponda all'oggetto attualmente richiesto. | Utilizzato per il precaricamento. |
Tipo di oggetto | ot |
Tipo di supporto dell'oggetto corrente richiesto: m = file di testo, ad esempio un manifesto o o una playlist a = solo audio v = solo video av = audio e video muxed i = segmento iniziale c = didascalia o sottotitolo tt = traccia di testo temporizzata ISOBMFF k = chiave crittografica, licenza o certificato. = altro Se il tipo di oggetto richiesto non è noto, questa chiave NON DEVE essere utilizzata. |
Utilizzato per la risoluzione dei problemi. Può essere utilizzato per determinare i problemi di codifica e DRM. "I provider DRM hanno una visibilità limitata su quali versioni/browser sono attualmente utilizzati/supportati e quindi "k" è molto utile."
"c" può essere utilizzato per segnalare potenziali problemi di conformità. |
Velocità di riproduzione | pr | 1 per real-time, 2 per double speed, 0 per non giocare. DEVE essere inviato solo se non è uguale a 1. | Può essere utilizzato per dedurre se il lettore sta regolando la velocità di riproduzione per compensare altri problemi (come l'origine o la CDN non riesce a consegnare i segmenti abbastanza velocemente). |
Throughput massimo richiesto | rtp |
Throughput massimo richiesto che il client considera sufficiente per la consegna dell'asset.
***Throughput si riferisce alla quantità di dati trasmessi. |
Ti dirà le prestazioni del lettore e della CDN. Questo può essere utilizzato per una gestione dei dati più efficiente e, di fatto, per risparmiare risorse.
Ciò può favorire i clienti impedendo la saturazione del buffer attraverso la consegna eccessiva e può anche offrire un vantaggio alla comunità attraverso la distribuzione di quote eque. Il concetto è che ogni client riceve il throughput necessario per ottenere prestazioni elevate, ma non più. |
Formato streaming | sf |
d = TRATTINO MPEG h = HTTP Live streaming (HLS) S = streaming fluido o = altro |
Aiuta a determinare i problemi relativi allo streaming per i giocatori che supportano DASH/HLS. È in grado di confrontare le prestazioni in base al formato di streaming per i lettori con supporto multiformato. |
ID sessione | sid | GUID che identifica la sessione di riproduzione corrente. Una sessione di riproduzione in genere collega segmenti appartenenti a una singola risorsa multimediale. La lunghezza massima è di 64 caratteri. SI CONSIGLIA di conformarsi alle specifiche UUID. |
Si consiglia sempre di includere questo tasto nella registrazione CMCD. È probabilmente la chiave più utile in quanto viene utilizzata per allineare i log.
Può essere utile per la risoluzione dei problemi di memorizzazione nella cache. Lo stesso ID contenuto con due ID sessione indica fortemente un problema di memorizzazione nella cache. |
Tipo di flusso | st |
v = sono disponibili tutti i segmenti, ad esempio VOD l = i segmenti diventano disponibili nel tempo, ad esempio DAL VIVO |
Chiave preziosa per la risoluzione dei problemi. |
Avvio | su | Segnala l'avvio del contenuto. |
Elimina la necessità di beaconing. Le CDN conoscere l'avvio dei contenuti può essere utile per ottimizzare la riproduzione successiva. Questo flag viene inviato anche dopo il flag buffer (bs). |
Bitrate superiore | tbc | Il bitrate più elevato nel manifesto o o nella playlist che il client può riprodurre. |
Utilizzato per determinare i problemi di bitrate o bitrate laddering. Mostra il bitrate massimo che il giocatore potrebbe giocare in quel momento. Può essere utilizzato per il confronto con i bitrate disponibili. |
Versione CMCD | v | Versione della specifica CMCD utilizzata. | Questa chiave consente il controllo delle versioni e indica che saranno rilasciate future versioni CMCD. |
Tasto personalizzato |
"Le chiavi personalizzate richiedono il prefisso "cmcd-"." Esempio fittizio: Cmcd-edgio |
Consente l'invio di chiavi CMCD univoche, ampliando il CMCD in modo che sia completamente personalizzabile. |
Attualmente, Edgio è l’unica CDN che dichiara pubblicamente il supporto per tutte le chiavi CMCD. I tasti definiti possono essere trasmessi in tre modalità di consegna dai lettori alle CDN.
- Intestazione HTTP personalizzata in ogni richiesta. I tasti possono essere utilizzati con quattro nomi di intestazione.
- CMCD-Request: Chiavi i cui valori variano a seconda di ogni richiesta.
- Oggetto CMCD: Chiavi i cui valori variano in base all’oggetto richiesto.
- Stato CMCD: Chiavi i cui valori non variano a seconda di ogni richiesta o oggetto.
- Sessione CMCD: Chiavi i cui valori dovrebbero essere invarianti per tutta la durata della sessione.
- Argomenti query HTTP.
- Oggetto JSON indipendente da ogni richiesta HTTP.
Avvio e avvio del buffer in formato CMCD tramite tre modalità di erogazione.
Chi deve utilizzare CMCD?
I servizi di streaming di qualsiasi dimensione dovrebbero utilizzare CMCD il prima possibile. Tuttavia, dalla sua pubblicazione, la conoscenza e l’implementazione del CMCD sono state limitate. Le tendenze che stiamo vedendo indicano che c’è sempre più adozione e sostegno. Detto questo, ci piacerebbe parlarvi del vostro caso di utilizzo e di come CMCD può migliorare la vostra attività.Perché è necessario il CMCD?
CMCD è fondamentale per garantire agli utenti la migliore esperienza di streaming possibile ogni volta che si preme Play. In qualità di Solutions Engineer di Edgio, il mio lavoro è quello di esaminare l’architettura tecnica di un provider di contenuti per assicurarsi che la nostra CDN funzioni in modo fluido ed efficiente per garantire la migliore esperienza utente. Un componente chiave di qualsiasi architettura tecnica sono i dati raccolti da log, metriche e tracce (noti anche come i tre pilastri dell’osservabilità) per raggiungere questo obiettivo. Di seguito sono riportati alcuni altri motivi per cui CMCD vale la pena incorporare se non sei già venduto su di esso.Standardizzazione
I dati vengono raccolti e analizzati da una combinazione di strumenti proprietari interni e di terze parti per ogni componente dell’architettura. La difficoltà è che i dati raccolti seguono ciascuno il proprio formato. I dati non standard possono creare effetti collaterali quali incongruenze, qualità ridotta, scalabilità limitata e maggiori interventi di manutenzione. Ti sfido a trovare un ingegnere che non ha affrontato alcuni o tutti questi problemi prima. Per risolvere questo problema, CMCD standardizza i dati lato client (lettore) ai dati lato server (CDN) garantendo l’interoperabilità. Ciò è significativo perché lo rende il più vicino possibile alla CDN ai dati RUM (Real User Measurement) lato client.Personalizzazione migliorata
I tasti CMCD personalizzati espandono infinitamente la relativa utilità.Caso di utilizzo: Personalizzazione del codice di stato
Ecco un codice di stato personalizzato che Edgio utilizza. “000 – Un codice di stato specifico per Edgio restituito quando l’origine non invia alcuna risposta, quindi non è presente alcun codice di stato da registrare (ad esempio quando il client si disconnette prima che l’origine fornisca la risposta).” Questa definizione proviene dalla sezione campi del file di registro della documentazione Configurazione del servizio di consegna dei log .
Edgio potrebbe creare una chiave personalizzata cmcd-000.
Flussi di lavoro semplificati
Negli ultimi anni, le aziende tecnologiche hanno tagliato i costi, consolidato gli strumenti e ridotto la complessità complessiva. I dati liberi raccolti da CMCD possono sostituire i servizi di analisi dei log interni ed esterni. Il risultato è un flusso di lavoro semplificato e ottimizzato.Caso di utilizzo: Flusso di lavoro del lettore
Vecchio processo
Le analisi di terze parti sono oggi ampiamente utilizzate dalle società di streaming. Tuttavia, questi strumenti richiedono un processo di integrazione completo e continuo, come illustrato di seguito.
-
- Approvvigionamento
- Ogni fornitore di analisi di terze parti dispone di un proprio kit di sviluppo software (SDK) per l’integrazione beacon con ogni giocatore. ExoPlayer di Android (DASH), il player di Apple (HLS), PlayReady di Microsoft (Xbox/Windows), basato sul web (siti web, televisori) e altro ancora sono tutti esempi di giocatori che richiedono SDK separati.
- Test e convalida. I metadati devono essere conformi alle linee guida del fornitore.
Vale la pena notare che questo processo completo può facilmente richiedere un anno o più.
Nuovo processo
L’attivazione è semplice. Edgio è in grado di acquisire i dati CMCD quasi in tempo reale tramite il nostro servizio di consegna dei log. Ciò significa che il beaconing dei giocatori o l’integrazione di terze parti non è necessaria per sbloccare l’analisi dei dati di nuova generazione. Per i nostri clienti con una vasta base di utenti, ciò si traduce in milioni di dollari risparmiati ogni anno.
Sicurezza
La sicurezza delle informazioni potrebbe non essere la prima cosa a cui si pensa quando si tratta di streaming, ma è comunque un componente importante.- CMCD non ha accesso ai dati di accesso né contiene informazioni personali identificabili (PII), in quanto suddivide l’esperienza dell’utente in base alle informazioni. Contiene solo informazioni generiche sulle prestazioni.
- I dati CMCD non dipendono da servizi intermediari. Ciò limita la condivisione dei dati con terze parti che mantengono i dati interni.
Osservabilità
Le CDN possono ora visualizzare dati di sessione precisi su come il cliente sta usufruendo del servizio. Questa visibilità condivisa può essere utilizzata dalle CDN e dai provider di streaming per:- Impostare un monitoraggio e un allarme più accurati.
- Maggiore tempo di consegna per gli incidenti più gravi.
- Diagnosticare e risolvere i problemi in modo più efficace.
Caso di utilizzo: Gestione delle interruzioni
Vecchio processo
Questo è il tipico flusso di processo di come l’interruzione di una società di streaming viene risolta con registri separati per lettore e CDN.
-
- Si è verificata un’interruzione. Sfortunatamente, la comunicazione umana o l’intervento da parte di analisi di terze parti non è tipicamente offerto.
- L’avviso interno viene attivato a causa di un calo degli indicatori di prestazioni, codici di errore, dashboard, ecc.
- L’allarme viene generato internamente e inoltrato in base a fattori quali il servizio di guardia, gli esperti in materia e la delega del reparto.
- I runbook vengono utilizzati se si tratta di un problema che è stato riscontrato e documentato in precedenza.
- La decisione viene presa se il problema deve essere inoltrato esternamente a partner come CDN.
- Risoluzione raggiunta.
- L’analisi interna delle cause principali (RCA) viene eseguita e comunicata ai clienti.
A causa del lungo percorso di escalation, questa interruzione richiede molto tempo per raggiungere una soluzione.
Nuovo processo
Questo è il flusso del processo di risoluzione di un’interruzione con CMCD.
-
- Si è verificata un’interruzione. L’accesso ai dati CMCD nativi consente a tutti di avere piena visibilità. Il nostro team Managed Services si rivolge in modo proattivo ai clienti per la mitigazione.
- La soluzione viene raggiunta da Edgio, che collabora in tempo reale per risolvere le interruzioni e allo stesso tempo esamina gli stessi dati dei propri ingegneri.
- Edgio è in grado di fornire assistenza con RCA e di elaborare strategie con voi come partner per prevenire future interruzioni di servizio.
La risoluzione delle interruzioni viene raggiunta più rapidamente e richiede meno risorse tecniche interne.
Guadagni prestazionali
Lo scopo principale di una CDN è quello di aumentare le prestazioni dei contenuti serviti su Internet.Precaricamento
Vediamo che il CMCD richiede più spesso ai nostri clienti di sbloccare il supporto di precaricamento universale. Il precaricamento consente di caricare i dati dei contenuti nella cache prima che siano necessari per velocizzare la distribuzione dei contenuti.
Bilanciamento intelligente del carico di nuova generazione
La nostra CDN distribuisce automaticamente i contenuti dal punto di Prescence (POP) ottimale all’interno della nostra rete globale privata. Gestiamo il bilanciamento del carico di rete interno per voi, ma quando vengono utilizzate più CDN, il bilanciamento del carico esterno è più complicato e offuscato per i provider di contenuti da gestire. Il problema sta nel modo in cui le società di streaming possono sfruttare in modo intelligente le CDN nel proprio stack . Ogni azienda tenta di risolvere questo problema in modo unico, ma per la maggior parte è ancora suddivisa manualmente per percentuale o disponibilità delegata dal giocatore. La risposta è il bilanciamento del carico compatibile con CMCD. La presenza di dati CDN e player in registri unificati consente di ottenere maggiori informazioni sulle prestazioni di ciascuna CDN, necessarie per il bilanciamento intelligente del carico. Questo è nelle sue fasi nascenti, ma è anche la caratteristica più promettente. I provider di streaming non stanno ancora utilizzando questo metodo nei loro ambienti di produzione. Lo dico perché ciò significa che la sua applicazione è teorica. Ulteriori informazioni su questo caso d’uso, mentre vediamo il CMCD evolversi e crescere con altre tecnologie di streaming emergenti come l’ai/ML.
Caso di utilizzo: Bilanciamento del carico geografico intelligente
Un provider di streaming ha diritti esclusivi di streaming per il più grande evento sportivo in diretta dell’anno in America Latina. Per prepararsi all’evento, è possibile utilizzare il bilanciamento del carico con funzione CMCD. Durante il gioco, i dati vengono utilizzati in tempo reale per distribuire automaticamente il traffico alla CDN con le migliori prestazioni per regione, locale e/o POP out dallo stack CDN. In questo modo si evita la necessità di eseguire il failover manuale se una CDN nello stack presenta prestazioni insufficienti, capacità o problemi tecnici. In questo scenario, la nostra CDN gestirebbe la quota di traffico più elevata, poiché Edgio in genere supera le altre CDN in America Latina a causa della nostra priorità di investire molto nei mercati emergenti.
Ottimizzazione adattiva del traffico
L’utilizzo in tempo reale del CMCD può essere utilizzato per ottimizzare il traffico adattivo, come ad esempio per gestire i bitrate di riproduzione tra gli spettatori di streaming.
Come attivare CMCD?
Prima di procedere, è necessario sapere che il lettore e il CDN devono entrambi supportare l’utilizzo del CMCD. La maggior parte dei lettori e delle CDN oggi dispone del supporto CMCD.Lettore | Intestazioni | Interrogazione | JSON |
---|---|---|---|
Riproduttore | |||
Bitmovin | |||
Giocatore Shaka | |||
Android ExoPlayer | |||
hls.js | |||
dash.js |
*Va notato che il supporto dei giocatori è stato determinato dalla disponibilità della documentazione pubblica e questo elenco non è esaustivo. Non esitate a contattare il supporto del lettore CMCD e possiamo aggiornare per includere tali informazioni.
? = non informazione pubblica al momento della stesura. Non esitate a contattare il supporto CDN CMCD e possiamo aggiornare per includere tali informazioni.
Ci sono anche altre considerazioni:
- Per motivi di sicurezza, HTTPS è fortemente consigliato su HTTP per tutte le trasmissioni di dati CMCD sul Web.
- La protezione del CORS e dei contenuti introduce una complessità extra nelle configurazioni CDN. Il CORS deve essere configurato per consentire l’invio dal lettore alla CDN delle intestazioni CMCD-Request, CMCD-Object, CMCD-Status, CMCD-Session.
Abilita per Edgio CDN
Per istruzioni, consultare la sezione della documentazione relativa al rapporto CMCD intitolata attivazione della registrazione CMCD. Se non sei già un cliente, contattaci per una prova delle prestazioni per lavorare con il nostro team di ingegneri delle soluzioni e vedere la nostra CDN in azione.
Abilita per Uplynk
Uplynk di Edgio è una piattaforma di streaming perfezionata con CDN integrata per emittenti e provider OTT. L’associazione di CMCD con Uplynk aumenterà la sua visibilità end-to-end che nessun’altra piattaforma di streaming ha. Se non sei già un cliente, contattaci per una demo di Uplynk e per parlare direttamente con i nostri Managed Services per abilitarla. Potete leggere di più sul futuro di Uplynk in Edgio e Bitmovin uniscono le forze per ottimizzare l’esperienza utente .
Come si visualizza il CMCD?
I dati CMCD si trovano all’interno dei registri CDN che possono essere ispezionati. I dati possono essere inseriti in archivi di log, dashboard e report. Edgio è diventato uno dei primi utilizzatori quando abbiamo annunciato il nostro rapporto CMCD basato su EdgeQuery.
Esempio di rapporto CMCD di Edgio disponibile nel CDN Control Portal
Il report CMCD offre una panoramica visiva e la possibilità di visualizzare informazioni dettagliate a portata di mano. I dati CMCD vengono inviati alla soluzione di archiviazione dei log, sia che si trovi in locale, sia che si condivida con una terza parte o che si trovi nella nostra rete sullo storage di origine di Edgio .
Guardando avanti
Se non l’hai già fatto, ora dovresti sentirti bene a conoscenza del CMCD e di come può trasformare lo streaming oggi. In qualità di leader del settore con CMCD, Edgio continuerà a prenderlo nella massima misura possibile. Resta sintonizzato!
Riconoscimenti
Un ringraziamento speciale al nostro Program Manager Anthony Karr per i suoi preziosi suggerimenti e feedback. Grazie al nostro software Architect Yuri Nepyyvoda per il suo straordinario lavoro che ha guidato lo sviluppo della nostra innovativa implementazione CMCD.
Terminologia
- CORS: Condivisione delle risorse tra origini diverse
- Interoperabilità: La possibilità per i sistemi di lavorare insieme.
- Specifica aperta: Una serie di requisiti e standard documentati pubblicamente disponibili per chiunque.
- OTT: Over-the-Top che si riferisce alla distribuzione di contenuti oltre ai servizi Internet.
- Precaricamento: Il precaricamento consente di caricare i dati nella cache prima che siano necessari per velocizzare la distribuzione dei contenuti. Il precaricamento è anche noto come riscaldamento o preriscaldamento della cache.
- RUM: Dati di misurazione dell’utente reale
- SDK: Software Development Kit
- Uplynk: Una piattaforma di streaming perfezionata con CDN integrata per emittenti e provider OTT.