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 Transmita usando a biblioteca de analisadores 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 é usado JCodecpara decodificar os quadros codificados em H.264 que são ingeridos usando o aplicativo. Exemplo: Plugin de produtor do Kinesis Video SDK GStreamer Streams - kvssink Depois que o quadro é decodificado usandoJCodec, a imagem visível é renderizada usando. JFrame

O exemplo mostra como:

  • Recupere quadros de um stream de vídeo do Kinesis usando GetMedia API o 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 JPEG arquivos 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 Java IDE que você está usando (por exemplo, Eclipse ou IDEAIntelliJ) e importe o projeto Apache Maven que você baixou:

    • 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 IDE documentação relacionada.

  3. Do seu JavaIDE, abrasrc/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 MKV de dados

O exemplo envia MKV dados de amostra 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 Transmita usando a biblioteca de analisadores.

Analisando MKV fragmentos em quadros

O exemplo então recupera e analisa os MKV fragmentos do fluxo usando: 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 Transmita usando a biblioteca de analisadores.

Decodificando e exibindo o quadro

O exemplo então 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.