Guida alle procedure consigliate per lo streaming live di Servizi multimediali
I clienti spesso chiedono come ridurre la latenza del flusso live. Questo articolo descrive le procedure consigliate per ottenere flussi live a bassa latenza con oltre alla codifica degli eventi live.
Nota
Prima di continuare a leggere questo articolo, leggere l'articolo
Esistono molti fattori che determinano la latenza end-to-end di un flusso oltre a come viene codificato il supporto. Ecco alcuni aspetti da considerare:
Ritardi sul lato del codificatore di contributi. Quando i clienti usano un software di codifica come OBS Studio, Wirecast o altri utenti per inviare un flusso live RTMP a Servizi multimediali. Le impostazioni di questo software influiscono sulla latenza end-to-end di un flusso live.
Ritardi nella pipeline di streaming live in Servizi multimediali di Azure
Prestazioni della rete CDN
Algoritmi di buffering delle condizioni del lettore video e della rete sul lato client
Temporizzazione del provisioning
Codificatore di contributi
È possibile controllare le impostazioni delle impostazioni del codificatore di origine prima che il flusso RTMP raggiunga Servizi multimediali. Ecco alcuni consigli per le impostazioni che offrono la latenza più bassa possibile:
Selezionare l'area fisica più vicina al codificatore di contributi per l'account di Servizi multimediali. In questo modo si avrà una connessione di rete ottimale all'account di Servizi multimediali.
Usare una dimensione coerente del frammento. È consigliabile usare una dimensione GOP di 2 secondi. Il valore predefinito per alcuni codificatori, ad esempio OBS, è di 8 secondi. Assicurarsi di modificare questa impostazione.
Usare il codificatore GPU se il software di codifica consente di farlo. In questo modo è possibile eseguire l'offload del lavoro della CPU nella GPU.
Usare un profilo di codifica ottimizzato per la bassa latenza. Ad esempio, con OBS Studio, se si usa il codificatore Nvidia H.264, è possibile che venga visualizzato il set di impostazioni "zero latenza".
Inviare contenuto non superiore a quello previsto per lo streaming. Ad esempio, se si usano eventi live con codifica standard 720p, inviare un flusso già a 720p.
Mantenere la frequenza dei fotogrammi a 30fps o inferiore a meno che non si usino eventi live pass-through. Sebbene sia supportato l'input da 60 fps per gli eventi live, l'output dell'evento live di codifica non è ancora superiore a 30 fps. Per HLS a bassa latenza, è consigliabile usare la frequenza dei fotogrammi fissa e la durata massima del fotogramma non deve superare 0,5 secondi per un'esperienza ottimale.
Configurazione dell'evento live di Servizi multimediali di Azure
Ecco alcune configurazioni che consentono di ridurre la latenza nella pipeline:
Usare le opzioni di flusso a bassa latenza per gli eventi live. Per le opzioni di codifica Standard (fino a 720p) e codifica Premium (fino a 1080p), a meno che non sia necessaria una finestra DVR più lunga di 6 ore o output smooth streaming, usare l'impostazione Bassa latenza del flusso di latenza.
È consigliabile scegliere l'output CMAF sia per la riproduzione HLS che DASH. In questo modo è possibile condividere gli stessi frammenti per entrambi i formati. Aumenta il rapporto riscontri nella cache quando viene usata la rete CDN. Per esempio:
Digitare Formato Esempio di URL HLS CMAF format=m3u8-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)
MPEG-DASH CMAF format=mpd-time-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)
Se è necessario scegliere l'output TS, usare un rapporto di compressione HLS pari a 1. In questo modo è possibile inserire un solo frammento in un segmento HLS. Non otterrai i vantaggi completi di LL-HLS nei giocatori Apple nativi.
Ottimizzazioni del lettore
Quando si sceglie e si configura un lettore video, assicurarsi di usare le impostazioni ottimizzate per una latenza inferiore.
Servizi multimediali supporta output di protocolli di streaming diversi: DASH, HLS con output TS e HLS con frammenti CMAF. Quando si usa l'opzione flusso LowLatencyV2
, assicurarsi di trovare un lettore che supporti HLS a bassa latenza (LL-HLS). A seconda dell'implementazione del giocatore, le decisioni di memorizzazione nel buffer influisce sulla latenza osservata da un visualizzatore. Condizioni di rete scarse o algoritmi predefiniti che favoriscono la qualità e la stabilità della riproduzione potrebbero causare la scelta dei giocatori di memorizzare più contenuto in anticipo per evitare interruzioni durante la riproduzione. Questi buffer, prima e durante le sessioni di riproduzione, aggiungono alla latenza end-to-end.
Quando si usa Azure Media Player, l'euristica bassa latenza profilo ottimizza il lettore per ottenere la latenza più bassa possibile sul lato lettore. Questo lettore supporta solo DASH a meno che non venga usato in Safari nei dispositivi Apple.
Opzioni e ottimizzazioni della rete CDN
Gli endpoint di streaming sono i server di origine che distribuiscono il contenuto di streaming live e VOD alla rete CDN o direttamente al cliente. È consigliabile usare una rete per la distribuzione di contenuti (CDN) con un'origine schermata per garantire che il traffico per il contenuto multimediale venga distribuito in modo efficiente.
È consigliabile usare la rete CDN di Azure fornita da Verizon (Standard o Premium). L'esperienza di integrazione è stata ottimizzata in modo che un cliente possa configurare questa rete CDN con un'unica selezione nel portale di Azure. Assicurarsi di attivare Origin Shield e le ottimizzazioni di streaming per l'endpoint della rete CDN ogni volta che si avvia l'endpoint di streaming.
I nostri clienti hanno anche buone esperienze per portare la propria rete CDN. Assicurarsi che vengano adottate misure sulla rete CDN per proteggere l'origine da un traffico eccessivo.
È anche possibile migliorare le prestazioni configurando le regole per il profilo della rete CDN. Vedere Come abilitare le ottimizzazioni della rete CDN.
Scalabilità degli endpoint di streaming
Nota
Un
Un di origine/endpoint di streaming Premium offre maggiore flessibilità e isolamento per consentire ai clienti di ridimensionare aggiungendo o rimuovendo unità di streaming dedicate. Un'unità di streaming è una risorsa di calcolo allocata a un endpoint di streaming. Ogni unità di streaming può trasmettere circa 200 Mbps di traffico.
Sebbene sia possibile trasmettere simultaneamente molti eventi live contemporaneamente usando lo stesso endpoint di streaming, le unità di streaming predefinite massime necessarie per un endpoint di streaming sono 10. È possibile aprire un ticket di supporto per richiedere più del valore predefinito 10.
Determinare le unità di streaming Premium necessarie
Esistono due passaggi per determinare il numero di endpoint di streaming e unità di streaming necessari:
Determinare il totale in uscita necessario.
Dividere il totale in uscita per 200, ovvero il numero massimo di Mbps che ogni unità di streaming può trasmettere.
Determinare il totale in uscita necessario
Determinare il totale in uscita necessario usando la formula seguente.
Totale uscita necessaria = larghezza di banda media x numero di visualizzatori simultanei x percentualegestiti dall'endpoint di streaming.
Esaminiamo a turno ognuno dei moltiplicatori:
Larghezza di banda media. Qual è la velocità media bitrate che si prevede di trasmettere? In altre parole, se vuoi avere più bitrate disponibili, qual è la media di tutte le velocità in bit che stai pianificando? È possibile stimare questa operazione usando uno dei metodi seguenti:
Per un evento live che include la codifica:
Se non si sa quale sarà la larghezza di banda media , è possibile usare le velocità in bit principali come stima. Il nostro velocità in bit superiore è di 5,5 Mbps per gli eventi live codificati da 1080p, quindi la velocità in bit media sarà da qualche parte intorno a 3,5 Mbps.
Esaminare il set di impostazioni di codifica usato per codificare l'evento live, ad esempio il set di impostazioni AdaptiveStreaming(H.264). Vedere questo esempio di output .
Per un evento live che usa semplicemente il pass-through e non la codifica:
- Controllare la scala a bitrate di codifica usata dal codificatore locale.
Numero di visualizzatori simultanei. Quanti visualizzatori simultanei sono previsti? Questa operazione potrebbe risultare difficile da stimare, ma eseguire le operazioni migliori in base ai dati dei clienti. Stai trasmettendo una conferenza a un pubblico globale? Stai pianificando lo streaming live per vendere un set di prodotti ai tuoi clienti?
Percentuale di trafficogestito dal'endpoint di streaming. Questo valore può essere espresso anche come "percentuale di traffico NON gestito dalla rete CDN", poiché questo è il numero effettivamente inserito nella formula. Quindi, tenendo presente che cos'è l'offload della rete CDN previsto? Se si prevede che la rete CDN gestisca 90% del traffico live, è previsto solo 10% del traffico nell'endpoint di streaming. Il numero usato nella formula è .10, ovvero la percentuale di traffico prevista nell'endpoint di streaming.
Determinare il numero di unità di streaming Premium necessarie
unità di streaming Premium necessarie = Larghezza di banda media x numero di visualizzatori x Percentuale di traffico non gestito dalla rete CDN/ 200 Mbps
Esempio
Di recente è stato rilasciato un nuovo prodotto e si vuole presentarlo ai clienti consolidati. Si vuole una bassa latenza perché non si vuole frustrare il pubblico già occupato, quindi si useranno endpoint di streaming Premium e una rete CDN.
Si hanno circa 100.000 clienti, ma probabilmente non tutti guarderanno l'evento live. Si suppongo che nel migliore dei casi, solo 1% di essi parteciperanno, che porta i tuoi spettatori simultanei previsti a 1.000.
Numero di utenti simultanei =1.000
Si è deciso di usare Servizi multimediali per codificare il flusso live e non verrà usato il pass-through. Non si sa quale sarà la larghezza di banda media, ma si sa che si otterrà in 1080p (
Larghezza di banda media =3,5
Poiché il pubblico è distribuito in tutto il mondo, si prevede che la rete CDN gestirà la maggior parte (90%) del traffico live. Pertanto, gli endpoint di streaming Premium gestiranno solo 10% del traffico.
Percentuale gestita dall'endpoint di streaming =10% = 0,1
Uso della formula fornita in precedenza:
totale in uscita necessario = larghezza di banda media x numero di visualizzatori simultanei x percentuale gestiti dall'endpoint di streaming.
totale in uscita necessario = 3,5 x 1.000 x 0,1
totale in uscita necessario = 350 Mbps
Dividendo il totale in uscita per 200 si determina che sono necessarie 1,75 unità di streaming Premium.
unità di streaming Premium necessarie = totale in uscita/200Mpbs
unità di streaming Premium necessarie = 1,75
Questo numero verrà arrotondato a 2, dandoci 2 unità necessarie.
Usare il portale per stimare le esigenze
Il portale di Azure consente di semplificare i calcoli. Nella pagina di streaming è possibile usare il calcolatore fornito per visualizzare la copertura stimata del pubblico quando si modifica la larghezza di banda media, il rapporto di riscontri della rete CDN e il numero di unità di streaming.
Nella pagina dell'account di Servizi multimediali selezionare endpoint di Steaming dal menu.
Aggiungere un nuovo endpoint di streaming selezionando Aggiungi endpoint di streaming.
Assegnare un nome all'endpoint di streaming.
Selezionare endpoint di streaming Premium per il tipo di endpoint di streaming.
Poiché si sta semplicemente ottenendo una stima a questo punto, non avviare l'endpoint di streaming dopo la creazione. Selezionare No.
Selezionare Verizon Standard o Premium Verizon per il piano tariffario della rete CDN. Il nome del profilo cambierà di conseguenza. Lasciare invariato il nome per questo esercizio.
Per il profilo della rete CDN selezionare Crea nuovo.
Selezionare Crea. Dopo aver distribuito l'endpoint, verrà visualizzata la schermata degli endpoint di streaming.
Selezionare l'endpoint di streaming appena creato. La schermata dell'endpoint di streaming verrà visualizzata con le stime di copertura del gruppo di destinatari.
L'impostazione predefinita per l'endpoint di streaming con 1 unità di streaming mostra che è stimato trasmettere a 571 visualizzatori simultanei a 3,5 Mbps usando 90% della rete CDN e 10% dell'endpoint di streaming.
Modificare la percentuale delle di origine in uscita di
da 90% dalla cache della rete CDN a 0%. Il calcolatore stima che sarà possibile trasmettere a 57 visualizzatori simultanei a 3,5 Mbps a 200 Mbps senza una rete CDN. Modificare ora l'origine in uscita di
su 90%. Modificare quindi le unità di streaming su 2. Il calcolatore stima che sarà possibile trasmettere a 1143 visualizzatori simultanei a 3,5 Mbps con 4000Mpbs con la rete CDN che gestisce 90% del traffico.
Selezionare Salva.
È possibile avviare l'endpoint di streaming e provare a inviarlo. Le metriche nella parte inferiore della schermata tengono traccia del traffico effettivo.
Calcolo del tempo
È possibile effettuare il provisioning delle unità di streaming 1 ora prima del picco di utilizzo previsto per garantire che le unità di streaming siano pronte.
Ottenere assistenza e supporto tecnico
È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti in uno dei metodi seguenti:
- Q & A
-
stack overflow. Contrassegna le domande con
azure-media-services
. - @MSFTAzureMedia o usare @AzureSupport per richiedere supporto.
- Aprire un ticket di supporto tramite il portale di Azure.