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 el código de la aplicación a fin de enviar datos multimedia desde un dispositivo a una transmisión de vídeo de Kinesis.

Modelo de objetos

La biblioteca de productores C de Kinesis Video Streams 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 C de Kinesis Video Streams incluye PIC con una capa adicional de API que permite realizar llamadas y eventos específicos para cada escenario y plataforma. La biblioteca de productores C de Kinesis Video Streams incluye los siguientes componentes basados en PIC:

  • Proveedores de información del dispositivo: 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 aplicaciones que puede optimizar el almacén de contenido en función de la cantidad y los tipos de transmisiones que gestiona la aplicación y de la cantidad de almacenamiento en búfer requerida configurada 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 transmisión. 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 la 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 reintentar la transmisión en caso de errores. La API de Callback Provider utiliza varios argumentos para configurarse, como la información de autorización Región de AWS y. Esto se hace mediante el uso de certificados de IoT o mediante el uso de AWS AccessKeyIdSecretKey, oSessionToken. 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 para escenarios multipista. Tiene un comportamiento predeterminado, que puede personalizar para gestionar la lógica específica de la aplicación. También simplifica el empaquetado de los metadatos del marco en la estructura del marco PIC antes de enviarlo 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.

Incluir contenido multimedia en streaming

Puede utilizar los métodos proporcionados por la biblioteca C (por ejemploPutKinesisVideoFrame) para incluir 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 demuestra cómo utilizar el cliente de Kinesis Video Streams y las fuentes multimedia en 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, se proporcionan las credenciales especificando un perfil que se ha configurado en el 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 región para el desarrollo.

  • Integración con el 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 hace validando las autoridades certificadoras (CA) del almacén público de certificados. 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:

  • Instale las siguientes dependencias de compilación para Ubuntu (las respuestas a los comandos de versión están truncadas):

    • Instale Git: sudo apt-get install git

      $ git --version git version 2.14.1
    • Instale CMake: sudo apt-get install cmake

      $ cmake --version cmake version 3.9.1
    • Instale Libtool: sudo apt-get install libtool

      2.4.6-2
    • Instale libtool-bin: sudo apt-get install libtool-bin

      $ libtool --version libtool (GNU libtool) 2.4.6 Written by Gordon Matzigkeit, 1996
    • Instale GNU Automake: sudo apt-get install automake

      $ automake --version automake (GNU automake) 1.15
    • Instale GNU Bison: sudo apt-get install bison

      $ bison -V bison (GNU Bison) 3.0.4
    • Instale G++: sudo apt-get install g++

      g++ --version g++ (Ubuntu 7.2.0-8ubuntu3) 7.2.0
    • Instale curl: sudo apt-get install curl

      $ curl --version curl 7.55.1 (x86_64-pc-linux-gnu) libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
    • Instale pkg-config: sudo apt-get install pkg-config

      $ pkg-config --version 0.29.1
    • Instale Flex: sudo apt-get install flex

      $ flex --version flex 2.6.1
    • Instale OpenJDK: sudo apt-get install openjdk-8-jdk

      $ java -version openjdk version "1.8.0_171"
    • Establezca la variable de entorno JAVA_HOME: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

    • Ejecute el script de compilación: ./install-script

Paso siguiente

Paso 1: descargar el código de C For