Uso de la C++ Producer Library - 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.

Uso de la C++ Producer Library

Puede utilizar la biblioteca de productores de C++ proporcionada por Amazon Kinesis Video Streams para escribir código de aplicación para enviar datos multimedia desde un dispositivo a una transmisión de vídeo de Kinesis.

Modelo de objetos

La biblioteca C++ proporciona los siguientes objetos para gestionar el envío de datos a una transmisión de vídeo de Kinesis:

  • KinesisVideoProducer: contiene información sobre su fuente multimedia y sus AWS credenciales, y mantiene las llamadas para informar sobre los eventos de Kinesis Video Streams.

  • KinesisVideoStream: Representa la transmisión de vídeo de Kinesis. Contiene información sobre los parámetros de la transmisión de vídeo, como el nombre, el período de retención de datos y el tipo de contenido multimedia.

Introducir contenido multimedia en la transmisión

Puedes usar los métodos proporcionados por la biblioteca de C++ (por ejemplo,PutFrame) para colocar datos en el KinesisVideoStream objeto. A continuación, la biblioteca administra el estado interno de los datos, lo que puede incluir las siguientes tareas:

  • Realización de la autenticación.

  • Observación de la latencia de red. Si la latencia es demasiado elevada, la biblioteca podría optar por anular fotogramas.

  • Seguimiento del estado del streaming en curso.

Interfaces de devolución de llamada

Esta capa expone un conjunto de interfaces de devolución de llamada, lo que le permite comunicarse con la capa de la aplicación. Entre estas interfaces de devolución de llamada se incluyen las siguientes:

  • Interfaz de llamadas de servicio (CallbackProvider): la biblioteca invoca los eventos obtenidos a través de esta interfaz cuando crea una transmisión, obtiene una descripción de la secuencia y elimina una transmisión.

  • Interfaz de estado de preparación del cliente o eventos de bajo almacenamiento (ClientCallbackProvider): la biblioteca invoca eventos en esta interfaz cuando el cliente está preparado o cuando detecta que podría quedarse sin espacio de almacenamiento o memoria disponibles.

  • Interfaz de devolución de llamada de eventos de transmisión (StreamCallbackProvider): la biblioteca invoca eventos en esta interfaz cuando se producen eventos en la transmisión, como que esta adopte el estado de preparación, se produzca anulación de fotogramas o errores en la transmisión.

Kinesis Video Streams proporciona implementaciones predeterminadas para estas interfaces. También puede proporcionar su propia implementación personalizada, por ejemplo, si necesita una lógica de red personalizada o si desea exponer una condición de bajo almacenamiento en la interfaz de usuario.

Para obtener más información sobre las devoluciones de llamadas en las Producer Libraries, consulte Retrollamadas del SDK del productor.

Procedimiento: Uso del SDK de C++ Producer

Este procedimiento muestra cómo utilizar el cliente de Kinesis Video Streams y las fuentes multimedia en una aplicación de C++ para enviar datos a la transmisión de vídeo de Kinesis.

El procedimiento incluye los pasos siguientes:

Requisitos previos

  • Credenciales: en el código de ejemplo, proporciona las credenciales especificando un perfil que ha configurado en su archivo de perfil de AWS credenciales. Si aún no lo ha hecho, configure en primer lugar su perfil de credenciales.

    Para obtener más información, consulte Configurar AWS credenciales y regiones para el desarrollo.

  • Integración del almacén de certificados: la biblioteca de productores de Kinesis Video Streams debe establecer una relación de confianza con el servicio al que llama. Esto se realiza mediante la validación de las autoridades de certificación (CA) en el almacén de certificados público. En los modelos basados en Linux, este almacén se encuentra en el directorio /etc/ssl/.

    Descargue el certificado de la siguiente ubicación en el almacén de certificados:

    https://www.amazontrust.com/repository/SFSRootCAG2.pem

  • Instale las siguientes dependencias de compilación para macOS:

    • Autoconf 2.69 (Licencia GPLv3+/Autoconf: GNU GPL versión 3 o posterior)

    • CMake 3.7 o 3.8

    • Pkg-Config

    • xCode (macOS) / clang / gcc (xcode-select version 2347)

    • Kit de desarrollo de Java (JDK) (para la compilación de JNI de Java)

    • Lib-Pkg

  • Instale las siguientes dependencias de compilación para Ubuntu:

    • Git: sudo apt install git

    • CMake: sudo apt install cmake

    • G++: sudo apt install g++

    • pkg-config: sudo apt install pkg-config

    • OpenJDK: sudo apt install openjdk-8-jdk

      nota

      Esto solo es necesario si está creando la interfaz nativa de Java (JNI).

    • Establezca la variable de entorno JAVA_HOME: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

Siguiente paso

Paso 1: descargar y configurar el código de la C++ Producer Library