

# Étape 5 : configurer le logiciel de streaming
<a name="getting-started-set-up-streaming"></a>

Vous pouvez diffuser (faible latence) sur Amazon IVS avec :
+ Les [kits SDK de diffusion IVS](#broadcast-sdk) natifs, qui prennent en charge RTMPS. Nous l'avons recommandé, en particulier pour les scénarios de production.
+ La [console Amazon IVS](#ivs-console) : elle convient pour tester les flux.
+ D’autres logiciels et encodeurs matériels de diffusion : vous pouvez utiliser tout encodeur prenant en charge les protocoles RTMP, RTMPS ou SRT. Plusieurs exemples sont décrits ci-dessous, utilisant Open Broadcast Software (OBS) et FFmpeg avec RTMPS et SRT. RTMPS renforce la sécurité grâce à un flux TLS crypté.

Les paramètres clés de l’encodeur sont l’intervalle entre images clés (2 secondes) et la résolution, le débit binaire et la fréquence d’images (qui sont interdépendants). Pour plus de détails sur les paramètres de l'encodeur, consultez : 
+ [Configuration du streaming](streaming-config.md) dans le *Guide de l’utilisateur Amazon IVS*. 
+ Cet article de blog : [Configuration du streaming avec Amazon Interactive Video Service](https://aws.amazon.com/blogs/media/setting-up-for-streaming-with-amazon-ivs/)

**Remarques:** 
+ La durée maximale des flux Amazon IVS est de 48 heures. Passé ce délai, le flux est terminé et la session de streaming déconnectée. Une reconnexion, automatique ou manuelle, démarre un nouveau flux.
+ Si votre encodeur arrête d'envoyer des données (par exemple, en raison d'un problème temporaire de réseau), Amazon IVS attend 30 secondes. En l'absence de réception de données du diffuseur pendant ce délai, Amazon IVS se déconnecte.

## Streaming avec le kit SDK de diffusion Amazon IVS
<a name="broadcast-sdk"></a>

Pour diffuser à partir de vos applications iOS ou Android, vous pouvez utiliser le kit SDK de diffusion Amazon IVS. Le kit SDK de diffusion tire parti de l'architecture Amazon IVS et nous y apporterons continuellement des améliorations et de nouvelles fonctionnalités, en plus d'Amazon IVS. En tant que kit SDK de diffusion mobile natif, il est conçu pour minimiser l’impact sur les performances de votre application et sur les périphériques avec lesquels vos utilisateurs accèdent à votre application.


| Pour diffuser depuis ... | Vous pouvez utiliser … | Remarques | 
| --- | --- | --- | 
| Vos applications Android ou iOS | Le kit SDK de diffusion pour Amazon IVS sur Android ou iOS | En tant que kit SDK de diffusion mobile natif, il est conçu pour minimiser l’impact sur les performances de votre application et sur les périphériques avec lesquels vos utilisateurs accèdent à votre application. | 
| Un environnement Web | Le kit SDK de diffusion Web pour Amazon IVS | Comme kit SDK de diffusion web, le kit SDK de diffusion Web pour Amazon IVS vous permet de diffuser à partir d'environnements web à l'aide de WebRTC. Il offre un support multinavigateur et multiplateforme. | 

Pour en savoir plus, consultez [Kit SDK de diffusion IVS \| Diffusion à faible latence](broadcast.md).

## Streaming avec la console Amazon IVS
<a name="ivs-console"></a>

1. Ouvrez la [console Amazon IVS](https://console.aws.amazon.com/ivs).

   (Vous pouvez également accéder à la console Amazon IVS via la [console de gestion AWS](https://console.aws.amazon.com/).)

1. Dans le panneau de navigation, choisissez **Canaux**. (Si le panneau de navigation est réduit, agrandissez-le en sélectionnant une icône en forme de hamburger.)

1. Choisissez un canal sur lequel vous souhaitez diffuser, pour accéder à sa page de détails.

1. Sélectionnez l'onglet **Diffusion**. (Les onglets se trouvent sous la section **Configuration générale**.)

1. Vous serez invité à autoriser la console IVS à accéder à votre caméra et à votre microphone ; **autorisez** ces autorisations.

1. Au bas de l'onglet **Diffusion**, utilisez les listes déroulantes pour sélectionner les périphériques d'entrée pour le microphone et la caméra.

1. Pour commencer le streaming, sélectionnez **Commencer la diffusion**.

1. Pour visionner le flux en direct, accédez à l'onglet **Lecture**.

   **Remarque** : Après avoir démarré le flux, attendez-vous à un bref délai (généralement inférieur à 30 secondes) avant qu'il ne soit visible dans l'onglet Lecture.

Vous pouvez utiliser cette fonctionnalité pour diffuser simultanément sur plusieurs canaux.

**Remarque** : Le streaming depuis la console consomme des ressources et vous devrez payer des frais d'entrée vidéo en direct. Pour en savoir plus, consultez la section [Coûts d'entrée vidéo en direct](https://aws.amazon.com/ivs/pricing/#Low-Latency_Streaming) sur la page de tarification de l'IVS.

## Diffusion avec OBS Studio en utilisant RTMPS
<a name="obs-rtmps"></a>

([OBS Studio](https://obsproject.com/)) est une suite logicielle gratuite et open source pour l'enregistrement et la diffusion en direct. OBS fournit la capture en temps réel des sources et des périphériques, la composition des scènes, l'encodage, l'enregistrement et le streaming. 

Suivez ces étapes pour vous mettre rapidement en jambes avec OBS Studio v30.2 ou une version ultérieure :

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

1. Exécutez l'**assistant de configuration automatique** d'OBS Studio, qui apparaît lorsque vous chargez OBS Studio pour la première fois. Suivez les différentes étapes et acceptez les valeurs par défaut.

1. Dans **Informations sur le flux**, sélectionnez **Amazon IVS** dans le menu déroulant **Service** et saisissez la **clé de flux**.

   Si vous avez créé le canal avec la console Amazon IVS, la **clé de flux** que vous saisissez dans OBS est la **clé de flux** de la console : `sk_us-west-2_abcd1234efgh5678ijkl`

   Si vous avez créé le canal avec l’AWS CLI, la **clé de flux** que vous saisissez dans OBS est la **valeur de streamKey** de la réponse CLI `sk_us-west-2_abcd1234efgh5678ijkl`

   Si votre canal IVS est configuré pour une entrée vidéo multipiste, sélectionnez **Activer la vidéo multipiste**. Vous pouvez également configurer les paramètres **Nombre maximal de pistes vidéo** et **Largeur de bande maximale de diffusion**, qui sont utilisés pour limiter les paramètres de flux configurés automatiquement.

1. Pour **Video Output Resolution** (Résolution de sortie vidéo) et **Bitrate**, référez-vous aux [Channel Types](streaming-config.md#streaming-config-settings-channel-types) (Types de canaux) dans la *Amazon IVS Streaming Configuration* (Configuration du streaming Amazon IVS). Si l'une des valeurs choisies par l'assistant OBS dépasse les valeurs autorisées par Amazon IVS, vous devez ajuster manuellement les valeurs pour éviter un échec de connexion à Amazon IVS. Une fois l'assistant terminé :

   1. Pour régler la résolution vidéo, utilisez **Settings > Video > Output (Scaled) Resolution** (Paramètres > Vidéo > Résolution de sortie [mise à l'échelle]).

   1. Pour régler le débit vidéo, utilisez **Settings > Output > Streaming > Video Bitrate** (Paramètres > Sortie > Streaming > Débit vidéo). 

      **Remarque** : cela n’affecte pas le flux en direct si vous avez précédemment coché l’option **Activer la vidéo multipiste**.

1. Nous recommandons une durée de 2 secondes pour **Keyframe Interval** (Intervalle entre images clés) pour améliorer la stabilité du flux et éviter la mise en mémoire tampon dans la lecture de la visionneuse. À la fin de l’assistant, accédez à **Paramètres > Sortie > Mode de sortie**, sélectionnez **Avancé**, et sur l’onglet **Diffusion**, assurez-vous que **Intervalle entre images clés** est 2.

   **Remarque** : l’intervalle entre les images clés est configuré automatiquement si vous avez coché l’option **Activer la vidéo multipiste**.

1. Dans la fenêtre principale d’OBS Studio, choisissez **Start Streaming** (Démarrer le streaming).

Pour en savoir plus sur le streaming via OBS Studio, consultez le [Guide de démarrage rapide d’OBS Studio](https://obsproject.com/wiki/OBS-Studio-Quickstart).

Vous pouvez modifier manuellement vos paramètres OBS :

1. Choisissez **Settings > Stream (Paramètres > Diffuser en direct)**.

1. Sélectionnez **Amazon IVS** dans la liste déroulante.

1. Collez la **clé de flux**.

Vous pouvez réexécuter l'assistant à tout moment : choisissez **Tools > Auto-Configuration Wizard (Outils > Assistant de configuration automatique)**.

Vous pouvez activer l’enregistrement local dans **Settings > General** (Paramètres > Général) si vous souhaitez enregistrer votre diffusion en direct pour une utilisation ultérieure. Comme mentionné précédemment, des problèmes de réseau entre l'emplacement de diffusion et AWS, ou au sein d'AWS, peuvent entraîner une perte de données lors de l'enregistrement de votre flux. Dans ce cas, Amazon IVS accorde la priorité au flux en direct et non aux enregistrements. L'enregistrement local via votre outil de streaming assure la redondance.

Il est conseillé de vérifier régulièrement les mises à jour d’OBS Studio et de passer à la dernière version. Par exemple, si vous obtenez une erreur « Failed to connect to server » (Échec de la connexion au serveur), il est possible que vous utilisiez une ancienne version d'OBS Studio ne prenant pas en charge RTMPS.

## Diffusion avec OBS Studio en utilisant SRT
<a name="obs-srt"></a>

Suivez ces étapes pour démarrer rapidement avec le protocole Secure Reliable Transport :

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

1. Exécutez l'**assistant de configuration automatique** d'OBS Studio, qui apparaît lorsque vous chargez OBS Studio pour la première fois. Suivez les différentes étapes et acceptez les valeurs par défaut.

1. Pour **Stream Information** (Informations de flux), choisissez **Custom...** (Personnalisé...) à partir du menu déroulant **Service** et saisissez le **Server (Ingest server)** (Serveur [serveur d'ingestion]) et la **Stream Key** (Clé de flux).

   Si vous avez créé le canal avec l'AWS CLI :
   + Le **serveur** que vous saisissez dans OBS est une combinaison de cinq éléments :
     + Un protocole d'ingestion : `srt://`
     + Le **point de terminaison** de la struct `srt` dans la réponse CLI : 

       `a1b2c3d4e5f6.srt.live-video.net`
     + Un port : `9000`
     + Un streamid, qui est la **valeur de streamKey** de la réponse CLI :

       `sk_us-west-2_abcd1234efgh5678ijkl`
     + Une phrase de passe, utilisée pour chiffrer le contenu. N’utilisez cette valeur que si l’**ingestion non sécurisée** n’est pas activée.

       `ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ`

     L’entrée complète est la suivante :

     `srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ`
   + La **clé de flux** que vous saisissez dans OBS restera vide pour le protocole SRT.

1. Pour **Video Output Resolution** (Résolution de sortie vidéo) et **Bitrate**, référez-vous aux [Channel Types](streaming-config.md#streaming-config-settings-channel-types) (Types de canaux) dans la *Amazon IVS Streaming Configuration* (Configuration du streaming Amazon IVS). Si l'une des valeurs choisies par l'assistant OBS dépasse les valeurs autorisées par Amazon IVS, vous devez ajuster manuellement les valeurs pour éviter un échec de connexion à Amazon IVS. Une fois l'assistant terminé : 

   1. Pour régler la résolution vidéo, utilisez **Settings > Video > Output (Scaled) Resolution** (Paramètres > Vidéo > Résolution de sortie [mise à l'échelle]).

   1. Pour régler le débit vidéo, utilisez **Settings > Output > Streaming > Video Bitrate** (Paramètres > Sortie > Streaming > Débit vidéo).

1. Nous recommandons une durée de 2 secondes pour **Keyframe Interval** (Intervalle entre images clés) pour améliorer la stabilité du flux et éviter la mise en mémoire tampon dans la lecture de la visionneuse. À la fin de l’assistant, accédez à **Paramètres > Sortie > Mode de sortie**, sélectionnez **Avancé**, et sur l’onglet **Diffusion**, assurez-vous que **Intervalle entre images clés** est 2.

1. Dans la fenêtre principale d’OBS Studio, choisissez **Start Streaming** (Démarrer le streaming). 

Vous pouvez modifier manuellement vos paramètres OBS :

1. Choisissez **Settings > Stream (Paramètres > Diffuser en direct)**.

1. Choisissez l’option **Custom** (Personnalisé) dans le menu déroulant.

1. Collez le **serveur** et/ou la **clé de flux**.

Vous pouvez réexécuter l'assistant à tout moment : choisissez **Tools > Auto-Configuration Wizard (Outils > Assistant de configuration automatique)**.

Vous pouvez activer l’enregistrement local dans **Settings > General** (Paramètres > Général) si vous souhaitez enregistrer votre diffusion en direct pour une utilisation ultérieure. Comme mentionné précédemment, des problèmes de réseau entre l'emplacement de diffusion et AWS, ou au sein d'AWS, peuvent entraîner une perte de données lors de l'enregistrement de votre flux. Dans ce cas, Amazon IVS accorde la priorité au flux en direct et non aux enregistrements. L'enregistrement local via votre outil de streaming assure la redondance.

Il est conseillé de vérifier régulièrement les mises à jour d’OBS Studio et de passer à la dernière version. (Par exemple, si vous obtenez une erreur « Échec de la connexion au serveur », il est possible que vous utilisiez une ancienne version d’OBS Studio ne prenant pas en charge RTMPS.)

## Diffusion d’une vidéo enregistrée avec FFmpeg en utilisant RTMPS
<a name="ffmpeg-rtmps"></a>

Procédez comme suit :

1. Téléchargez et installez FFmpeg : [https://www.ffmpeg.org/download.html](https://www.ffmpeg.org/download.html).

1. Dans `$VIDEO_FILEPATH`, saisissez l'emplacement d'une vidéo MP4 :

   ```
   VIDEO_FILEPATH=/home/test/my_video.mp4
   ```

1. Dans `STREAM_KEY`, entrez la **valeur** de la clé de flux :

   ```
   STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
   ```

1. Dans `INGEST_ENDPOINT`, entrez votre **ingestEndpoint** (à partir de l'AWS CLI) :

   ```
   INGEST_ENDPOINT=a1b2c3d4e5f6.global-contribute.live-video.net
   ```

1. Commencez le streaming avec la commande de terminal suivante (il s'agit d'une ligne entière) :

   ```
   ffmpeg -re -stream_loop -1 -i $VIDEO_FILEPATH -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://$INGEST_ENDPOINT:443/app/$STREAM_KEY
   ```

   *La commande ci-dessus est un exemple. Pour le streaming, réglez les paramètres en fonction de vos besoins.*

## Diffusion d’une vidéo enregistrée avec FFmpeg en utilisant SRT
<a name="ffmpeg-srt"></a>

1. Téléchargez et installez FFmpeg : [https://www.ffmpeg.org/download.html](https://www.ffmpeg.org/download.html). Si vous utilisez une version ancienne/compilée de FFmpeg, compilez une nouvelle version avec l’option `--enable-libsrt`.

1. Vérifiez que SRT est disponible dans FFmpeg : exécutez la commande suivante et assurez-vous que `libsrt` est dans la sortie. Si `libsrt` n’est pas présent, recompilez ou obtenez une version plus récente de FFmpeg qui prend en charge SRT.

   ```
   ffmpeg -version | grep enable-libsrt
   ```

1. Dans `$VIDEO_FILEPATH`, saisissez l'emplacement d'une vidéo MP4 :

   ```
   VIDEO_FILEPATH=/home/test/my_video.mp4
   ```

1. Dans `STREAM_KEY`, entrez la **valeur** de la clé de flux :

   ```
   STREAM_KEY=sk_us-west-2_abcd1234efgh5678ijkl
   ```

1. Définissez `INGEST_ENDPOINT` sur votre **point de terminaison** (à partir de l’AWS CLI sous l’objet `srt`) :

   ```
   INGEST_ENDPOINT=a1b2c3d4e5f6.srt.live-video.net
   ```

1. Définissez `PASSPHRASE` sur votre **phrase de passe** (à partir de l’AWS CLI sous l’objet `srt`). N’utilisez la phrase de passe que si l’ingestion non sécurisée n’est pas activée pour le canal. 

   ```
   PASSPHRASE=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ
   ```

1. Commencez le streaming avec la commande de terminal suivante (il s'agit d'une ligne entière) :

   ```
   ffmpeg -re -i $VIDEO_FILEPATH -c copy -f mpegts "srt://$INGEST_ENDPOINT:9000?streamid=$STREAM_KEY&passphrase=$PASSPHRASE”
   ```