Exemplo: análise e renderização de fragmentos do Kinesis Video Streams - 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á.

Exemplo: análise e renderização de fragmentos do Kinesis Video Streams

O Biblioteca do analisador de streaming contém um aplicativo de demonstração chamado KinesisVideoRendererExample que demonstra a análise e a renderização de fragmentos de stream de vídeo do Amazon Kinesis. O exemplo usa JCodec para decodificar os quadros codificados em H.264 que são recebidos por meio do aplicativo Exemplo: plug-in GStreamer do SDK do Kinesis Video Streams Producer. Após a decodificação do quadro por meio de JCodec, a imagem visível é renderizada por meio de JFrame.

O exemplo mostra como:

  • Recupere quadros de um stream de vídeo do Kinesis usando GetMedia a API e renderize o stream para visualização.

  • Visualize o conteúdo de vídeo dos streams em um aplicativo personalizado em vez de usar o console do Kinesis Video Streams.

Você também pode usar as classes neste exemplo para visualizar o conteúdo do stream de vídeo do Kinesis que não está codificado como H.264, como um stream de arquivos JPEG que não precisam ser decodificados antes de serem exibidos.

O procedimento a seguir demonstra como configurar e usar o aplicativo de demonstração Renderizador.

Pré-requisitos

Para examinar e usar a biblioteca de exemplo Renderizador, você precisa fazer o seguinte:

Executando o exemplo do renderizador

  1. Crie um diretório e, em seguida, clone o código-fonte de exemplo do GitHub repositório.

    git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
  2. Abra o IDE do Java que você está usando (por exemplo, Eclipse ou IntelliJ IDEA) e importe o projeto Apache Maven que você obteve por download:

    • No Eclipse: escolha File, Import, Maven e Existing Maven Projects. Navegue até o diretório kinesis-video-streams-parser-lib.

    • No IntelliJ Idea: escolha Import. Navegue até o arquivo pom.xml na raiz do pacote que você obteve por download.

      nota

      Se IntelliJ não puder encontrar suas dependências, você pode ter de fazer o seguinte:

      • Limpar compilação: escolha File (Arquivo), Settings (Configurações), Build, Execution, Deployment (Compilação, Execução, Implantação), Compiler (Compilador). Verifique se a opção Limpar diretório de saída na reconstrução está selecionada e escolha Construir, Construir projeto.

      • Reimportar o projeto: Abra o menu de contexto (clique com botão direito) no projeto e escolha Maven, Reimport (Reimportar).

    Para obter mais informações, consulte a documentação relacionada ao IDE.

  3. No Java IDE, abra src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest.

  4. Remova a diretiva @Ignore do arquivo.

  5. Atualize o .stream parâmetro com o nome do seu stream de vídeo do Kinesis.

  6. Execute o teste do KinesisVideoRendererExample.

Como funciona

Envio de dados do MKV

O exemplo envia amostras de dados MKV do rendering_example_video.mkv arquivo, usando PutMedia para enviar dados de vídeo para um stream chamado render-example-stream.

O aplicativo cria um PutMediaWorker:

PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);

Para obter mais informações sobre a classe PutMediaWorker, consulte Ligue PutMedia na documentação Biblioteca do analisador de streaming.

Analisando fragmentos de MKV em quadros

O exemplo recupera e analisa os fragmentos do MKV do streaming por meio de um GetMediaWorker:

GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);

Para obter mais informações sobre a classe GetMediaWorker, consulte Ligue GetMedia na documentação Biblioteca do analisador de streaming.

Decodificando e exibindo o quadro

O exemplo decodifica e exibe o quadro usando JFrame.

O seguinte exemplo de código vem da classe KinesisVideoFrameViewer, que estende JFrame:

public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }

A imagem é exibida como uma instância de java.awt.image. BufferedImage. Para obter exemplos que mostram como trabalhar com BufferedImage, consulte Leitura/carregamento de uma imagem.