View a markdown version of this page

Exemple : Plug-in GStreamer du SDK Kinesis Video Streams Producer - kvssink - Amazon Kinesis Video Streams

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 : Plug-in GStreamer du SDK Kinesis Video Streams Producer - kvssink

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

GStreamer 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 Streamer rationalise l'intégration de votre pipeline multimédia GStreamer existant à Kinesis Video Streams. Après avoir intégré 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 plugin GStreamer gère automatiquement le transfert de votre flux vidéo vers Kinesis Video Streams en encapsulant les fonctionnalités fournies par le SDK du producteur Kinesis Video Streams dans un élément récepteur GStreamer,. kvssink L'infrastructure GStreamer fournit un environnement géré standard pour créer un flux multimédia à partir d'un appareil tel qu'une caméra ou que d'autres sources vidéo en vue d'un traitement, rendu ou stockage ultérieurs.

Le pipeline GStreamer se compose généralement du lien entre une source (caméra vidéo) et l'élément récepteur (un joueur pour restituer la vidéo ou un stockage pour une 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 multimédia GStreamer 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 de l' H.264 encodage) à 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 pour poursuivre le traitement, la lecture, le stockage ou l'analyse de votre flux vidéo.

Affichage fonctionnel du pipeline multimédia GStreamer pour diffuser en streaming du contenu vidéo à partir d'une caméra vers le service .

Téléchargez, compilez et configurez l'élément GStreamer

L'exemple du plugin GStreamer est inclus dans le SDK de production Kinesis Video Streams C++. 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.

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

export GST_PLUGIN_PATH=`pwd`/build
Note

Sur macOS, vous pouvez uniquement diffuser en continu du contenu vidéo à partir d'une caméra en réseau lors de l'exécution de 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'élément GStreamer

Pour exécuter GStreamer avec l'élément SDK du producteur Kinesis Video Streams comme récepteur, utilisez la commande. gst-launch-1.0 Utilisez des éléments en amont adaptés à l'utilisation du plugin GStreamer. Par exemple, v4l2src pour les appareils v4l2 sur les systèmes Linux ou rtspsrc 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 et une région, 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 Référence des paramètres de l'élément GStreamer.

Pour obtenir les dernières informations sur les plugins et les paramètres de GStreamer, consultez la section Plugins GStreamer. Vous pouvez également utiliser le gst-inspect-1.0 suivi du nom d'un élément ou d'un plugin GStreamer 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 de lancement de GStreamer

Les exemples suivants montrent comment utiliser le plugin kvssink GStreamer 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

La commande suivante crée un pipeline GStreamer sur Ubuntu qui diffuse en continu à partir d'une caméra RTSP en réseau, à l'aide du plug-in GStreamer rtspsrc :

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

La commande suivante crée un pipeline GStreamer sur Ubuntu qui encode au H.264 format le flux provenant d'une caméra USB et le diffuse vers Kinesis Video Streams. Cet exemple utilise le plugin GStreamer v4l2src.

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

La commande suivante crée un pipeline GStreamer sur Ubuntu qui diffuse des vidéos déjà encodées par la caméra au H.264 format Kinesis Video Streams. Cet exemple utilise le plugin GStreamer v4l2src.

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 à partir d'une caméra réseau sous macOS

La commande suivante crée un pipeline GStreamer sur macOS qui diffuse des vidéos vers Kinesis Video Streams à partir d'une caméra réseau. L'exemple suivant illustre le plug-in GStreamer rtspsrc.

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

La commande suivante crée un pipeline GStreamer sous Windows qui diffuse des vidéos vers Kinesis Video Streams à partir d'une caméra réseau. L'exemple suivant illustre le plug-in GStreamer rtspsrc.

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

La commande suivante crée un pipeline GStreamer sur le Raspberry Pi qui diffuse des vidéos vers Kinesis Video Streams. Cet exemple utilise le plugin GStreamer v4l2src.

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

Découvrez comment exécuter la commande gst-launch-1.0 pour démarrer le streaming audio et vidéo dans Ubuntu. Raspberry-PI

Exemple 8 : Diffuser du son et de la vidéo à partir des sources de l'appareil sous macOS

Découvrez comment exécuter la commande gst-launch-1.0 pour commencer à diffuser en streaming du contenu audio et vidéo dans MacOS.

Exemple 9 : télécharger un fichier MKV contenant à la fois de l'audio et de la vidéo

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. Vous aurez besoin d'un fichier de test MKV avec des supports codés H.264 et AAC.

Exécutez l'élément GStreamer dans un conteneur Docker

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 pipeline GStreamer 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 :

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

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

Authentifiez votre client Docker

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 dans le Guide de l'utilisateur Amazon Elastic Container Registry.

Exemple 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

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

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

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

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

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

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

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

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

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

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, voirExemples de commandes de lancement de GStreamer.