

# 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*. 