Ejemplo: complemento para SDK GStreamer productores de Kinesis Video Streams: kvssink - Amazon Kinesis Video Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplo: complemento para SDK GStreamer productores de Kinesis Video Streams: kvssink

En este tema se describe cómo crear el SDK productor de Amazon Kinesis Video Streams para usarlo como GStreamer complemento.

GStreameres un marco multimedia popular que utilizan varias cámaras y fuentes de vídeo para crear canales multimedia personalizados mediante la combinación de complementos modulares. El complemento Kinesis Video GStreamer Streams agiliza la integración de su canal multimedia GStreamer existente con Kinesis Video Streams. Tras la integraciónGStreamer, puede transmitir vídeo desde una cámara web o una cámara del Real Time Streaming Protocol (RTSP) a Kinesis Video Streams para reproducirlo, almacenarlo y analizarlo más a fondo en tiempo real o posteriormente.

El GStreamer complemento gestiona automáticamente la transferencia de su transmisión de vídeo a Kinesis Video Streams al encapsular la funcionalidad proporcionada por el productor de Kinesis Video SDK Streams GStreamer en un elemento receptor,. kvssink El GStreamer marco proporciona un entorno gestionado estándar para crear el flujo de contenido multimedia desde un dispositivo, como una cámara u otra fuente de vídeo, para su posterior procesamiento, renderización o almacenamiento.

La GStreamer canalización suele consistir en el enlace entre una fuente (cámara de vídeo) y el elemento receptor (ya sea un reproductor para renderizar el vídeo o un almacenamiento para recuperarlo sin conexión a Internet). En este ejemplo, se utiliza el SDK elemento Producer como receptor o destino multimedia de la fuente de vídeo (cámara web o cámara IP). El elemento del complemento que lo encapsula y, a SDK continuación, envía la transmisión de vídeo a Kinesis Video Streams.

En este tema se describe cómo crear una canalización GStreamer multimedia capaz de transmitir vídeo desde una fuente de vídeo, como una cámara web o una transmisión, normalmente conectada a Kinesis Video RTSP Streams a través de etapas de codificación intermedias (mediante codificación H.264). Cuando la transmisión de vídeo esté disponible como transmisión de vídeo de Kinesis, podrá utilizarla Vea la salida de las cámaras mediante la biblioteca de analizadores para seguir procesando, reproduciendo, almacenando o analizando la transmisión de vídeo.

Vista funcional del canal GStreamer multimedia para la transmisión de vídeo desde una cámara al servicio.

Descargue, cree y configure el GStreamer elemento

El ejemplo del GStreamer complemento se incluye con el productor de Kinesis Video Streams C++SDK. Para obtener información sobre SDK los requisitos previos y la descarga, consulte. Descargue y configure el código de la biblioteca del productor de C++

Puede crear el receptor del productor SDK GStreamer como una biblioteca dinámica en macOS, Ubuntu, Raspberry Pi o Windows. El GStreamer complemento se encuentra en tu build directorio. Para cargar este complemento, debe estar en suGST_PLUGIN_PATH. Ejecute el siguiente comando:

export GST_PLUGIN_PATH=`pwd`/build
nota

En macOS, solo puede transmitir vídeo desde una cámara de red cuando se ejecuta GStreamer en un contenedor Docker. No se admite la transmisión de vídeo desde una USB cámara en macOS en un contenedor Docker.

Ejecuta el elemento GStreamer

Para ejecutar GStreamer con el elemento SDK productor de Kinesis Video Streams como receptor, utilice gst-launch-1.0 el comando. Utilice los elementos originales que sean adecuados para el GStreamer complemento que vaya a utilizar. Por ejemplo, v4l2src para dispositivos v4l2 en sistemas Linux o rtspsrc para dispositivos. RTSP Especifique kvssink como receptor (destino final de la canalización) el vídeo al productor. SDK

Además de proporcionar las credenciales y proporcionar una región, el kvssink elemento tiene el siguiente parámetro obligatorio:

  • stream-name— El nombre del Kinesis Video Streams de destino.

Para obtener información acerca de los parámetros opcionales kvssink, consulte GStreamerreferencia de parámetros de elementos.

Para obtener la información más reciente sobre los GStreamer complementos y los parámetros, consulte GStreamerComplementos. También puedes usar el gst-inspect-1.0 comando seguido del nombre de un GStreamer elemento o complemento para imprimir su información y comprobar que está disponible en tu dispositivo:

gst-inspect-1.0 kvssink

Si la compilación kvssink ha fallado o GST PLUGIN _ _ no PATH está configurado correctamente, el resultado tendrá un aspecto similar al siguiente:

No such element or plugin 'kvssink'

Ejemplo de comandos de GStreamer lanzamiento

Los siguientes ejemplos muestran cómo usar el kvssink GStreamer complemento para transmitir vídeo desde diferentes tipos de dispositivos.

Ejemplo 1: Transmitir vídeo desde una RTSP cámara en Ubuntu

El siguiente comando crea una GStreamer canalización en Ubuntu que transmite desde una RTSP cámara de red mediante el complemento rtspsrcGStreamer:

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

Ejemplo 2: Codificar y transmitir vídeo desde una cámara en Ubuntu USB

El siguiente comando crea una GStreamer canalización en Ubuntu que codifica la transmisión de una USB cámara en formato H.264 y la transmite a Kinesis Video Streams. En este ejemplo se utiliza el complemento v4l2src. GStreamer

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"

Ejemplo 3: Transmite vídeo precodificado desde una cámara en Ubuntu USB

El siguiente comando crea una GStreamer canalización en Ubuntu que transmite vídeo que la cámara ya ha codificado en formato H.264 a Kinesis Video Streams. En este ejemplo se utiliza el complemento GStreamerv4l2src.

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"

Ejemplo 4: Transmitir vídeo desde una cámara de red en macOS

El siguiente comando crea una GStreamer canalización en macOS que transmite vídeo a Kinesis Video Streams desde una cámara de red. En este ejemplo se utiliza el complemento rtspsrcGStreamer.

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"

Ejemplo 5: Transmita vídeo desde una cámara de red en Windows

El siguiente comando crea una GStreamer canalización en Windows que transmite vídeo a Kinesis Video Streams desde una cámara de red. En este ejemplo se utiliza el complemento rtspsrcGStreamer.

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"

Ejemplo 6: Transmite vídeo desde una cámara de Raspberry Pi

El siguiente comando crea una GStreamer canalización en Raspberry Pi que transmite vídeo a Kinesis Video Streams. En este ejemplo se utiliza el complemento GStreamerv4l2src.

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"

Ejemplo 7: Transmite audio y vídeo en Raspberry Pi y Ubuntu

Descubra cómo ejecutar el comando gst-launch-1.0 para comenzar el streaming de audio y vídeo en Raspberry-PI y Ubuntu.

Ejemplo 8: Transmite audio y vídeo desde las fuentes del dispositivo en macOS

Descubra cómo ejecutar el comando gst-launch-1.0 para comenzar el streaming de audio y vídeo en MacOS.

Ejemplo 9: Sube MKV un archivo que contenga audio y vídeo

Vea cómo ejecutar el comando gst-launch-1.0 para cargar un MKV archivo que contenga audio y vídeo. Necesitará un archivo de MKV prueba con H.264 y contenido multimedia codificado. AAC

Ejecute el GStreamer elemento en un contenedor de Docker

Docker es una plataforma para desarrollar, implementar y ejecutar aplicaciones utilizando contenedores. El uso de Docker para crear la GStreamer canalización estandariza el entorno operativo de Kinesis Video Streams, lo que agiliza la creación y el uso de la aplicación.

Para instalar y configurar Docker, consulte lo siguiente:

Tras instalar Docker, puede descargar el SDK productor de C++ (GStreamery el complemento) de Kinesis Video Streams desde Amazon Elastic Container Registry mediante uno de los comandos que se proporcionan a continuacióndocker pull.

Para ejecutar GStreamer el elemento SDK productor de Kinesis Video Streams como sumidero en un contenedor de Docker, haga lo siguiente:

Autentique su cliente de Docker

Autentica tu cliente de Docker en el ECR registro de Amazon del que quieres extraer la imagen. Debe obtener los tokens de autenticación para cada registro utilizado. Los tokens son válidos durante 12 horas. Para obtener más información, consulte Autenticación de registros en la Guía del usuario de Amazon Elastic Container Registry.

ejemplo : Autenticarse con Amazon ECR

Para autenticarte con AmazonECR, copia y pega el siguiente comando tal y como se muestra.

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

Si la acción se realiza correctamente, se muestra el texto Login Succeeded (Inicio de sesión correcto).

Descargue la imagen de Docker para Ubuntu, macOS, Windows o Raspberry Pi

Descargue la imagen de Docker en su entorno de Docker con uno de los siguientes comandos, en función de su sistema operativo:

Descargue la imagen de Docker para Ubuntu

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

Descargue la imagen de Docker para macOS

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

Descargue la imagen de Docker para Windows

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

Descargue la imagen de Docker para Raspberry Pi

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

Para comprobar que la imagen se ha agregado correctamente, utilice el comando siguiente:

docker images

Ejecute la imagen de Docker

Utilice uno de los comandos siguientes para ejecutar la imagen de Docker, en función de su sistema operativo:

Ejecute la imagen de Docker en 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

Ejecuta la imagen de Docker en macOS

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

Ejecute la imagen de Docker en 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

Ejecute la imagen de Docker en 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 lanza el contenedor y le presenta una línea de comandos para usar los comandos dentro del contenedor.

En el contenedor, establezca las variables de entorno utilizando el siguiente comando:

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

Comience a transmitir y kvssink utilice el gst-launch-1.0 para ejecutar una canalización adecuada para su dispositivo y fuente de vídeo. Para ver, por ejemplo, canalizaciones, consulteEjemplo de comandos de GStreamer lanzamiento.