Configurazione dello streaming di Amazon IVS
Amazon Interactive Video Service (IVS) consente agli sviluppatori di distribuire facilmente video a bassa latenza agli spettatori di tutto il mondo. Con Amazon IVS, gli streamer devono gestire solo la produzione in streaming, per poi inviare il flusso ad Amazon IVS. Amazon IVS gestisce l'elaborazione video (acquisizione e transcodifica), la consegna e la riproduzione agli spettatori utilizzando il lettore Amazon IVS.
Esiste una vasta gamma di soluzioni per lo streaming live. Sia che si abbia uno studio dotato di più telecamere, switcher visivi, compositing grafico e una varietà di apparecchiature di missaggio audio o che si abbia intenzione di lanciare il proprio primo streaming da uno smartphone, sarà necessario affrontare alcuni degli stessi concetti e parametri di codifica.
In questo documento viene descritto come configurare i codificatori video per lo streaming su Amazon IVS. Il documento è diretto agli sviluppatori che desiderano creare funzionalità di streaming nelle proprie applicazioni.
L'input di solo audio non è supportato per lo streaming a bassa latenza IVS.
Prerequisiti
Seguire la procedura riportata in Guida introduttiva allo streaming a bassa latenza IVS per creare un canale e configurare lo streaming. In questo processo vengono assegnati un ARN (Amazon Resource Name) di canale e una chiave di flusso, insieme agli URL per l'inserimento e la riproduzione di uno stream. Sarà necessario puntare l'applicazione di streaming all'URL di acquisizione.
Prima di leggere questo documento, è bene avere familiarità con:
-
Nozioni di base su Amazon IVS: leggi Cos'è lo streaming a bassa latenza IVS e Guida introduttiva allo streaming a bassa latenza IVS
-
API Amazon IVS: consulta la Documentazione di riferimento delle API di streaming a bassa latenza IVS.
Riduzione della latenza
Lo streaming a bassa latenza di Amazon IVS è compatibile con la maggior parte delle applicazioni di streaming e richiede solo piccole modifiche alla configurazione dell'applicazione di streaming. Per ottenere la latenza più bassa possibile, è necessario utilizzare il lettore Amazon IVS; i lettori video HLS di terze parti non sono supportati. Consultare la documentazione dell'SDK del lettore Amazon IVS.
Per preparare l'applicazione di streaming per lo streaming a bassa latenza, completare la procedura riportata di seguito. Nota: non tutte queste opzioni sono disponibili su tutte le applicazioni di streaming.
-
Sul codificatore video, impostare
IDR/Keyframe
su un intervallo di 2 secondi (o 1 secondo, per una latenza end-to-end ancora più bassa).IDR/Keyframe
influenza direttamente la tempistica di avvio del flusso e la latenza degli eventi EventBridge correlati (Stream Start e Recording Start). SeIDR/Keyframe
è 2 secondi, la latenza di avvio del flusso sarà di circa 6-7 secondi. SeIDR/Keyframe
è 1 secondo, la latenza di avvio del flusso sarà di circa 3-4 secondi. Il video sarà disponibile per gli spettatori e la registrazione automatica su Amazon S3 solo dopo il periodo iniziale di latenza di avvio dello streaming.L'intervallo di fotogrammi chiave più breve di 1 secondo presenta alcuni compromessi QoS. Può causare lo streaming adattivo in bitrate (ABR) del lettore Amazon IVS per cambiare la risoluzione più spesso; la dimensione del segmento è più piccola, quindi il controllo ABR avviene più spesso. Il buffering può aumentare a causa di un aumento della risoluzione-commutazione e/o se la rete dello spettatore non riesce a scaricare i segmenti abbastanza velocemente. Valutare questi compromessi quando si decide se utilizzare un intervallo di fotogrammi chiave di 1 o 2 secondi.
Evita di impostare
IDR/Keyframe
su valori superiori a 5 secondi. Oltre ad aumentare la latenza di avvio dello streaming rispetto a quando si utilizzano 1 o 2 secondi, IVS non sarà in grado di garantire che ogni segmento generato per la riproduzione inizi con un IDR/fotogramma chiave. I segmenti che non iniziano con un IDR/fotogramma chiave possono causare errori di decodifica o distorsioni visive quando gli spettatori avviano la riproduzione o modificano il rendering. -
Se disponibile, impostare il codificatore sulla sintonizzazione a latenza zero all'interno di una configurazione x264.
-
Assicurarsi che la dimensione del buffer (VBV) non superi il bitrate medio (kilobit al secondo) del flusso.
Evitare servizi di streaming/inoltro di terze parti
Si consiglia vivamente di non utilizzare un servizio di terze parti per il restreaming o per inoltrare contenuti ad Amazon IVS. Ciò comporterà una latenza aggiuntiva. Per una bassa latenza, eseguire lo streaming direttamente su Amazon IVS.
Impostazioni codificatore
Importazione del flusso: codec e protocolli di importazione
Codec: Amazon IVS supporta H.264 per video e AAC (LC) per audio.
Protocolli di importazione: Amazon IVS supporta i protocolli di importazione sicura più comuni nel software e nell'hardware di streaming, ossia RTMPS (Real-Time Messaging Protocol su una connessione TLS/SSL), RTMP e SRT (Secure Reliable Transport). Lo streaming Amazon IVS tramite RTMPS richiede TLS versione 1.2 o versioni successive.
RTMPS/RTMP
Il codificatore video deve connettersi all'acquisizione di Amazon IVS tramite il protocollo RTMPS associato alla porta in uscita 443/TCP. Per garantire ciò, specificare un server di acquisizione IVS, che includa la porta nel percorso:
rtmps://<IVS-ingest-server>/<IVS-stream-key>
Per esempio:
rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/<IVS-stream-key>
È inoltre possibile configurare i canali IVS per consentire l'acquisizione non sicura di RTMP; tuttavia consigliamo di utilizzare RTMPS a meno che non si disponga di casi d'uso specifici e verificati che richiedono RTMP. Durante lo streaming RTMP, assicurati che il protocollo sia impostato su rtmp://
e rimuovi la porta :443
. Per esempio:
rtmp://a1b2c3d4e5f6.global-contribute.live-video.net/app/<IVS-stream-key>
SRT
Il codificatore video deve connettersi all'endpoint di importazione utilizzando il protocollo SRT sulla porta 9000. Per garantire ciò, specifica un endpoint di importazione che includa la porta e la passphrase nel percorso:
srt://<ingest-endpoint>:<port>?streamid=<stream-key>&passphrase=<passphrase>
Utilizza la passphrase solo se l'importazione non sicura non è abilitata per il canale.
Per esempio:
srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
Per ottimizzare le prestazioni dei flussi SRT, consulta questo blog di Haivision: How to Configure SRT Settings on Your Video Encoder for Optimal Performance
Risoluzione/bitrate/FPS
La risoluzione dello streaming determina in gran parte il bitrate e la frequenza dei fotogrammi (fotogrammi al secondo o FPS). Utilizzare le seguenti linee guida; queste sono le nostre raccomandazioni. Tenere presente che le risoluzioni mostrate di seguito sono orientamento orizzontale (orizzontale x verticale), quindi è necessario invertirle per l'orientamento verticale.
Qualità accettabile (SD) 480p (852x480) | Buona qualità (HD) 720p (1280x720) | Alta qualità (Full HD) 1080p (1920x1080) | |
---|---|---|---|
Bitrate | Fino a 1500 Kbps | Fino a 4500 Kbps | Fino a 8500 Kbps |
FPS | 30 | 30 o 60 | 30 o 60 |
Intervallo fotogrammi | 2 secondi | 2 secondi | 2 secondi |
Bitrate, FPS e risoluzione sono correlati. I valori ottimali dipendono dalle circostanze e possono essere complicati da determinare. Il nostro consiglio è iniziare con i valori riportati sopra e provare fino a ottenere i valori che meglio si adattano alle proprie necessità. L'obiettivo è il movimento chiaro e regolare dei componenti video durante lo streaming e una buona risoluzione all'interno della larghezza di banda disponibile. L'aumento della frequenza di fotogrammi e/o della risoluzione aumenta la qualità video complessiva, ma questa è necessariamente limitata dalla larghezza di banda.
Amazon IVS supporta una frequenza di fotogrammi fino a 60 FPS (incluse le frequenze standard PAL 25 e 50 europee). Più alto è il framerate, migliore è la qualità, purché vi sia un'adeguata larghezza di banda in bitrate. A seconda dell'applicazione, un framerate basso può comunque andare bene; ad esempio, per una telecamera di sicurezza.
Tipi di canale
Il tipo di canale determina la risoluzione consentita e il bitrate. Se superi la risoluzione o il bitrate consentito, il flusso probabilmente si disconnetterà immediatamente.
Esistono quattro tipi di canali: STANDARD
, ADVANCED_SD
, ADVANCED_HD
e BASIC
. Quando si crea un canale, il tipo predefinito è STANDARD
.
Esistono due tipi di elaborazione video, transcodifica e transmuxing. Ciò è determinato dal tipo di canale, dal fatto che il canale sia configurato per l'input video multitraccia e che l'emittente utilizzi un client abilitato per il multitraccia. Il video multitraccia è configurato con la proprietà API multitrackInputConfiguration
del tipo di dati Channel.
-
Il video sui canali
STANDARD
(senza input multitraccia) eADVANCED
è transcodificato, ossia dall'input originale vengono generate diverse qualità per offrire automaticamente agli spettatori l'esperienza migliore in base ai loro dispositivi e alle condizioni di rete. La transcodifica consente una maggiore qualità di riproduzione per una vasta gamma di velocità di download. La transcodifica è l'opzione migliore per le emittenti con una connettività Internet di primo miglio limitata e/o funzionalità limitate dei dispositivi (ad esempio, telefoni cellulari anziché PC desktop). -
Il video sui canali
STANDARD
(con l'input multitraccia abilitato e l'utilizzo di un client abilitato al multitraccia da parte dell'emittente) eBASIC
sono transmixati, ossia Amazon IVS fornisce agli spettatori l'input originale. Analogamente alla transcodifica, l'input multitraccia transmixato offre agli spettatori l'esperienza migliore in base ai loro dispositivi e alle condizioni di rete.
Tutti i canali transcodificati hanno preimpostazioni transcodificate che determinano quali rappresentazioni vengono prodotte. Pensa a queste come scale ABR. Consentono di bilanciare la larghezza di banda disponibile per il download e la qualità video per ottimizzare l'esperienza di visualizzazione.
-
I canali
STANDARD
hanno una preimpostazione di transcodifica predefinita. -
I canali
ADVANCED
hanno due preimpostazioni di transcodifica selezionabili:-
La distribuzione con larghezza di banda limitata utilizza un bitrate inferiore a
STANDARD
per ogni livello di qualità. Puoi utilizzarla se hai una larghezza di banda di download ridotta e/o di contenuti video semplici (ad esempio, mezzibusti dei partecipanti). -
La distribuzione con larghezza di banda più elevata utilizza un bitrate più elevato per ogni livello di qualità. Puoi utilizzarla se disponi di un'elevata larghezza di banda per il download e/o di contenuti video complessi (ad esempio, flash e rapidi cambi di scena). Questa è l'impostazione predefinita.
-
Canali STANDARD
Input video a traccia singola
I canali STANDARD
sono transcodificati. La risoluzione video più alta prodotta è Full HD, 1080p. Questo è il tipo di canale predefinito.
Preimpostazioni di transcodifica: esiste una scala predefinita di transcodifica preimpostata.
Audio: per le rappresentazioni a 360p e inferiori, l'audio viene transcodificato. Per altre rappresentazioni: viene trasmesso l'audio originale.
Risoluzione di ingresso e bitrate massimo | Dettagli della scala |
---|---|
1080p60 a 8,5 Mbps |
|
1080p30 a 8,5 Mbps |
|
Meno di 1080p60 e superiore a 720p60, a 8,5 Mbps |
|
Meno di 1080p30 e superiore a 720p30, a 8,5 Mbps |
|
720p60 a 8,5 Mbps |
|
720p30 a 8,5 Mbps |
|
Meno di 720p30/60 e maggiore o uguale a 480p30/60, a 8,5 Mbps |
|
Input video multitraccia
I canali STANDARD
sono transmixati quando l'input è un video multitraccia. La risoluzione video più alta prodotta è limitata dalla proprietà multitrackInputConfiguration.maximumResolution
. I rendering specifici variano a seconda del sistema e dei requisiti ambientali dell'emittente.
Per tutti i rendering video, l'audio è il passthrough sorgente.
Canali ADVANCED-HD
I canali ADVANCED-HD
sono transcodificati. La risoluzione video più alta prodotta è HD, 720p.
Preimpostazioni di transcodifica: sono disponibili due scale preimpostate di transcodifica selezionabili.
Audio: l'audio viene transcodificato.
Risoluzione di ingresso e bitrate massimo | Dettagli della scala |
---|---|
Da 720p60 a 1080p60, a 8,5 Mbps |
Preimpostazione di transcodifica: distribuzione di una maggiore larghezza di banda (impostazione predefinita):
Preimpostazione di transcodifica: distribuzione di larghezza di banda limitata:
|
Da 720p30 a 1080p30, a 8,5 Mbps |
Preimpostazione di transcodifica: distribuzione di una maggiore larghezza di banda (impostazione predefinita):
Preimpostazione di transcodifica: distribuzione di larghezza di banda limitata:
|
Meno di 720p30/60 e superiore a 480p30/60, a 8,5 Mbps |
Preimpostazione di transcodifica: distribuzione di una maggiore larghezza di banda (impostazione predefinita):
Preimpostazione di transcodifica: distribuzione di larghezza di banda limitata:
|
480p30/60 a 8,5 Mbps |
Preimpostazione di transcodifica: distribuzione di una maggiore larghezza di banda (impostazione predefinita):
Preimpostazione di transcodifica: distribuzione di larghezza di banda limitata:
|
Canali ADVANCED-SD
I canali ADVANCED-SD
sono transcodificati. Le rappresentazioni disponibili sono limitate alla qualità di input, senza alcuna conversione verso l'alto.
Preimpostazioni di transcodifica: sono disponibili due scale preimpostate di transcodifica selezionabili.
Audio: l'audio viene transcodificato.
Risoluzione di ingresso e bitrate massimo | Dettagli della scala |
---|---|
Da 480p30/60 a 1080p30/60, a 8,5 Mbps |
Preimpostazione di transcodifica: distribuzione di una maggiore larghezza di banda (impostazione predefinita):
Preimpostazione di transcodifica: distribuzione di larghezza di banda limitata:
|
Canali BASIC
I canali BASIC
sono transmixati. Viene prodotta un'unica rappresentazione.
Preimpostazioni di transcodifica: N/D
Audio: l'audio sorgente viene trasmesso in passthrough.
Risoluzione di ingresso e bitrate massimo | Dettagli della scala |
---|---|
Maggiore di 480p30/60 e minore o uguale a 1080p30/60, a 3,5 Mbps |
Parametri di codifica della sorgente (senza scala) |
480p30/60 a 1,5 Mbps |
Parametri di codifica della sorgente (senza scala) |
Impostazioni video
Consigliamo di utilizzare la seguente impostazione: Sono disponibili per la maggior parte delle API hardware o software di codifica video H.264.
-
Sul codificatore video, imposta
IDR/Keyframe
su un intervallo di 2 secondi (o 1 secondo, per una latenza end-to-end ancora più bassa). -
Livello H.264: principale
-
Modifica della scena: off (preferito)
-
Sottocampione di crominanza: YUV420P
-
CABAC: preferito
-
ColorSpace: BT.709 (consigliato per la massima compatibilità tra televisori ad alta definizione e display per computer). La transcodifica video di Amazon IVS supporta il pass-through ColorSpace; gli utenti esperti possono utilizzare altri video ColorSpace e video full-range.
Impostazioni audio
Supportiamo le seguenti impostazioni:
-
Codec: AAC (LC)
-
Bitrate: da 96 Kbps a 320 Kbps
-
Frequenza di campionamento: 44,1 Khz o 48 Khz (è meglio associare il flusso audio di produzione)
-
Canali: massimo 2 - Stereo (supporto canali audio 1: mono o 2: stereo)
Uso di CBR, non VBR
Utilizzare sempre CBR (Constant Bitrate), non VBR (Variable Bitrate), come metodo di controllo della velocità per i codificatori. CBR è più adatto per la natura a larghezza di banda fissa delle reti e produce una riproduzione video più prevedibile e stabile per i dispositivi client. Con un bitrate costante, è facile per gli spettatori selezionare un livello di qualità che la loro connessione può gestire nel tempo.
A seconda della complessità della scena, VBR può causare picchi di bitrate, che possono causare cadute di fotogrammi prima che il video raggiunga Amazon IVS e/o buffering nei lettori client.
Consigliamo vivamente di utilizzare solo CBR. Se si utilizza VBR, i flussi saranno maggiormente soggetti a buffering e a riproduzione non fluida.
Uso di segnali progressivi
Utilizzare flussi di segnale progressivi; evitare qualsiasi video interlacciato nel flusso di produzione e/o codifica. I segnali di flusso progressivo forniscono una qualità di riproduzione molto migliore grazie alla visualizzazione di un intero fotogramma alla volta, evitando qualsiasi artefatto di movimento che viene prodotto quando si visualizza un segnale interlacciato.
Requisiti di rete
È necessario disporre di una connessione Internet stabile in grado di mantenere un flusso di caricamento adeguato e costante. Una connessione Internet instabile potrebbe causare fluttuazioni e ritardo del flusso per gli spettatori.
Utilizzare connessioni cablate. Le connessioni Wi-Fi e LTE possono essere instabili o soffrire di interferenze o latenza a causa di QOS o priorità errata della coda dei pacchetti. Laddove possibile, per lo streaming utilizzare sempre una connessione cablata.
Pianificare sempre l'assegnazione del 50% in più di larghezza di banda rispetto al minimo richiesto. Il sovraccarico viene aggiunto per compensare le fluttuazioni di bitrate nella codifica di un flusso di bit video.
Utilizzare una VLAN Internet dedicata per codificare le macchine. Il posizionamento del codificatore su una rete separata previene effetti potenzialmente dannosi, tra cui: inquinamento causato dal traffico, colli di bottiglia della larghezza di banda e fattori di sicurezza avversi.
Sottotitoli
IVS supporta i sottotitoli. In qualità di streamer, se si vuole offrire sottotitoli al proprio pubblico, è necessario trasmettere i dati dei sottotitoli in un formato accettato, sia incorporati nello stream che insieme allo stream tramite il codificatore video.
Amazon IVS accetta sottotitoli in formato linea 21 CEA-708/EIA-608 (indicato anche come 608 su 708). È possibile trasmettere i sottotitoli utilizzando uno dei seguenti metodi:
-
CEA-708/EIA-608 incorporato nel flusso video elementare, come descritto in ATSC A/72 (SEI user_data). Questo formato è comune tra i codificatori di trasmissione televisiva.
-
CEA-708/EIA-608 trasmesso tramite RTMPS onCaptionInfo script/tag AMF0. Questo formato è comune tra codificatori di trasmissione Internet e media server come Elemental Technologies e Wowza. Gli SDK del lettore Amazon IVS supportano una lingua; non supportano la riproduzione di sottotitoli multi-traccia.
Nota: gli SDK del lettore Amazon IVS supportano i dati dei sottotitoli solo nel campo CC1 NTSC 1. Non supportano la riproduzione di sottotitoli multi-traccia.
Durante la trasmissione tramite RTMPS, il payload deve contenere un array ECMA con due coppie di elementi:
-
Una stringa denominata
type
che contiene i caratteri708
. -
Una stringa denominata
data
che contiene un payload CEA-708/EIA-608 codificato in base64.
Ad esempio:
00000000 12 00 00 69 00 00 00 00 00 00 00 02 00 0d 6f 6e |...i..........on| 00000010 43 61 70 74 69 6f 6e 49 6e 66 6f 08 00 00 00 02 |CaptionInfo.....| 00000020 00 04 74 79 70 65 02 00 03 37 30 38 00 04 64 61 |..type...708..da| 00000030 74 61 02 00 3c 74 51 41 78 52 30 45 35 4e 41 4e |ta..<tQAxR0E5NAN| 00000040 4c 41 50 79 55 72 76 79 55 49 50 79 52 51 50 7a |LAPyUrvyUIPyRQPz| 00000050 49 35 66 7a 73 37 50 7a 76 4c 50 77 67 56 50 7a |I5fzs7PzvLPwgVPz| 00000060 33 36 66 7a 30 34 2f 78 6f 67 50 79 55 4c 2f 38 |36fz04/xogPyUL/8| 00000070 3d 00 00 09 00 00 00 74 |=......t|
Se si utilizza il codificatore video Elemental, configuralo come segue:
-
Impostare l'incorporamento dei sottotitoli su "capture 608 Campo 1".
-
Incorporare i sottotitoli con onCaptionInfo come tag RTMPS nel gruppo di output.
Per ulteriori informazioni, consulta il post del blog Adding Closed Captions to an Amazon IVS Live Stream
Streaming con FFmpeg
FFmpeg è un progetto open source gratuito che comprende una vasta suite di librerie software per la gestione di video, audio e altri file multimediali e streaming. Può essere utilizzato con molti sistemi operativi e dispositivi.
Consultare il sito Web di FFmpeg
Dopo l'installazione, scegliere una sorgente di ingresso audio/video per FFmpeg. Si può cercare ciò che è disponibile, come segue:
ffmpeg -list_devices true -f dshow -i dummy
.
Per ulteriori informazioni, fare clic qui
-
Webcam: per acquisire l'output dalla webcam Logitech C920:
ffmpeg -f dshow -video_size 1920x1080 -framerate 30 -i video="HD Pro Webcam C920":audio="Microphone (HD Pro Webcam C920)" -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -r 30 -s 1920x1080 -profile:v main -preset veryfast -g 120 -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/<IVS-stream-key>
-
File video: FFmpeg funziona con numerosi formati di file video e schede di acquisizione. Di seguito viene riportato un esempio di streaming basato su un input MP4:
ffmpeg -re -i input.mp4 -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -s 1920x1080 -profile:v main -preset veryfast -force_key_frames expr:gte(t,n_forced*2) -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/app/<IVS-stream-key>
Per ulteriori informazioni su cosa immettere per <IVS-ingest-server>
e <IVS-stream-key>
, consultare le informazioni sulla configurazione del software di live streaming in Guida introduttiva allo streaming a bassa latenza IVS. Ad esempio:
-
Server di acquisizione:
rtmps://jds34ksdg3las.global-contribute.live-video.net/app/
-
Chiave di streaming:
sk_us-west-2_abcd1234efgh5678ijkl
Acquisizione del flusso
L'acquisizione del flusso consente a un utente di sostituire un flusso in corso su un canale di sua proprietà con un altro flusso. Durante questo processo, il flusso precedente non si disconnette mai, ma viene semplicemente sostituito dal nuovo flusso. Ciò consente agli utenti di connettersi senza problemi a un nuovo flusso senza dover attendere che il flusso in corso si disconnetta completamente.
Il processo di acquisizione del flusso estende una sessione di streaming in corso ma non ne avvia una nuova. Ciò mantiene la continuità dello streaming senza richiedere agli spettatori di aggiornare il lettore, anche se potrebbe verificarsi un breve stato di buffering. Le registrazioni delle sessioni di streaming durante le quali si verifica un'acquisizione del flusso non presentano interruzioni.
Per avviare l'acquisizione di un flusso, aggiungi il parametro URL priority
alla chiave di flusso dell'utente. La chiave di flusso diventa <IVS-stream-key>?priority=<priority>
, dove <priority>
è un numero intero positivo compreso tra 1 e 2.147.483.647.
La sintassi URI per utilizzare l'acquisizione del flusso con il protocollo RTMPS è:
rtmps://<uri>/<streamkey>?priority=N
Per l'importazione SRT, la sintassi URI per l'acquisizione del flusso è:
srt://<uri>?streamid=#!::u=<streamkey>,priority=N&passphrase=foobar
Un'acquisizione ha esito positivo se il numero intero di priorità assegnato al nuovo flusso è maggiore del numero intero di priorità del flusso in corso o se in precedenza non è stato impostato alcun numero intero di priorità. Inoltre, il vecchio e il nuovo flusso devono condividere la stessa risoluzione, lo stesso codec video, lo stesso codec audio e lo stesso numero di tracce.
Per impostazione predefinita, è possibile eseguire fino a 100 acquisizioni in un singolo flusso, purché venga utilizzato un numero intero con priorità maggiore per ogni acquisizione successiva. Il numero massimo di acquisizioni del flusso può essere configurato per ciascun account AWS (vedi Service Quotas). Una volta terminato lo streaming, il canale non conserva alcuna memoria dei numeri interi di priorità precedenti o del numero di acquisizioni effettuate, quindi qualsiasi numero intero di priorità può essere riutilizzato nei flussi futuri. Inoltre, se le impostazioni del codificatore sono state modificate per l'acquisizione del flusso, la sessione di streaming non conserva alcuna memoria delle precedenti impostazioni del codificatore e visualizza solo quelle più recenti.
Se la funzione di riconnessione automatica è abilitata, gli SDK di trasmissione IVS per dispositivi mobili utilizzano l'acquisizione del flusso per riconnettersi automaticamente quando un emittente cambia rete (ad esempio da WiFi a cellulare). Per abilitare la riconnessione automatica:
-
Su iOS, imposta
config.autoReconnect.enabled = true
sul tuo oggettoIVSBroadcastConfiguration
. -
Su Android, imposta
config.autoReconnect.setEnabled(true)
sul tuo oggettoBroadcastConfiguration
.
Considerazioni sull'utilizzo congiunto di riconnessione automatica e acquisizione del flusso
Quando i clienti dell'SDK di trasmissione per dispositivi mobili abilitano la riconnessione automatica come descritto sopra, lo streamer in corso (emittente A) proverà a riconnettersi fino a 5 volte in seguito a un'interruzione della rete, iniziando con priority=1
e incrementando la priorità a ogni tentativo di riconnessione. Questo processo consente il ripristino automatico della trasmissione su reti instabili, aumentando gradualmente la priorità a ogni riconnessione riuscita.
Tuttavia, a causa della natura incrementale del comportamento di riconnessione automatica, diventa difficile per un altro emittente (emittente B) utilizzare con esito positivo l'acquisizione del flusso quando l'emittente originale utilizza la riconnessione automatica. Il valore di priorità richiesto per garantire il successo dell'acquisizione sarà imprevedibile, in quanto i tentativi di riconnessione da parte dell'emittente A incrementano il valore di priorità a ogni nuovo tentativo nell'arco della durata del flusso.
Nota: quando la riconnessione automatica è abilitata, non consigliamo di utilizzare l'acquisizione del flusso per sostituire un flusso dall'SDK di trasmissione per dispositivi mobili perché occorrerà gestire o tenere traccia della priorità richiesta per l'acquisizione. Sebbene l'impostazione di un valore di priorità elevato possa funzionare nelle fasi iniziali, potrebbe creare problemi se fosse necessaria un'altra acquisizione in un secondo momento. Consigliamo di mantenere la riconnessione automatica per l'emittente A durante l'instabilità della rete e l'acquisizione del flusso da parte dell'emittente B come casi d'uso distinti.
Effettuare lo streaming con l'SDK di trasmissione Amazon IVS
L'SDK di trasmissione Amazon IVS è rivolto agli sviluppatori che creano applicazioni Android, iOS o Web con Amazon IVS. Consultare la documentazione dell'SDK di trasmissione nell'Amazon IVS User Guide (Guida per l'utente di Amazon IVS), iniziandoqui. Esistono sottopagine con guide per lo streaming su Android, iOS e Web. Gli SDK di trasmissione consentono di personalizzare il bitrate, la frequenza dei fotogrammi e la risoluzione.
Verifica dello streaming
Verificare sempre che lo streaming funzioni.
Passare al flusso video nella finestra di dialogo Console Amazon IVS