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 C++ fornece os seguintes objetos para gerenciar o envio de dados para um stream de vídeo do Kinesis:

  • KinesisVideoProducer: contém informações sobre sua fonte de mídia e AWS credenciais e mantém retornos de chamada para relatar eventos do Kinesis Video Streams.

  • KinesisVideoStream: representa o stream de vídeo do Kinesis. Contém 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,PutFrame) 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.

Interfaces de retorno de chamada

Esta camada expõe um conjunto de interfaces de retorno de chamada, que permitem a comunicação com a camada do aplicativo. Essas interfaces de retorno de chamada incluem o seguinte:

  • Interface de retorno de chamada de serviço (CallbackProvider): a biblioteca invoca eventos obtidos por meio dessa interface quando cria um fluxo, obtém uma descrição do fluxo e exclui um fluxo.

  • Interface de eventos de armazenamento baixo ou estado de cliente pronto (ClientCallbackProvider): a biblioteca invoca eventos nessa interface quando o cliente está pronto ou quando detecta o risco de ficar sem armazenamento ou com pouca memória disponível.

  • Interface de retorno de chamada de eventos do streaming (StreamCallbackProvider): a biblioteca invoca eventos nessa interface quando ocorrem eventos de streaming, como streaming que entra no estado pronto, quadros perdidos ou erros de streaming.

O Kinesis Video Streams fornece implementações padrão para essas interfaces. Você também pode fornecer sua própria implementação personalizada, por exemplo, se precisar de uma lógica de rede personalizada ou quiser expor uma condição de armazenamento insuficiente à interface do usuário.

Para obter mais informações sobre retornos de chamadas nas Bibliotecas de produtores, consulte Retornos de chamada do SDK do produtor.

Procedimento: usar o Producer SDK em C++

Esse procedimento demonstra como usar o cliente e as fontes de mídia do Kinesis Video Streams em um aplicativo C++ para enviar dados para seu 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

      nota

      Isso só é necessário se você estiver criando a Java Native Interface (JNI).

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

Próxima etapa

Etapa 1: Fazer download e configurar o código da Biblioteca de produtores C++