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çãoPutMedia
, 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, seGetMedia
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 usarGetMedia
, os aplicativos podem processar dados que estão arquivados no armazenamento de dados e, à medida que o aplicativo recupera o atraso, oGetMedia
continua alimentando os dados de mídia em tempo real assim que eles chegam. -
GetMediaFromFragmentList
(eListFragments
) – 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
APIsListFragments
eGetMediaFromFragmentList
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 aplicativosMapReduce
, 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:
-
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.
-
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
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:
-
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.Se você estiver recuperando os endpoints dos Mídia arquivada do Amazon Kinesis Video Streams serviços Mídia do Amazon Kinesis Video Streams ou, use. GetDataEndpoint
Se você estiver recuperando os endpoints paraAmazon Kinesis Video Streams,Armazenamento web de vídeo do Amazon Kinesis RTC, ou Kinesis Video Signaling, use. GetSignalingChannelEndpoint
Armazene em cache e reutilize o endpoint.
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.