

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemple : plugin GStreamer SDK Kinesis Video Streams Producer - kvssink
<a name="examples-gstreamer-plugin"></a>

Cette rubrique explique comment créer le SDK Amazon Kinesis Video Streams Producer à utiliser comme GStreamer plugin. 

**Topics**
+ [Téléchargez, créez et configurez l' GStreamer élément](#examples-gstreamer-plugin-download)
+ [Exécutez l' GStreamer élément](#examples-gstreamer-plugin-run)
+ [Exemples de commandes GStreamer de lancement](#examples-gstreamer-plugin-launch)
+ [Exécuter l' GStreamer élément dans un conteneur Docker](#examples-gstreamer-plugin-docker)
+ [GStreamer référence de paramètre d'élément](examples-gstreamer-plugin-parameters.md)

[GStreamer](https://gstreamer.freedesktop.org/)est un framework multimédia populaire utilisé par plusieurs caméras et sources vidéo pour créer des pipelines multimédias personnalisés en combinant des plugins modulaires. Le plugin Kinesis Video GStreamer Streams rationalise l'intégration de votre pipeline multimédia GStreamer existant à Kinesis Video Streams. Après l'intégration GStreamer, vous pouvez diffuser des vidéos depuis une webcam ou une caméra RTSP (Real Time Streaming Protocol) vers Kinesis Video Streams pour une lecture, un stockage et une analyse plus approfondie en temps réel ou ultérieurement. 

Le GStreamer plugin gère automatiquement le transfert de votre flux vidéo vers Kinesis Video Streams en encapsulant les fonctionnalités fournies par le SDK GStreamer du producteur Kinesis Video Streams dans un élément récepteur,. `kvssink` Le GStreamer framework fournit un environnement géré standard pour créer un flux multimédia à partir d'un périphérique tel qu'une caméra ou une autre source vidéo pour un traitement, un rendu ou un stockage ultérieurs. 

Le GStreamer pipeline consiste généralement en un lien entre une source (caméra vidéo) et l'élément récepteur (soit un lecteur pour le rendu de la vidéo, soit un stockage pour la récupération hors ligne). Dans cet exemple, vous utilisez le kit SDK Producteur en tant que *récepteur* ou une destination multimédia pour votre source vidéo (webcam ou caméra IP). L'élément du plugin qui encapsule le SDK envoie ensuite le flux vidéo à Kinesis Video Streams. 

Cette rubrique explique comment créer un pipeline GStreamer multimédia capable de diffuser des vidéos à partir d'une source vidéo, telle qu'une caméra Web ou un flux RTSP, généralement connectée via des étapes de codage intermédiaires (à l'aide du codage H.264) à Kinesis Video Streams. Lorsque votre flux vidéo est disponible sous forme de flux vidéo Kinesis, vous pouvez l'utiliser [Regardez le résultat des caméras à l'aide de la bibliothèque d'analyseurs](parser-library.md) pour poursuivre le traitement, la lecture, le stockage ou l'analyse de votre flux vidéo.

![Vue fonctionnelle du pipeline GStreamer multimédia pour le streaming vidéo d'une caméra vers le service.](http://docs.aws.amazon.com/fr_fr/kinesisvideostreams/latest/dg/images/gstreamer-pipeline.png)


## Téléchargez, créez et configurez l' GStreamer élément
<a name="examples-gstreamer-plugin-download"></a>

L'exemple de GStreamer plugin est inclus dans le SDK Kinesis Video Streams C\+\+ Producer. Pour plus d'informations sur les prérequis et le téléchargement du kit SDK, consultez [Téléchargez et configurez le code de la bibliothèque C\+\+ Producer](producersdk-cpp-download.md).

Vous pouvez créer le GStreamer récepteur du SDK du producteur sous forme de bibliothèque dynamique sur macOS, Ubuntu, Raspberry Pi ou Windows. Le GStreamer plugin se trouve dans votre `build` répertoire. Pour charger ce plugin, il doit se trouver dans votre`GST_PLUGIN_PATH`. Exécutez la commande suivante :

```
export GST_PLUGIN_PATH=`pwd`/build
```

**Note**  
Sur macOS, vous ne pouvez diffuser de la vidéo à partir d'une caméra réseau que si vous l'exécutez GStreamer dans un conteneur Docker. Le streaming de contenu vidéo à partir d'une caméra USB sur macOS dans un conteneur Docker n'est pas pris en charge. 

## Exécutez l' GStreamer élément
<a name="examples-gstreamer-plugin-run"></a>

Pour fonctionner GStreamer avec l'élément SDK du producteur Kinesis Video Streams comme récepteur, utilisez `gst-launch-1.0` la commande. Utilisez des éléments en amont adaptés à l'utilisation du GStreamer plugin. Par exemple, [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) pour les appareils v4l2 sur les systèmes Linux ou [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) pour les appareils RTSP. Spécifiez `kvssink` en tant qu'élément récepteur (destination finale du pipeline) pour envoyer des vidéos au kit SDK Producteur. 

En plus de [fournir des informations d'identification](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#credentials-to-kvssink) et [une région](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#kvssink-region), l'`kvssink`élément possède le paramètre obligatoire suivant :
+ `stream-name`— Le nom du Kinesis Video Streams de destination.

Pour plus d'informations sur les paramètres facultatifs `kvssink`, consultez [GStreamer référence de paramètre d'élément](examples-gstreamer-plugin-parameters.md).

Pour obtenir les dernières informations sur les GStreamer plug-ins et les paramètres, consultez la section [GStreamer Plugins](https://gstreamer.freedesktop.org/documentation/plugins_doc.html?gi-language=c). Vous pouvez également utiliser le `gst-inspect-1.0` suivi du nom d'un GStreamer élément ou d'un plugin pour imprimer ses informations et vérifier qu'il est disponible sur votre appareil :

```
gst-inspect-1.0 kvssink
```

Si la construction `kvssink` échoue ou si GST\_PLUGIN\_PATH n'est pas correctement défini, votre sortie ressemblera à ceci :

```
No such element or plugin 'kvssink'
```

## Exemples de commandes GStreamer de lancement
<a name="examples-gstreamer-plugin-launch"></a>

Les exemples suivants montrent comment utiliser le `kvssink` GStreamer plugin pour diffuser des vidéos à partir de différents types d'appareils.

### Exemple 1 : Diffuser une vidéo depuis une caméra RTSP sur Ubuntu
<a name="examples-gstreamer-plugin-launch-ex1"></a>

La commande suivante crée un GStreamer pipeline sur Ubuntu qui diffuse à partir d'une caméra réseau RTSP, à l'aide du plugin [ GStreamer rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html?gi-language=c) :

```
gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128
```

### Exemple 2 : Encoder et diffuser une vidéo à partir d'une caméra USB sur Ubuntu
<a name="examples-gstreamer-plugin-launch-ex2"></a>

La commande suivante crée un GStreamer pipeline sur Ubuntu qui encode le flux depuis une caméra USB au format H.264 et le diffuse vers Kinesis Video Streams. Cet exemple utilise le plugin [ GStreamer v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page).

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! x264enc  bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Exemple 3 : Diffuser une vidéo pré-encodée à partir d'une caméra USB sur Ubuntu
<a name="examples-gstreamer-plugin-launch-ex3"></a>

La commande suivante crée un GStreamer pipeline sur Ubuntu qui diffuse des vidéos déjà codées par la caméra au format H.264 vers Kinesis Video Streams. Cet exemple utilise le plugin [ GStreamer v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page).

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name="plugin" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Exemple 4 : Diffuser une vidéo depuis une caméra réseau sous macOS
<a name="examples-gstreamer-plugin-launch-ex4"></a>

La commande suivante crée un GStreamer pipeline sur macOS qui diffuse des vidéos vers Kinesis Video Streams à partir d'une caméra réseau. Cet exemple utilise le plugin [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) GStreamer .

```
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512  access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Exemple 5 : Diffuser une vidéo à partir d'une caméra réseau sous Windows
<a name="examples-gstreamer-plugin-launch-ex5"></a>

La commande suivante crée un GStreamer pipeline sous Windows qui diffuse des vidéos vers Kinesis Video Streams à partir d'une caméra réseau. Cet exemple utilise le plugin [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) GStreamer .

```
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512  access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Exemple 6 : Diffuser une vidéo depuis une caméra sur un Raspberry Pi
<a name="examples-gstreamer-plugin-launch-ex6"></a>

La commande suivante crée un GStreamer pipeline sur le Raspberry Pi qui diffuse des vidéos vers Kinesis Video Streams. Cet exemple utilise le plugin [ GStreamer v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page).

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=45 inline-header=FALSE ! h264parse ! video/x-h264,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1,profile=baseline ! kvssink stream-name="YourStreamName" access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Exemple 7 : Diffuser de l'audio et de la vidéo dans Raspberry Pi et Ubuntu
<a name="examples-gstreamer-plugin-launch-ex7"></a>

Découvrez comment [exécuter la commande gst-launch-1.0 pour commencer à diffuser en streaming du contenu audio et vidéo dans Raspberry-PI et Ubuntu](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/linux.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-video-in-raspberry-pi-and-ubuntu).

### Exemple 8 : Diffuser du son et de la vidéo à partir des sources de l'appareil sous macOS
<a name="examples-gstreamer-plugin-launch-ex8"></a>

Découvrez comment [exécuter la commande gst-launch-1.0 pour commencer à diffuser en streaming du contenu audio et vidéo dans MacOS](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/macos.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-raw-video-in-mac-os).

### Exemple 9 : télécharger un fichier MKV contenant à la fois de l'audio et de la vidéo
<a name="examples-gstreamer-plugin-launch-ex9"></a>

Découvrez comment [exécuter la commande gst-launch-1.0 pour télécharger le fichier MKV ayant du contenu audio et vidéo](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/windows.md#running-the-gst-launch-10-command-to-upload-mkv-file-that-contains-both-audio-and-video). Vous aurez besoin d'un fichier de test MKV avec des supports codés H.264 et AAC.

## Exécuter l' GStreamer élément dans un conteneur Docker
<a name="examples-gstreamer-plugin-docker"></a>

Docker est une plateforme permettant de développer, de déployer et d'exécuter des applications à l'aide de conteneurs. L'utilisation de Docker pour créer le GStreamer pipeline normalise l'environnement d'exploitation de Kinesis Video Streams, ce qui rationalise la création et l'utilisation de l'application.

Pour installer et configurer Docker, consultez les éléments suivants :
+ [Instructions pour télécharger Docker](https://docs.docker.com/engine/install/)
+ [Démarrez avec Docker](https://docs.docker.com/guides/getting-started/)

Après avoir installé Docker, vous pouvez télécharger le SDK ( GStreamer et le plugin) Kinesis Video Streams C\+\+ Producer depuis Amazon Elastic Container Registry à l'aide de l'une des commandes ci-dessous. `docker pull`

Pour exécuter GStreamer l'élément du SDK Kinesis Video Streams Producer en tant que récepteur dans un conteneur Docker, procédez comme suit :

**Topics**
+ [Authentifiez votre client Docker](#examples-gstreamer-plugin-docker-authenticate)
+ [Téléchargez l'image Docker pour Ubuntu, macOS, Windows ou Raspberry Pi](#examples-gstreamer-plugin-docker-download)
+ [Exécutez l'image Docker](#examples-gstreamer-plugin-docker-run)

### Authentifiez votre client Docker
<a name="examples-gstreamer-plugin-docker-authenticate"></a>

Authentifiez votre client Docker auprès du registre Amazon ECR à partir duquel l'image doit être extraite. Vous devez obtenir des jetons d'authentification pour chaque registre utilisé. Les jetons sont valides pendant 12 heures. Pour plus d'informations, veuillez consulter [Authentification de registre](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth) dans le *Guide de l'utilisateur Amazon Elastic Container Registry*.

**Example Authentification avec Amazon ECR**  
Pour vous authentifier auprès d'Amazon ECR, copiez et collez la commande suivante comme indiqué.  

```
sudo aws ecr get-login-password --region us-west-2 | docker login -u AWS --password-stdin https://546150905175.dkr.ecr.us-west-2.amazonaws.com
```
En cas de succès, la sortie imprime `Login Succeeded`.

### Téléchargez l'image Docker pour Ubuntu, macOS, Windows ou Raspberry Pi
<a name="examples-gstreamer-plugin-docker-download"></a>

Téléchargez l'image Docker dans votre environnement Docker à l'aide d'une des commandes suivantes en fonction de votre système d'exploitation :

#### Téléchargez l'image Docker pour Ubuntu
<a name="examples-gstreamer-plugin-docker-download-ubuntu"></a>

```
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
```

#### Téléchargez l'image Docker pour macOS
<a name="examples-gstreamer-plugin-docker-download-macos"></a>

```
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
```

#### Téléchargez l'image Docker pour Windows
<a name="examples-gstreamer-plugin-docker-download-windows"></a>

```
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest
```

#### Téléchargez l'image Docker pour Raspberry Pi
<a name="examples-gstreamer-plugin-docker-download-rpi"></a>

```
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest
```

Pour vérifier que l'image a été ajoutée avec succès, utilisez la commande suivante :

```
docker images
```

### Exécutez l'image Docker
<a name="examples-gstreamer-plugin-docker-run"></a>

Utilisez l'une des commandes suivantes pour exécuter l'image Docker en fonction de votre système d'exploitation :

#### Exécutez l'image Docker sur Ubuntu
<a name="examples-gstreamer-plugin-docker-run-ubuntu"></a>

```
sudo docker run -it --network="host" --device=/dev/video0 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
```

#### Exécutez l'image Docker sur macOS
<a name="examples-gstreamer-plugin-docker-run-macos"></a>

```
sudo docker run -it --network="host" 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
```

#### Exécutez l'image Docker sous Windows
<a name="examples-gstreamer-plugin-docker-run-windows"></a>

```
docker run -it 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-windows {{AWS_ACCESS_KEY_ID}} {{AWS_SECRET_ACCESS_KEY}} {{RTSP_URL}} {{STREAM_NAME}}
```

#### Exécutez l'image Docker sur Raspberry Pi
<a name="examples-gstreamer-plugin-docker-run-rpi"></a>

```
sudo docker run -it --device=/dev/video0 --device=/dev/vchiq -v /opt/vc:/opt/vc 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi /bin/bash
```

Docker lance le conteneur et vous présente une invite de commande pour utiliser les commandes dans le conteneur.

Dans le conteneur, définissez les variables d'environnement à l'aide de la commande suivante :

```
export LD_LIBRARY_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH
export PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin:$PATH
export GST_PLUGIN_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$GST_PLUGIN_PATH
```

Commencez à diffuser en `kvssink` utilisant le `gst-launch-1.0` pour exécuter un pipeline adapté à votre appareil et à votre source vidéo. Par exemple, les pipelines, voir[Exemples de commandes GStreamer de lancement](#examples-gstreamer-plugin-launch).