View a markdown version of this page

Pubblicazione in formato RTMP in IVS | Streaming in tempo reale - Amazon IVS

Pubblicazione in formato RTMP in IVS | Streaming in tempo reale

Questo documento descrive il processo di pubblicazione in una fase IVS utilizzando RTMP. Per ulteriori dettagli sulle varie opzioni di acquisizione, consulta la documentazione relativa all'Acquisizione dei flussi

Prerequisiti

Creazione di uno stage

Utilizza il seguente comando per creare una fase:

aws ivs-realtime create-stage --name "test-stage"

Vedi CreateStage per i dettagli, inclusa la risposta.

Importante: nella risposta, annota il campo endpoints, che elenca gli endpoint RTMP e RTMPS. Questi sono necessari per configurare il codificatore RTMP.

Creazione di una configurazione di acquisizione

Per pubblicare su una fase utilizzando RTMPS, occorre prima creare una configurazione di importazione e associarla alla fase. Quando si pubblica sulla fase (utilizzando la chiave del flusso dalla configurazione di acquisizione l'endpoint RTMP dalla fase), i file multimediali verranno pubblicati sulla fase come partecipante. È possibile specificare un userId e valori attributes personalizzati, che verranno associati al partecipante che si connette alla fase.

aws ivs-realtime create-ingest-configuration \ --name 'test' \ --stage-arn arn:aws:ivs:us-east-1:123456789012:stage/8faHz1SQp0ik \ --user-id '123' \ --ingest-protocol 'RTMPS'

Vedi CreateIngestConfiguration per i dettagli, inclusa la risposta.

Quando si crea una configurazione di acquisizione, è possibile associarla in anticipo all'ARN di una fase specifica. Senza questa associazione, la chiave del flusso è inutilizzabile. Inoltre, le configurazioni di inserimento (incluso il campo stageArn) possono essere aggiornate tramite l'operazione UpdateIngestConfiguration, che consente di riutilizzare la stessa configurazione per fasi diverse.

Nota: per impostazione predefinita, il campo insecureIngest di configurazione dell'acquisizione è impostato su false e richiede l'uso di RTMPS. Le connessioni RTMP verranno rifiutate. Se è necessario utilizzare RTMP, imposta insecureIngest su true. Consigliamo di utilizzare RTMPS a meno che non si disponga di casi d'uso specifici e verificati che richiedono RTMP.

Video a traccia singola RTMP

Di seguito è descritto come utilizzare OBS Studio; tuttavia, è possibile utilizzare qualsiasi codificatore RTMP che soddisfi le specifiche multimediali di IVS.

Guida per OBS

  1. Scaricare e installare il software: https://obsproject.com/download.

  2. Fare clic su Settings (Impostazioni). Nella sezione Flusso del pannello Impostazioni, seleziona Personalizzato dal menu a discesa Servizio.

  3. Per Server, inserisci l'endpoint RTMP o RTMPS dalla fase.

  4. Per Chiave del flusso, inserisci il valore streamKey dalla configurazione di acquisizione.

  5. Configura le impostazioni video come faresti normalmente, rispettando alcune restrizioni:

    1. Lo streaming in tempo reale IVS supporta input fino a 720p a 8,5 Mb/s. Se si supera uno di questi limiti, il flusso verrà interrotto.

    2. Consigliamo di impostare l'Intervallo dei fotogrammi chiave nel pannello Output su 1 o 2 secondi. Un intervallo di fotogrammi chiave basso consente agli spettatori di iniziare a riprodurre il video più rapidamente. Consigliamo inoltre di impostare Preimpostazioni di utilizzo della CPU su veryfast e Regolazione su zerolatency, per abilitare la latenza più bassa.

    3. Poiché OBS non supporta Simulcast, consigliamo di mantenere il bitrate al di sotto di 2,5 Mb/s. Ciò consente la visualizzazione agli spettatori con connessioni a larghezza di banda inferiore.

    4. Disattiva i B-frame, poiché i flussi con B-frame verranno automaticamente disconnessi. Esegui una delle seguenti operazioni:

      • Nelle opzioni x264, inserisci bframes=0 sliced-threads=0.

      • Imposta i B-frame su 0 se è disponibile l'opzione (ad esempio, per NVENC).

    Nota: i flussi RTMP devono includere tracce audio e video, altrimenti verranno disconnessi.

  6. Seleziona Avvia streaming.

Importante: se il bitrate massimo del codificatore è impostato su 8,5 Mb/s, occasionalmente il publisher scompare dalla sessione. Questo perché l'impostazione del bitrate massimo è solo un obiettivo e i codificatori a volte superano tale valore. Per evitare che ciò accada, imposta il bitrate massimo del codificatore a un valore inferiore, ad esempio a 6 Mb/s.

Video multitraccia E-RTMP

IVS supporta la funzionalità video multitraccia di E-RTMP (Enhanced Real-Time Messaging Protocol), che consente di pubblicare più qualità video in un unico flusso RTMP sullo stage IVS. Ciò consente lo streaming adattivo con bitrate, in modo che gli abbonati possano guardare automaticamente con la migliore qualità possibile per la loro connessione di rete.

Una volta inserite, le diverse qualità video vengono fornite agli abbonati come livelli di simulcast. Per configurare i livelli ricevuti dagli abbonati, consulta le sezioni “Codifica a livelli con Simulcast” nelle guide SDK per la trasmissione streaming in tempo reale: Android, iOS e Web.

Per il codice di esempio, consulta aws-samples/sample-amazon-ivs-multitrack-video su GitHub.

Questo diagramma illustra come funziona la pubblicazione con lavori di video multitraccia:

Pubblicazione di video multitraccia in uno stage.”

Guida per OBS

  1. Scarica e installa OBS Studio:

    1. Windows: i video multitraccia sono supportati a partire da OBS Studio 30.2.

    2. macOS: i video multitraccia sono supportati a partire da OBS Studio 31.1 Beta (solo Apple Silicon).

    3. Scaricalo all'indirizzo: https://obsproject.com/download.

  2. Fare clic su Settings (Impostazioni). Nella sezione Flusso del pannello Impostazioni, seleziona Amazon IVS dal menu a discesa Servizio.

  3. Per il Server, lascia l'impostazione su Auto.

  4. Per Chiave del flusso, inserisci il valore streamKey dalla configurazione di acquisizione.

  5. Nella sezione Video multitraccia, seleziona Abilita video multitraccia.

  6. Nel pannello Video, imposta la risoluzione di Base (risoluzione tela) e la Risoluzione di uscita (scalata) desiderate. Lo streaming in tempo reale IVS supporta input fino a 720p. Se si superano questi limiti, il flusso verrà interrotto.

    Quando il video multitraccia è abilitato, impostazioni come il numero di tracce video, i relativi bitrate e l'intervallo dei fotogrammi chiave vengono configurate automaticamente in base alle funzionalità del dispositivo.

  7. Seleziona Avvia streaming.

Pubblicazione con FFmpeg

Puoi usare FFmpeg per pubblicare video e audio in diretta su IVS in streaming in tempo reale tramite RTMP. FFmpeg è un progetto open source gratuito che comprende una vasta suite di librerie e strumenti software per la gestione di video, audio e altri contenuti multimediali.

Il comando di esempio seguente pubblica un flusso che include un motivo di colore e un tono:

ffmpeg \ -re \ -f lavfi -i testsrc=d=300:s=1280x720:r=60,format=yuv420p \ -f lavfi -i sine=f=440:b=4:d=300 \ -c:v libx264 \ -b:v 2500k \ -g 60 -bf 0 \ -profile:v baseline \ -preset veryfast \ -tune zerolatency \ -x264opts sliced-threads=0 \ -c:a aac \ -ac 2 \ -b:a 160k \ -ar 48000 \ -f flv \ rtmps://$INGEST_ENDPOINT/app/$STREAM_KEY

Nell'esempio, sostituisci $INGEST_ENDPOINT e $STREAM_KEY con i tuoi valori dalla console IVS o dall'API.

Questa configurazione soddisfa le specifiche multimediali supportate per lo streaming in tempo reale IVS, tra cui video H.264 (profilo di base, senza frame B, senza thread suddivisi) e audio AAC.

Importazione privata in fasi

Puoi pubblicare flussi RTMP(S) ed E-RTMP(S) su una fase da risorse all'interno di Amazon VPC o da Direct Connect utilizzando un endpoint VPC di interfaccia. Ciò consente di creare una connessione privata tra il VPC e IVS, mantenendo il traffico dell'importazione all'interno della rete AWS. Per impostare e configurare un endpoint VPC di interfaccia per IVS, consulta Importazione privata nella Guida per l'utente dello streaming a bassa latenza IVS.

Acquisizione ridondante

L'acquisizione ridondante consente lo streaming da due codificatori separati contemporaneamente a un singolo stadio, con failover automatico per lo stesso file multimediale di origine. Questo aiuta a proteggere dai guasti del codificatore sorgente e dai problemi di rete di primo livello. L'acquisizione ridondante è supportata per i flussi RTMP(S) ed E-RTMP(S).

Per abilitare l'acquisizione ridondante, imposta redundantIngest su true quando crei la configurazione di acquisizione tramite CreateIngestConfiguration. IVS fornisce due chiavi di stream RTMP. Configura due codificatori separati utilizzando lo stesso endpoint di acquisizione con le rispettive chiavi di streaming.

Ogni flusso fisico appare come partecipante separato nelle API dei partecipanti (ad esempio, ListParticipants). Tuttavia, gli abbonati possono abbonarsi a un solo partecipante virtuale, identificato dal livello superiore participantId nella configurazione di acquisizione. IVS controlla automaticamente quale flusso fisico viene utilizzato per il partecipante virtuale. Se abiliti la registrazione dei singoli partecipanti, ogni partecipante fisico viene registrato separatamente. Se abiliti la composizione lato server, nella composizione appare solo il partecipante virtuale.

L'acquisizione ridondante consente inoltre lo streaming continuo 24 ore su 24, 7 giorni su 7. IVS limita i singoli publisher a 24 ore, ma grazie all'acquisizione ridondante, IVS scagliona i timeout di connessione tra i due stream fisici e cambia automaticamente lo streaming utilizzato per il partecipante virtuale, permettendo agli abbonati di usufruire di uno streaming ininterrotto 24 ore su 24, 7 giorni su 7.

Requisiti

  • Gli stream devono essere genlock e devono mantenere i parametri di codifica corrispondenti (inclusi risoluzione e frequenza di rate) per garantire uno switchover senza interruzioni.

Raccomandazioni

  • Utilizza connessioni di rete indipendenti con percorsi di rete diversi (ad esempio, ISP diversi) per ogni codificatore, per massimizzare la protezione dai problemi di rete iniziali ed evitare singoli punti di errore.

  • Mantieni i flussi attivi da entrambi i codificatori.

  • Testa gli scenari di failover prima dell'uso in produzione.