

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
<a name="examples-renderer"></a>

O [Transmita usando a biblioteca de analisadores](parser-library.md) 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 [JCodec](http://jcodec.org/)para decodificar os quadros codificados em H.264 que são ingeridos usando o aplicativo. [Exemplo: Plugin SDK do GStreamer produtor do Kinesis Video Streams - kvssink](examples-gstreamer-plugin.md) Depois que o quadro é decodificado usando JCodec, a imagem visível é renderizada usando. [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html) 

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
<a name="examples-renderer-prerequisites"></a>

Para examinar e usar a biblioteca de exemplo Renderizador, você precisa fazer o seguinte:
+ Uma conta da Amazon Web Services (AWS). Se você ainda não tiver uma AWS conta, consulte [Introdução ao Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/getting-started.html).
+ [Um ambiente de desenvolvimento integrado (IDE) Java, como [Eclipse Java Neon](https://www.eclipse.org/downloads/packages/release/neon/3/eclipse-jee-neon-3) ou JetBrains IntelliJ Idea.](https://www.jetbrains.com/idea/download/)

## Executando o exemplo do renderizador
<a name="examples-renderer-procedure"></a>

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
   ```

1. Abra o IDE do Java que você está usando (por exemplo, [Eclipse](https://www.eclipse.org/) ou [IntelliJ IDEA](https://www.jetbrains.com/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.

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

1. Remova a diretiva `@Ignore` do arquivo.

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

1. Execute o teste do `KinesisVideoRendererExample`.

## Como funciona
<a name="examples-renderer-howitworks"></a>

**Topics**
+ [Envio de dados do MKV](#examples-renderer-howitworks-send)
+ [Analisando fragmentos de MKV em quadros](#examples-renderer-howitworks-parse)
+ [Decodificando e exibindo o quadro](#examples-renderer-howitworks-display)

### Envio de dados do MKV
<a name="examples-renderer-howitworks-send"></a>

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](parser-library-write.md#parser-library-write-example-putmedia) na documentação [Transmita usando a biblioteca de analisadores](parser-library.md).

### Analisando fragmentos de MKV em quadros
<a name="examples-renderer-howitworks-parse"></a>

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](parser-library-write.md#parser-library-write-example-getmedia) na documentação [Transmita usando a biblioteca de analisadores](parser-library.md).

### Decodificando e exibindo o quadro
<a name="examples-renderer-howitworks-display"></a>

O exemplo então decodifica e exibe o quadro usando [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html).

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](https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html). Para obter exemplos que mostram como trabalhar com `BufferedImage`, consulte [Leitura/carregamento de uma imagem](https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html).