

# Acquisizione dei flussi in IVS \$1 Streaming in tempo reale
<a name="rt-stream-ingest"></a>

In alternativa all'utilizzo dell'SDK di trasmissione IVS, è possibile pubblicare video su una fase IVS da un'origine WHIP o RTMP. Questo approccio offre flessibilità per i flussi di lavoro in cui l'utilizzo dell'SDK non è fattibile o preferibile, ad esempio quando si pubblicano video da OBS Studio o da un codificatore hardware. Quando possibile, consigliamo di utilizzare l'SDK di trasmissione IVS, poiché non possiamo garantire le prestazioni o la compatibilità delle soluzioni di terze parti con IVS.

Questo diagramma illustra come funziona la pubblicazione con WHIP e RTMP:

![\[Pubblicazione con WHIP e RTMP.\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/Stream_Ingest.png)


## Protocolli supportati
<a name="supported-protocols"></a>

Lo streaming in tempo reale IVS supporta diversi protocolli di acquisizione:
+ RTMP e RTMPS - RTMP (Real-Time Messaging Protocol): uno standard di settore per la trasmissione di video su una rete. RTMPS è la versione sicura di RTMP che funziona su TLS.

  IVS supporta la funzionalità video multitraccia di E-RTMP (Enhanced RTMP). Vedi il [video multitraccia E-RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html#rtmp-multitrack) nella documentazione sulla pubblicazione di RTMP IVS.
+ WHIP (WebRTC-HTTP Ingestion Protocol): una bozza IETF sviluppata per standardizzare l'acquisizione di WebRTC.

 Per una guida dettagliata sull'uso di questi protocolli, consulta la nostra documentazione su [RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html) e [WHIP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/obs-whip-support.html).

## Specifiche multimediali supportate
<a name="supported-media-specifications"></a>
+ Formato di input audio
  + Codec: AAC-LC per RTMP e Opus per WHIP
  + Canali: 2 (stereo) o 1 (mono)
  + Frequenza di campionamento: 44,1 kHz o 48 kHz
  + Bitrate massimo: 160 Kb/s
+ Formato di input audio
  + Codec: H.264
  + Profilo H.264: linea di base
  + Intervallo IDR: 1 o 2 secondi
  + Frequenza fotogrammi: da 10 a 60 FPS
  + B-frame: 0

    Nota: l'SDK di trasmissione IVS ha i frame B abilitati per impostazione predefinita, ma a partire dalla versione 1.25.0, disabilita automaticamente i frame B durante la trasmissione su una fase IVS. Per lo streaming in tempo reale con altri codificatori RTMP, gli sviluppatori devono disabilitare i frame B. *Se gli sviluppatori utilizzando altri codificatori RTMP non disabilitano i frame B, i loro flussi verranno disconnessi*.
  + Risoluzione: massima: 720p. Minima: 160p
  + Bitrate massimo: 8,5 Mb/s

    Nota: per i flussi RTMP a traccia singola, questo limite si applica a quella traccia. Per i video multitraccia pubblicati utilizzando Enhanced RTMP, il limite si applica al bitrate combinato di tutte le tracce video.
  + Configurazione del codificatore: consigliamo l'uso delle impostazioni `veryfast` e `zerolatency` per un codificatore H.264. Inoltre: l'opzione `sliced_threads` x264 è inclusa nelle impostazioni predefinite di `zerolatency` e si consiglia di disabilitarla. Ad esempio, quando si utilizza FFmpeg, il comando dovrebbe includere: `-preset:v veryfast -tune zerolatency -x264-params sliced-threads=0`

# Pubblicazione in formato RTMP in IVS \$1 Streaming in tempo reale
<a name="rt-rtmp-publishing"></a>

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](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html)

## Prerequisiti
<a name="rtmp-prerequisites"></a>

### Creazione di uno stage
<a name="rtmp-create-stage"></a>

Utilizza il seguente comando per creare una fase:

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

Vedi [CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html) 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
<a name="rtmp-create-an-ingest-configuration"></a>

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](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_Participant.html) 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](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateIngestConfiguration.html) 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](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_UpdateIngestConfiguration.html), 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
<a name="rtmp-singletrack"></a>

Di seguito è descritto come utilizzare OBS Studio; tuttavia, è possibile utilizzare qualsiasi codificatore RTMP che soddisfi le [specifiche multimediali](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) di IVS.

### Guida per OBS
<a name="rtmp-singletrack-obs"></a>

1. Scaricare e installare il software: [https://obsproject.com/download](https://obsproject.com/download).

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

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

1. Per **Chiave del flusso**, inserisci il valore `streamKey` dalla configurazione di acquisizione.

1. 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.

   1. 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.

   1. 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.

   1. 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.

1. 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
<a name="rtmp-multitrack"></a>

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](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-android.html), [iOS](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-ios.html) e [Web](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-web.html).

Per il codice di esempio, consulta [aws-samples/sample-amazon-ivs-multitrack-video](https://github.com/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.”\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/E-RTMP.png)


### Guida per OBS
<a name="rtmp-multitrack-obs"></a>

1. Scarica e installa OBS Studio:

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

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

   1. Scaricalo all'indirizzo: [https://obsproject.com/download](https://obsproject.com/download).

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

1. Per il **Server**, lascia l'impostazione su **Auto**.

1. Per **Chiave del flusso**, inserisci il valore `streamKey` dalla configurazione di acquisizione.

1. Nella sezione **Video multitraccia**, seleziona **Abilita video multitraccia**.

1. 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.

1. Seleziona **Avvia streaming**.

### Pubblicazione con FFmpeg
<a name="rtmp-multitrack-ffmpeg"></a>

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](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) 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
<a name="private-ingest-stages"></a>

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](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/private-ingest-ll.html) nella *Guida per l'utente dello streaming a bassa latenza IVS*. 

# Pubblicazione in formato WHIP in IVS \$1 Streaming in tempo reale
<a name="obs-whip-support"></a>

Questo documento spiega come utilizzare codificatori compatibili con WHIP come OBS per pubblicare su IVS streaming in tempo reale. [WHIP](https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html) (WebRTC-HTTP Ingestion Protocol) è una bozza IETF sviluppata per standardizzare l'acquisizione di WebRTC.

WHIP fornisce la compatibilità con software come OBS, offrendo un'alternativa per la pubblicazione per desktop quando si utilizza l'SDK di trasmissione IVS. Gli streamer più sofisticati che hanno familiarità con OBS potrebbero preferirlo per le sue funzionalità di produzione avanzate, come le transizioni di scena, il mixaggio audio e la grafica di sovrapposizione. In questo modo, gli sviluppatori hanno la possibilità di scegliere se utilizzare l'SDK di trasmissione IVS per web per la pubblicazione diretta tramite browser o consentire ai publisher in streaming di utilizzare OBS sul desktop per usufruire di strumenti più potenti.

WHIP è utile anche nelle situazioni in cui l'utilizzo dell'SDK di trasmissione IVS non è possibile o preferibile. Ad esempio, nelle configurazioni che coinvolgono codificatori hardware, l'utilizzo dell'SDK di trasmissione IVS potrebbe non essere possibile. Tuttavia, se il codificatore supporta WHIP, è comunque possibile pubblicare direttamente dal codificatore su IVS.

**Requisiti WHIP:**
+ L’offerta SDP deve includere una traccia video H.264, anche se si sta pubblicando solo audio. Se l'offerta non include una traccia video, la connessione verrà rifiutata.
+ L'endpoint WHIP globale (https://global.whip.live-video.net) restituisce un reindirizzamento temporaneo 307. I client WHIP devono gestire correttamente i reindirizzamenti 307 e mantenere le intestazioni nella richiesta reindirizzata, come richiesto dalla specifica WHIP.

## Guida per OBS
<a name="whip-support-obs-guide"></a>

OBS supporta WHIP a partire dalla versione 30. Per iniziare, scarica OBS v30 o versione successiva: [https://obsproject.com/](https://obsproject.com/).

Per pubblicare su una fase IVS utilizzando OBS tramite WHIP, segui questi passaggi:

1. [Genera](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started-distribute-tokens.html) un token del partecipante con capacità di pubblicazione. In termini WHIP, un token del partecipante è un token al portatore. Per impostazione predefinita, i token dei partecipanti scadono dopo 12 ore, ma è possibile estenderne la durata fino a 14 giorni.

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

1. Per **Server**, inserisci https://global.whip.live-video.net.

1. Per **Token al portatore**, inserisci il token del partecipante che hai generato nel passaggio 1.

1. 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.

   1. 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.

   1. 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.

1. Seleziona **Avvia streaming**.

**Nota**: siamo consapevoli dei problemi di qualità (come il blocco intermittente dei video) che possono verificarsi con WHIP in OBS. Questi si verificano in genere quando la rete dell'emittente è instabile. Consigliamo di testare WHIP in OBS prima di utilizzarlo per gli streaming in diretta di produzione. Anche la riduzione del bitrate di trasmissione può contribuire a ridurre l'insorgenza di questi problemi.