Suporte para Kinesis API Video Streams e bibliotecas de produtores - 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á.

Suporte para Kinesis API Video Streams e bibliotecas de produtores

O Kinesis Video APIs Streams permite que você crie e gerencie streams e leia ou grave dados de mídia de e para um stream. O console do Kinesis Video Streams, além da funcionalidade de administração, também oferece suporte video-on-demand ao vivo e à reprodução. O Kinesis Video Streams também fornece um conjunto de bibliotecas de produtores que você pode usar no código do seu aplicativo para extrair dados de suas fontes de mídia e fazer o upload para o stream de vídeo do Kinesis.

Kinesis Video Streams API

O Kinesis Video APIs Streams fornece a criação e o gerenciamento do Kinesis Video Streams. Ele também fornece APIs a leitura e gravação de dados de mídia em um stream, da seguinte forma:

  • Produtor API — O Kinesis Video Streams PutMedia API fornece uma maneira de gravar dados de mídia em um stream de vídeo do Kinesis. Em uma solicitação PutMedia, o produtor envia um streaming de fragmentos de mídia. Um fragmento é uma sequência independente de quadros. Os quadros que pertencem a um fragmento não devem depender de nenhum quadro de outros fragmentos. Para obter mais informações, consulte PutMedia.

    À medida que os fragmentos chegam, o Kinesis Video Streams atribui um número de fragmento exclusivo, em ordem crescente. Ele também armazena registros de data e hora do lado do produtor e do lado do servidor para cada fragmento, como metadados específicos do Kinesis Video Streams.

  • Consumidor APIs — Os consumidores podem usar o seguinte APIs para obter dados de um stream:

    • GetMedia- Ao usar issoAPI, os consumidores devem identificar o fragmento inicial. APIEm seguida, retorna fragmentos na ordem em que foram adicionados ao fluxo (em ordem crescente por número de fragmentos). Os dados de mídia nos fragmentos são compactados em um formato estruturado, como Matroska (). MKV Para obter mais informações, consulte GetMedia.

      nota

      GetMedia sabe onde os fragmentos estão (arquivados no armazenamento de dados ou disponíveis em tempo real). Por exemplo, se GetMedia determinar que o fragmento inicial está arquivado, ele começará a retornar fragmentos do armazenamento de dados. Quando ele precisa retornar fragmentos mais novos que ainda não foram arquivados, GetMedia muda para a leitura de fragmentos de um buffer de fluxo na memória.

      Este é um exemplo de um consumidor contínuo, que processa fragmentos na ordem em que eles são ingeridos pelo streaming.

      GetMedia permite que os aplicativos de processamento de vídeo falhem ou atrasem e, em seguida, recuperem o atraso sem esforço adicional. Ao usar GetMedia, os aplicativos podem processar dados que estão arquivados no armazenamento de dados e, à medida que o aplicativo recupera o atraso, o GetMedia continua alimentando os dados de mídia em tempo real assim que eles chegam.

    • GetMediaFromFragmentList (e ListFragments) – aplicativos de processamento em lote são considerados consumidores off-line. Consumidores off-line podem optar por buscar explicitamente determinados fragmentos de mídia ou faixas de vídeo combinando e. ListFragments GetMediaFromFragmentList APIs ListFragmentse GetMediaFromFragmentList permitir que um aplicativo identifique segmentos de vídeo para um determinado intervalo de tempo ou intervalo de fragmentos e, em seguida, busque esses fragmentos sequencialmente ou em paralelo para processamento. Esta abordagem é adequada para pacotes de aplicativos MapReduce, que precisam processar rapidamente grandes quantidades de dados em paralelo.

      Por exemplo, suponha que um consumidor queira processar fragmentos de vídeo de um dia. O consumidor deve fazer o seguinte:

      1. Obtenha uma lista de fragmentos chamando ListFragments API e especificando um intervalo de tempo para selecionar a coleção de fragmentos desejada.

        APIRetorna metadados de todos os fragmentos no intervalo de tempo especificado. Os metadados fornecem informações como número do fragmento, registros de data e hora do lado do produtor e do lado do servidor, etc.

      2. Obter a lista de metadados do fragmento e recuperar os fragmentos, em qualquer ordem. Por exemplo, para processar todos os fragmentos do dia, o consumidor pode optar por dividir a lista em sublistas e fazer com que os trabalhadores (por exemplo, várias EC2 instâncias da Amazon) busquem os fragmentos em paralelo usando GetMediaFromFragmentList o e os processem em paralelo.

O diagrama a seguir mostra o fluxo de dados para fragmentos e partes durante essas chamadas. API

Diagrama mostrando o fluxo de dados para fragmentos e partes durante as chamadas API

Quando um produtor envia uma solicitação PutMedia, ele envia metadados de mídia para a carga útil e, em seguida, uma sequência de fragmentos de dados de mídia. Ao receber os dados, o Kinesis Video Streams armazena os dados de mídia recebidos como partes do Kinesis Video Streams. Cada bloco consiste no seguinte:

  • Uma cópia dos metadados da mídia

  • Um fragmento

  • Metadados específicos do Kinesis Video Streams; por exemplo, o número do fragmento e os carimbos de data/hora do lado do servidor e do produtor

Quando um consumidor solicita metadados de mídia, o Kinesis Video Streams retorna um stream de partes, começando com o número do fragmento que você especifica na solicitação.

Se você ativar a persistência de dados para o stream, depois de receber um fragmento no stream, o Kinesis Video Streams também salvará uma cópia do fragmento no armazenamento de dados.

Padrão de descoberta de endpoints

Plano de controle REST APIs

Para acessar o plano de REST APIs controle do Kinesis Video Streams, use os endpoints do serviço Kinesis Video Streams.

Plano de dados REST APIs

O Kinesis Video Streams foi criado usando uma arquitetura celular para garantir melhores propriedades de escalabilidade e isolamento de tráfego. Como cada stream é mapeado para uma célula específica em uma região, seu aplicativo deve usar os endpoints corretos específicos da célula para os quais seu stream foi mapeado. Ao acessar o plano de dados RESTAPIs, você mesmo precisará gerenciar e mapear os endpoints corretos. Esse processo, o padrão de descoberta de endpoints, é descrito abaixo:

  1. O padrão de descoberta do endpoint começa com uma chamada para uma das GetEndpoints ações. Essas ações pertencem ao Plano de Controle.

  2. Armazene em cache e reutilize o endpoint.

  3. Se o endpoint em cache não funcionar mais, faça uma nova chamada GetEndpoints para atualizar o endpoint.

Bibliotecas de produtores

Depois de criar um stream de vídeo do Kinesis, você pode começar a enviar dados para o stream. No código do seu aplicativo, você pode usar essas bibliotecas para extrair dados de suas fontes de mídia e fazer o upload para o stream de vídeo do Kinesis. Para obter mais informações sobre bibliotecas de produtores, consulte Faça o upload para o Kinesis Video Streams.