Usar a Biblioteca de produtores C - Amazon Kinesis Video Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar a Biblioteca de produtores C

Você pode usar a biblioteca C Producer fornecida pelo Amazon Kinesis Video Streams para escrever código de aplicativo para enviar dados de mídia de um dispositivo para um stream de vídeo do Kinesis.

Modelo de objeto

A Biblioteca de Produtores C do Kinesis Video Streams é baseada em um componente comum chamado Platform Independent Codebase (PIC), que está GitHub disponível em https://github.com/awslabs/ -pic/. amazon-kinesis-video-streams O PIC contém lógica de negócios independente de plataforma para os componentes fundamentais. A Kinesis Video Streams C Producer Library combina o PIC com uma camada adicional de API que permite retornos de chamada e eventos específicos do cenário e da plataforma. A Biblioteca de Produtores C do Kinesis Video Streams tem os seguintes componentes criados com base no PIC:

  • Provedores de informações do dispositivo — expõe a DeviceInfo estrutura que pode ser fornecida diretamente à API PIC. Você pode configurar um conjunto de provedores, incluindo um provedor otimizado para cenários de aplicativos que pode otimizar o armazenamento de conteúdo com base no número e nos tipos de fluxos que seu aplicativo manipula e na quantidade de buffer necessária configurada com base na quantidade de RAM disponível.

  • Provedor de informações de streaming — expõe a StreamInfo estrutura que pode ser fornecida diretamente à API PIC. Há um conjunto de provedores que são específicos para os tipos de aplicativos e os tipos comuns de cenários de streaming. Isso inclui provedores como vídeo, áudio e multifaixas de áudio e vídeo. Cada um desses cenários tem padrões que você pode personalizar de acordo com os requisitos do seu aplicativo.

  • Provedor de retorno de chamada — expõe a ClientCallbacks estrutura que pode ser fornecida diretamente à API PIC. Isso inclui um conjunto de provedores de retorno de chamada para rede (retornos de chamada de API baseados em CURL), autorização (API de AWS credenciais) e repetição de streaming em retornos de chamada com erros. A API do Callback Provider usa vários argumentos para ser configurada, como as informações Região da AWS de autorização. Isso é feito usando certificados de IoT ou usando AWS AccessKeyId, SecretKey, ou. SessionToken Você pode aprimorar o provedor de retorno de chamada com retornos de chamada personalizados se o seu aplicativo precisar de processamento adicional de um determinado retorno de chamada para obter alguma lógica específica do aplicativo.

  • FrameOrderCoordinator— Ajuda a gerenciar a sincronização de áudio e vídeo para cenários com várias faixas. Ele tem um comportamento padrão, que você pode personalizar para lidar com a lógica específica do seu aplicativo. Ele também simplifica o empacotamento de metadados do quadro na estrutura do PIC Frame antes de enviá-lo para a API PIC de camada inferior. Para cenários que não são de várias trilhas, esse componente é uma passagem para a API putFrame do PIC.

A biblioteca C fornece os seguintes objetos para gerenciar o envio de dados para um streaming de vídeo do Kinesis:

  • KinesisVideoClient— Contém informações sobre seu dispositivo e mantém retornos de chamada para relatar eventos do Kinesis Video Streams.

  • KinesisVideoStream— representa informações sobre os parâmetros do stream de vídeo, como nome, período de retenção de dados e tipo de conteúdo de mídia.

Colocando mídia no stream

Você pode usar os métodos fornecidos pela biblioteca C (por exemplo,PutKinesisVideoFrame) para colocar dados no KinesisVideoStream objeto. Em seguida, ela gerencia o estado interno dos dados, o que pode incluir as seguintes tarefas:

  • Realizar autenticação.

  • Verificar se há latência de rede. Se a latência for muito alta, a biblioteca poderá reduzir quadros.

  • Controlar status do streaming em andamento.

Procedimento: usar o C Producer SDK

Esse procedimento demonstra como usar o cliente e as fontes de mídia do Kinesis Video Streams em um aplicativo C para enviar quadros de vídeo codificados em H.264 para o stream de vídeo do Kinesis.

Este procedimento inclui as seguintes etapas:

Pré-requisitos

  • Credenciais — No código de exemplo, você fornece credenciais especificando um perfil que você configurou em seu arquivo de perfil de AWS credenciais. Primeiro, configure seu perfil de credenciais (se ainda não tiver feito isso).

    Para obter mais informações, consulte Configurar AWS credenciais e região para desenvolvimento.

  • Integração do armazenamento de certificados — A Biblioteca de Produtores do Kinesis Video Streams deve estabelecer confiança com o serviço que ela chama. Isso é feito por meio da validação das autoridades de certificação (CAs) no repositório público de certificados. Em modelos baseados em Linux, esse armazenamento está localizado no diretório /etc/ssl/.

    Faça download do certificado do seguinte local para o armazenamento de certificados:

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

  • Instale as seguintes dependências de compilação para o macOS:

    • Autoconf 2.69 (Licença GPLv3+/ Autoconf: GNU GPL versão 3 ou mais recente)

    • CMake 3.7 ou 3.8

    • Pkg-Config

    • xCode (macOS) / clang / gcc (xcode-select versão 2347)

    • Java Development Kit (JDK) (para compilação de JNI do Java)

    • Lib-Pkg

  • Instale as seguintes dependências de compilação para o Ubuntu:

    • Git: sudo apt install git

    • CMake: sudo apt install cmake

    • G++: sudo apt install g++

    • configuração do pacote: sudo apt install pkg-config

    • OpenJDK: sudo apt install openjdk-8-jdk

    • Defina a JAVA_HOME variável de ambiente: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

Próxima etapa

Etapa 1: Baixe o código da C Producer Library