

# Publication RTMP IVS \$1 Diffusion en temps réel
<a name="rt-rtmp-publishing"></a>

Ce document décrit le processus de publication sur une scène IVS en utilisant RTMP. Pour plus de détails sur les différentes options d’ingestion, consultez la documentation [Ingestion de flux](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html)

## Conditions préalables
<a name="rtmp-prerequisites"></a>

### Créer une étape
<a name="rtmp-create-stage"></a>

Pour créer une scène, utilisez la commande suivante :

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

Consultez la section [CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html) pour plus de détails, y compris la réponse.

**Important :** dans la réponse, notez le champ `endpoints` qui répertorie les points de terminaison RTMP et RTMPS. Ils sont nécessaires pour configurer votre encodeur RTMP.

### Création d’une configuration d’ingestion
<a name="rtmp-create-an-ingest-configuration"></a>

Pour publier sur une scène en utilisant RTMPS, vous devez d’abord créer une configuration d’ingestion et l’associer à votre scène. Lorsque vous publiez sur la scène (en utilisant la clé de flux de la configuration d’ingestion et le point de terminaison RTMP de la scène), le contenu multimédia sera publié sur la scène en tant que participant. Vous avez la possibilité de spécifier un `userId` et un `attributes` personnalisé, qui seront associés au [participant](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_Participant.html) se connectant à la scène.

```
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'
```

Consultez la section [CreateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateIngestConfiguration.html) pour plus de détails, y compris la réponse.

Lors de la création d’une configuration d’ingestion, vous pouvez l’associer directement à un ARN de scène spécifique. Sans cette association, la clé de flux est inutilisable. Les configurations d’ingestion (y compris le champ `stageArn`) peuvent également être mises à jour via l’opération [UpdateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_UpdateIngestConfiguration.html), vous permettant de réutiliser la même configuration pour différentes scènes.

**Remarque :** le champ `insecureIngest` de la configuration d’ingestion est par défaut défini sur `false`, nécessitant l’utilisation de RTMPS. Les connexions RTMP seront rejetées. Si vous devez utiliser RTMP, définissez `insecureIngest` sur `true`. Nous vous recommandons d'utiliser le protocole RTMPS, sauf si vous avez des cas d'utilisation spécifiques et vérifiés qui exigent le protocole RTMP.

## Vidéo RTMP à piste unique
<a name="rtmp-singletrack"></a>

Nous décrivons ci-dessous comment utiliser OBS Studio ; toutefois, vous pouvez utiliser n’importe quel encodeur RTMP qui répond aux [spécifications multimédia](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) d’IVS.

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

1. Téléchargez et installez le logiciel : [https://obsproject.com/download](https://obsproject.com/download).

1. Cliquez sur **Paramètres**. Dans la section **Flux** du panneau **Paramètres**, sélectionnez **Personnalisé** dans le menu déroulant **Service**.

1. Dans le champ **Serveur**, saisissez le point de terminaison RTMP ou RTMPS de la scène.

1. Dans le champ **Clé de flux**, saisissez le `streamKey` de la configuration d’ingestion.

1. Configurez vos paramètres vidéo comme vous le feriez normalement, avec quelques restrictions :

   1. La diffusion en temps réel IVS prend en charge les entrées jusqu’à 720p à 8,5 Mbit/s. Si vous dépassez l’une de ces limites, votre flux risque de se déconnecter.

   1. Nous vous recommandons de régler l’**intervalle entre les images clés** dans la section **Sortie** sur 1 ou 2 secondes. Un faible intervalle entre les images clés permet une lecture vidéo plus rapide pour les spectateurs. Nous recommandons également de régler **Préréglage d’utilisation du processeur** sur **très rapide** et **Réglage** sur **latence nulle**, pour permettre la latence la plus faible.

   1. OBS ne prenant pas en charge la diffusion simultanée, nous vous recommandons de maintenir un débit inférieur à 2,5 Mbit/s. Cela permet aux spectateurs disposant d’une connexion à faible bande passante de visionner.

   1. Désactivez les images de type B, car les flux contenant des images de type B seront automatiquement déconnectés. Effectuez l’une des actions suivantes :
      + Dans les options x264, saisissez `bframes=0 sliced-threads=0`.
      + Réglez les images de type B sur 0 si cette option est disponible (par exemple, pour NVENC).

   Remarque : les flux RTMP doivent inclure à la fois des pistes audio et vidéo, sinon ils seront déconnectés.

1. Sélectionnez **Démarrer la diffusion**

**Important :** si le débit binaire maximal de votre encodeur est défini sur 8,5 Mbit/s, le diffuseur de publication disparaît parfois de la session. Cela est dû au fait que le débit binaire maximal est seulement une cible, et les encodeurs dépassent parfois cette cible. Pour éviter cela, réglez le débit binaire maximal de votre encodeur à un niveau inférieur, par exemple à 6 Mbit/s.

## Vidéo multipiste E-RTMP
<a name="rtmp-multitrack"></a>

IVS prend en charge la fonctionnalité vidéo multipiste du protocole E-RTMP (Enhanced Real-Time Messaging Protocol), qui vous permet de publier plusieurs qualités vidéo dans un seul flux RTMP vers votre scène IVS. Cela permet un streaming à débit adaptatif, de sorte que les abonnés peuvent automatiquement regarder la meilleure qualité pour leur connexion réseau.

Une fois ingérées, les différentes qualités vidéo sont diffusées aux abonnés sous forme de couches de diffusion simultanée. Pour configurer les couches reçues par les abonnés, consultez les sections « Encodage en couches avec diffusion simultanée » des guides du kit SDK de diffusion en streaming en temps réel : [Android](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-android.html), [iOS](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-ios.html) et [Web](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-web.html).

Pour un exemple de code, consultez [aws-samples/sample-amazon-ivs-multitrack-video](https://github.com/aws-samples/sample-amazon-ivs-multitrack-video) sur GitHub.

Ce diagramme illustre le fonctionnement de la publication avec la vidéo multipiste :

![\[Publication d’une vidéo multipiste sur une scène. »\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/E-RTMP.png)


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

1. Téléchargez et installez OBS Studio :

   1. Windows : la vidéo multipiste est prise en charge à partir de la version 30.2 d’OBS Studio.

   1. macOS : la vidéo multipiste est prise en charge à partir de la version 31.1 Beta d’OBS Studio (Apple Silicon uniquement).

   1. Téléchargez-la à l’adresse suivante : [https://obsproject.com/download](https://obsproject.com/download).

1. Cliquez sur **Paramètres**. Dans la section **Flux** du panneau **Paramètres**, sélectionnez **Amazon IVS** dans le menu déroulant **Service**.

1. Pour le **Serveur**, laissez le paramètre sur **Auto**.

1. Dans le champ **Clé de flux**, saisissez le `streamKey` de la configuration d’ingestion.

1. Dans la section **Vidéo multipiste**, cochez **Activer la vidéo multipiste**.

1. Dans le panneau **Vidéo**, définissez la résolution de **Base (résolution du canevas)** et la **Résolution de sortie (mise à l’échelle)** souhaitées. La diffusion en temps réel IVS prend en charge les entrées jusqu’à 720p. Si vous dépassez cette limite, votre flux sera déconnecté.

   Lorsque la vidéo multipiste est activée, les paramètres tels que le nombre de pistes vidéo, leurs débits et l’intervalle entre les images clés sont automatiquement configurés en fonction des capacités de l’appareil.

1. Sélectionnez **Démarrer la diffusion**.

### Publication avec FFmpeg
<a name="rtmp-multitrack-ffmpeg"></a>

Vous pouvez utiliser FFmpeg pour publier des flux vidéo et audio en direct sur le service de streaming en temps réel IVS via RTMP. FFmpeg est un projet libre et open-source comprenant une suite complète de bibliothèques logicielles et d’outils pour le traitement de la vidéo, de l’audio et d’autres contenus multimédias.

La commande d’exemple suivante publie un flux contenant un motif de couleur et un signal sonore :

```
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
```

Dans cet exemple, remplacez `$INGEST_ENDPOINT` et `$STREAM_KEY` par vos propres valeurs provenant de l’API ou de la console IVS.

Cette configuration est conforme aux [spécifications du contenu multimédia pris en charge](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications) pour le streaming en temps réel IVS, incluant la vidéo H.264 (profil de base, sans B-frames, sans tranches multithreadées) et l’audio AAC.

## Ingestion privée à étapes
<a name="private-ingest-stages"></a>

Vous pouvez publier des flux RTMP(S) et E-RTMP(S) sur une étapes à partir des ressources de votre Amazon VPC ou de Direct Connect, en utilisant un point de terminaison d’un VPC d’interface. Cela permet d’établir une connexion privée entre votre VPC et votre IVS tout en conservant le trafic d’ingestion au sein du réseau AWS. Pour installer et configurer un point de terminaison d’un VPC d’interface pour IVS, consultez la section [Ingestion privée IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/private-ingest-ll.html) dans le *Guide de l’utilisateur de la diffusion à faible latence d’IVS*. 