

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejemplo: análisis y renderización de fragmentos de Kinesis Video Streams
<a name="examples-renderer"></a>

[Transmita usando la biblioteca de analizadores](parser-library.md)Contiene una aplicación de demostración denominada `KinesisVideoRendererExample` que muestra cómo analizar y renderizar fragmentos de transmisiones de vídeo de Amazon Kinesis. El ejemplo se utiliza [JCodec](http://jcodec.org/)para decodificar los fotogramas codificados en H.264 que se ingieren con la aplicación. [Ejemplo: complemento del GStreamer SDK para productores de Kinesis Video Streams: kvssink](examples-gstreamer-plugin.md) Después de decodificar el marco utilizando JCodec, la imagen visible se renderiza utilizando. [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html) 

Este ejemplo le muestra cómo hacer lo siguiente:
+ Recupere fotogramas de una transmisión de vídeo de Kinesis mediante la `GetMedia` API y procese la transmisión para su visualización.
+ Vea el contenido de vídeo de las transmisiones en una aplicación personalizada en lugar de utilizar la consola de Kinesis Video Streams.

También puede usar las clases de este ejemplo para ver contenido de transmisión de vídeo de Kinesis que no esté codificado como H.264, como una transmisión de archivos JPEG que no requieren decodificación antes de mostrarse.

El siguiente procedimiento demuestra cómo configurar y utilizar la aplicación de demostración Renderer.

## Requisitos previos
<a name="examples-renderer-prerequisites"></a>

Para examinar y utilizar la biblioteca de ejemplos de Renderer, debe tener lo siguiente:
+ Una cuenta de Amazon Web Services (AWS). Si aún no tiene una AWS cuenta, consulte [Introducción a Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/getting-started.html).
+ Un entorno de desarrollo integrado (IDE) de Java, como [Eclipse Java Neon](https://www.eclipse.org/downloads/packages/release/neon/3/eclipse-jee-neon-3) o [JetBrains IntelliJ Idea](https://www.jetbrains.com/idea/download/).

## Ejemplo de ejecución del renderizador
<a name="examples-renderer-procedure"></a>

1. Cree un directorio y, a continuación, clone el código fuente del ejemplo desde el GitHub repositorio.

   ```
   git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
   ```

1. Abra el IDE de Java que utilice (por ejemplo, [Eclipse](https://www.eclipse.org/) o [IntelliJ IDEA](https://www.jetbrains.com/idea/)) e importe el proyecto de Apache Maven que ha descargado: 
   + **En Eclipse:** seleccione **File**, **Import**, **Maven**, **Existing Maven Projects**. Vaya al directorio `kinesis-video-streams-parser-lib`.
   + **En IntelliJ Idea: **seleccione **Import**. Vaya al archivo `pom.xml` en la raíz del paquete descargado.
**nota**  
Si IntelliJ no encuentra sus dependencias, es posible que tenga que hacer lo siguiente:   
**Compilación limpia:** elija **File (Archivo)**, **Settings (Configuración)**, **Build, Execution, Deployment (Compilación, ejecución, implementación)**, **Compiler (Compilador)**. Compruebe que esté seleccionada la opción **Borrar el directorio de salida al reconstruir** y, a continuación, elija **Construir**, **compilar proyecto**.
**Vuelva a importar el proyecto:** abra el menú contextual (clic con el botón derecho) del proyecto y seleccione **Maven**, **Reimport (Volver a importar)**.

    Para obtener más información, consulte la documentación del IDE relacionada.

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

1. Elimine la directiva `@Ignore` del archivo.

1. Actualice el `.stream` parámetro con el nombre de la transmisión de vídeo de Kinesis.

1. Ejecute la prueba `KinesisVideoRendererExample`.

## Cómo funciona
<a name="examples-renderer-howitworks"></a>

**Topics**
+ [Envío de datos MKV](#examples-renderer-howitworks-send)
+ [Análisis de fragmentos de MKV para convertirlos en fotogramas](#examples-renderer-howitworks-parse)
+ [Decodificar y mostrar el marco](#examples-renderer-howitworks-display)

### Envío de datos MKV
<a name="examples-renderer-howitworks-send"></a>

En el ejemplo, se envían muestras de datos MKV desde el `rendering_example_video.mkv` archivo y se utilizan `PutMedia` para enviar datos de vídeo a una transmisión denominada. **render-example-stream**

La aplicación crea un `PutMediaWorker`:

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

Para obtener más información acerca de la clase `PutMediaWorker`, consulte [Llama PutMedia](parser-library-write.md#parser-library-write-example-putmedia) en la documentación de [Transmita usando la biblioteca de analizadores](parser-library.md).

### Análisis de fragmentos de MKV para convertirlos en fotogramas
<a name="examples-renderer-howitworks-parse"></a>

A continuación, el ejemplo recupera y analiza los fragmentos MKV de la secuencia utilizando un `GetMediaWorker`:

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

Para obtener más información acerca de la clase `GetMediaWorker`, consulte [Llama GetMedia](parser-library-write.md#parser-library-write-example-getmedia) en la documentación de [Transmita usando la biblioteca de analizadores](parser-library.md).

### Decodificar y mostrar el marco
<a name="examples-renderer-howitworks-display"></a>

A continuación, el ejemplo decodifica y muestra el marco utilizando [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html).

El siguiente ejemplo de código procede de la clase `KinesisVideoFrameViewer`, que amplía `JFrame`:

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

La imagen se muestra como una instancia de [java.awt.image. BufferedImage](https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html). Para ver ejemplos que ilustran cómo trabajar con `BufferedImage`, consulte [Reading/Loading an Image](https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html).