

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempio: analisi e rendering di frammenti di Kinesis Video Streams
<a name="examples-renderer"></a>

[Streaming utilizzando la libreria parser](parser-library.md)Contiene un'applicazione demo denominata `KinesisVideoRendererExample` che dimostra l'analisi e il rendering di frammenti di flussi video di Amazon Kinesis. L'esempio utilizza [JCodec](http://jcodec.org/)per decodificare i frame codificati H.264 che vengono acquisiti utilizzando l'applicazione. [Esempio: plugin SDK per GStreamer produttori di Kinesis Video Streams - kvssink](examples-gstreamer-plugin.md) Dopo aver decodificato il frame utilizzando, l'immagine visibile viene JCodec renderizzata utilizzando. [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html) 

In questo esempio viene mostrato come effettuare le operazioni seguenti:
+ Recupera i fotogrammi da un flusso video Kinesis utilizzando `GetMedia` l'API ed esegui il rendering del flusso per la visualizzazione.
+ Visualizza il contenuto video degli stream in un'applicazione personalizzata anziché utilizzare la console Kinesis Video Streams.

Puoi anche utilizzare le classi in questo esempio per visualizzare il contenuto del flusso video Kinesis che non è codificato come H.264, come un flusso di file JPEG che non richiedono la decodifica prima di essere visualizzati.

La procedura seguente illustra come configurare e utilizzare l'applicazione demo di Renderer.

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

Per esaminare e utilizzare la libreria di esempio di Renderer, occorre quanto segue:
+ Un account Amazon Web Services (AWS). Se non disponi già di un AWS account, consulta la sezione [Guida introduttiva a Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/getting-started.html).
+ [Un ambiente di sviluppo integrato (IDE) Java, come [Eclipse Java Neon](https://www.eclipse.org/downloads/packages/release/neon/3/eclipse-jee-neon-3) o IntelliJ IdeaJetBrains .](https://www.jetbrains.com/idea/download/)

## Esecuzione dell'esempio del renderer
<a name="examples-renderer-procedure"></a>

1. Crea una directory, quindi clona il codice sorgente di esempio dal repository. GitHub

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

1. Aprire l'IDE Java in uso (ad esempio, [Eclipse](https://www.eclipse.org/) o [IntelliJ IDEA](https://www.jetbrains.com/idea/)) e importare il progetto Apache Maven scaricato: 
   + **In Eclipse:** scegliere **File**, **Import (Importa)**, **Maven**, **Existing Maven Projects (Progetti Maven esistenti)**. Passa alla directory `kinesis-video-streams-parser-lib`.
   + **In IntelliJ Idea: ** scegliere **Import (Importa)**. Andare al file `pom.xml` nella radice del pacchetto scaricato.
**Nota**  
Se IntelliJ non è in grado di trovare le dipendenze, potrebbe essere necessario eseguire quanto segue:   
**Build clean:** scegliere **File (File)**, **Settings (Impostazioni)**, **Build, Execution, Deployment (Creazione, esecuzione, distribuzione)**, **Compiler (Compilatore)**. **Verificate che sia selezionata l'opzione **Clear output directory on rebuild**, quindi scegliete **Build, Build Project**.**
**Reimport the project (Reimporta il progetto):** aprire il menu di scelta rapida (fare clic con il pulsante destro del mouse) del progetto e scegliere **Maven**, **Reimport (Reimporta)**.

    Per ulteriori informazioni, consulta la documentazione IDE correlata.

1. Dall'IDE Java, aprire `src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest`. 

1. Rimuovere la direttiva `@Ignore` dal file.

1. Aggiorna il `.stream` parametro con il nome del tuo stream video Kinesis.

1. Eseguire il test `KinesisVideoRendererExample`.

## Come funziona
<a name="examples-renderer-howitworks"></a>

**Topics**
+ [Invio dei dati MKV](#examples-renderer-howitworks-send)
+ [Analisi dei frammenti MKV in frame](#examples-renderer-howitworks-parse)
+ [Decodifica e visualizzazione del frame](#examples-renderer-howitworks-display)

### Invio dei dati MKV
<a name="examples-renderer-howitworks-send"></a>

L'esempio invia dati MKV di esempio dal `rendering_example_video.mkv` file, utilizzandoli `PutMedia` per inviare dati video a uno stream denominato. **render-example-stream**

L'applicazione crea un `PutMediaWorker`:

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

Per informazioni sulle classi `PutMediaWorker`, consulta [Chiama PutMedia](parser-library-write.md#parser-library-write-example-putmedia) nella documentazione della [Streaming utilizzando la libreria parser](parser-library.md).

### Analisi dei frammenti MKV in frame
<a name="examples-renderer-howitworks-parse"></a>

L'esempio quindi recupera e analizza i frammenti MKV dal flusso tramite un `GetMediaWorker`:

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

Per ulteriori informazioni sulle classi `GetMediaWorker`, consulta [Chiama GetMedia](parser-library-write.md#parser-library-write-example-getmedia) nella documentazione della [Streaming utilizzando la libreria parser](parser-library.md).

### Decodifica e visualizzazione del frame
<a name="examples-renderer-howitworks-display"></a>

L'esempio quindi decodifica e visualizza il frame utilizzando. [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html)

Il seguente esempio di codice è tratto dalla classe `KinesisVideoFrameViewer`, che estende `JFrame`:

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

L'immagine viene visualizzata come un'istanza di [java.awt.image. BufferedImage](https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html). Per esempi che illustrano come lavorare con `BufferedImage`, consulta la sezione relativa alla [lettura/al caricamento di un'immagine](https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html).