

# Ingestion de flux IVS \$1 Diffusion en temps réel
<a name="rt-stream-ingest"></a>

Comme alternative à l’utilisation du kit SDK de diffusion IVS, vous pouvez désormais publier des vidéos sur une scène IVS à partir d’une source WHIP ou RTMP. Cette approche offre de la flexibilité pour les flux de travail où l’utilisation du kit SDK n’est pas possible ou souhaitée, comme lors de la publication de vidéos depuis OBS Studio ou un encodeur matériel. Dans la mesure du possible, nous recommandons d’utiliser le kit SDK de diffusion IVS, car nous ne pouvons pas garantir la performance ou la compatibilité des solutions tierces avec IVS.

Ce schéma illustre le fonctionnement de la publication avec WHIP et RTMP :

![\[Publication avec WHIP et RTMP.\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/Stream_Ingest.png)


## Protocoles pris en charge
<a name="supported-protocols"></a>

La diffusion en temps réel IVS prend en charge plusieurs protocoles d’ingestion :
+ RTMP et RTMPS — RTMP (Real-Time Messaging Protocol) est la norme de l’industrie pour la transmission de vidéos sur un réseau. RTMPS est la version sécurisée de RTMP qui fonctionne sur TLS.

  IVS prend en charge la fonctionnalité vidéo multipiste d’E-RTMP (Enhanced RTMP). Consultez la section [Vidéo multipiste E-RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html#rtmp-multitrack) dans la documentation sur la publication RTMP d’IVS.
+ WHIP (WebRTC-HTTP Ingestion Protocol) : un projet IETF visant à standardiser l’ingestion WebRTC.

 Pour des instructions détaillées sur l’utilisation de ces protocoles, consultez notre documentation [RTMP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html) et [WHIP](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/obs-whip-support.html).

## Spécifications du contenu multimédia pris en charge
<a name="supported-media-specifications"></a>
+ Format d’entrée audio
  + Codec : AAC-LC pour RTMP et Opus pour WHIP
  + Canaux : 2 (stéréo) ou 1 (mono)
  + Fréquence d’échantillonnage : 44,1 kHz ou 48 kHz
  + Débit binaire maximum : 160 kbit/s
+ Format d’entrée vidéo
  + Codec : H.264
  + Profil H.264 : Baseline
  + Intervalle IDR : 1 ou 2 secondes
  + Fréquence d’images : 10 à 60 images par seconde
  + Images de type B : 0

    Remarque : le kit SDK de diffusion IVS a activé les images de type B par défaut, mais à partir de la version 1.25.0, il désactive automatiquement les images de type B lors de la diffusion vers une étape IVS. Pour la diffusion en temps réel avec d’autres encodeurs RTMP, les développeurs doivent désactiver les images de type B. *Si les développeurs qui utilisent d’autres encodeurs RTMP ne désactivent pas les images de type B, leurs flux seront déconnectés*.
  + Résolution maximale : 720p. Minimum : 160p
  + Débit binaire maximum : 8,5 Mbit/s

    Remarque : pour les flux RTMP à piste unique, cette limite s’applique à cette piste. Pour les vidéos multipistes publiées à l’aide d’Enhanced RTMP, la limite s’applique au débit combiné de toutes les pistes vidéo.
  + Configuration de l’encodeur : nous recommandons d’utiliser les paramètres `veryfast` et `zerolatency` pour un encodeur H.264. En outre, l’option `sliced_threads` x264 est incluse dans les préréglages `zerolatency` et il est recommandé de la désactiver. Par exemple, avec FFmpeg, la commande doit inclure : `-preset:v veryfast -tune zerolatency -x264-params sliced-threads=0`

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

# Publication WHIP IVS \$1 Diffusion en temps réel
<a name="obs-whip-support"></a>

Ce document explique comment utiliser des encodeurs compatibles WHIP, comme OBS, pour une diffusion en temps réel avec IVS. [WHIP](https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html) (WebRTC-HTTP Ingestion Protocol) est un projet IETF visant à standardiser l’ingestion WebRTC.

WHIP permet la compatibilité avec des logiciels tels que OBS, offrant une alternative (au SDK de diffusion IVS) pour la publication assistée par ordinateur. Les streamers plus sophistiqués qui connaissent bien OBS peuvent le préférer en raison de ses fonctionnalités de production avancées, telles que les transitions de scène, le mixage audio et la superposition des graphiques. Cela offre aux développeurs des options variées : utiliser le kit SDK de diffusion IVS pour Web pour publier directement depuis un navigateur, ou permettre aux streamers d’utiliser OBS sur leur ordinateur pour des outils plus avancés.

WHIP est également avantageux dans les cas où l’utilisation du kit SDK IVS n’est pas réalisable ou souhaitée. Par exemple, dans les configurations impliquant des encodeurs matériels, le SDK de diffusion IVS peut ne pas être une option. Toutefois, si l'encodeur prend en charge le protocole WHIP, vous pouvez toujours publier directement depuis l'encodeur vers IVS.

**Exigences en matière de WHIP :**
+ Votre offre SDP doit inclure une piste vidéo H.264, même si vous publiez uniquement de l'audio. Si l'offre ne comprend pas de piste vidéo, la connexion sera rejetée.
+ Le point de terminaison WHIP global (https://global.whip.live-video.net) renvoie une redirection temporaire 307. Les clients WHIP doivent traiter correctement les redirections 307 et conserver les en-têtes dans la demande redirigée, comme l'exige la spécification WHIP.

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

OBS prend en charge WHIP à partir de la version 30. Pour commencer, téléchargez OBS v30 ou une version ultérieure : [https://obsproject.com/](https://obsproject.com/).

Pour publier sur une scène IVS à l’aide d’OBS via WHIP, procédez comme suit :

1. [Générez](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/getting-started-distribute-tokens.html) un jeton de participant doté d’une fonctionnalité de publication. Dans le contexte WHIP, un jeton de participant est un jeton « au porteur ». Par défaut, les jetons de participant expirent au bout de 12 heures, mais vous pouvez en prolonger la durée jusqu’à 14 jours.

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

1. Dans le champ **Serveur**, saisissez https://global.whip.live-video.net.

1. Dans le champ **Jeton au porteur**, saisissez le jeton de participant que vous avez généré à l’étape 1.

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. Appuyez sur **Démarrer la diffusion**.

**Remarque** : nous sommes conscients des problèmes de qualité (comme des saccades vidéo) pouvant survenir lors de l’utilisation de WHIP dans OBS. Ces problèmes surviennent généralement lorsque le réseau du diffuseur est instable. Nous recommandons de tester WHIP dans OBS avant de l’utiliser pour des diffusions en direct en production. La réduction de votre débit de diffusion peut également contribuer à réduire l’apparition de ces problèmes.