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 C Producer 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 de productores de Kinesis Video Streams C se basa en un componente común denominado Platform Independent Codebase (PIC), que está disponible GitHub en https://github.com/awslabs/ -pic/. amazon-kinesis-video-streams El PIC contiene una lógica empresarial independiente de la plataforma para los componentes fundamentales. La biblioteca de productores de Kinesis Video Streams C incluye el PIC con una capa adicional de API que permite realizar llamadas y eventos específicos de cada escenario y plataforma. La biblioteca de productores de Kinesis Video Streams C incluye los siguientes componentes basados en PIC:

  • Proveedores de información de dispositivos: expone la DeviceInfo estructura que se puede suministrar directamente a la API PIC. Puede configurar un conjunto de proveedores, incluido un proveedor optimizado para escenarios de aplicación que puede optimizar el almacén de contenido en función del número y los tipos de transmisiones que gestiona la aplicación y de la cantidad de almacenamiento en búfer necesario configurado en función de la cantidad de RAM disponible.

  • Proveedor de información de transmisión: expone la StreamInfo estructura que se puede suministrar directamente a la API PIC. Hay un conjunto de proveedores que son específicos para los tipos de aplicaciones y los tipos comunes de escenarios de streaming. Estos incluyen proveedores como vídeo, audio y audio y vídeo multipista. Cada uno de estos escenarios tiene valores predeterminados que puede personalizar de acuerdo con los requisitos de su aplicación.

  • Proveedor de devolución de llamadas: expone la ClientCallbacks estructura que se puede suministrar directamente a la API PIC. Esto incluye un conjunto de proveedores de devolución de llamadas para redes (devoluciones de llamadas de API basadas en CURL), autorización (API de AWS credenciales) y reintentos de transmisión en caso de errores. La API del proveedor de llamadas requiere varios argumentos para configurarla, como la información y la información de autorización. Región de AWS Esto se hace mediante certificados de IoT o mediante AWS AccessKeyId SecretKey, o SessionToken. Puede mejorar el proveedor de devolución de llamada mediante devoluciones de llamada personalizadas si la aplicación requiere un procesamiento mayor de una devolución de llamada en particular para llevar a cabo determinada lógica específica de la aplicación.

  • FrameOrderCoordinator— Ayuda a gestionar la sincronización de audio y vídeo en escenarios multipista. Tiene un comportamiento predeterminado, que puede personalizar para gestionar la lógica específica de su aplicación. También simplifica el empaquetado de metadatos del marco en la estructura PIC Frame antes de enviarlos a la API PIC de capa inferior. Para escenarios que no son multipista, este componente se utiliza como acceso directo a la API de PIC putFrame.

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

  • KinesisVideoClient— Contiene información sobre su dispositivo y mantiene las llamadas para informar sobre los eventos de Kinesis Video Streams.

  • KinesisVideoStream— Representa 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.

Poner contenido multimedia en la transmisión

Puede usar los métodos proporcionados por la biblioteca C (por ejemplo,PutKinesisVideoFrame) 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.

Procedimiento: Uso del SDK de C Producer

Este procedimiento muestra cómo utilizar el cliente de Kinesis Video Streams y las fuentes multimedia de una aplicación C para enviar fotogramas de vídeo codificados en H.264 a su 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 credenciales. AWS 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

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

Siguiente paso

Paso 1: descarga el código de la biblioteca C Producer