

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemple : analyse et rendu de fragments Kinesis Video Streams
<a name="examples-renderer"></a>

[Diffuser à l'aide de la bibliothèque d'analyseurs](parser-library.md)Il contient une application de démonstration nommée `KinesisVideoRendererExample` qui explique l'analyse et le rendu de fragments de flux vidéo Amazon Kinesis. L'exemple permet [JCodec](http://jcodec.org/)de décoder les trames codées H.264 qui sont ingérées à l'aide de l'application. [Exemple : plugin GStreamer SDK Kinesis Video Streams Producer - kvssink](examples-gstreamer-plugin.md) Une fois le cadre décodé à l'aide JCodec, l'image visible est rendue à l'aide [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html)de. 

Cet exemple montre comment effectuer les opérations suivantes :
+ Récupérez des images d'un flux vidéo Kinesis à l'aide de l'`GetMedia`API et restituez le flux pour le visionner.
+ Affichez le contenu vidéo des flux dans une application personnalisée au lieu d'utiliser la console Kinesis Video Streams.

Vous pouvez également utiliser les classes de cet exemple pour afficher le contenu d'un flux vidéo Kinesis qui n'est pas codé au format H.264, tel qu'un flux de fichiers JPEG qui ne nécessitent pas de décodage avant d'être affichés.

La procédure suivante montre comment configurer et utiliser la démonstration du moteur de rendu.

## Conditions préalables
<a name="examples-renderer-prerequisites"></a>

Pour examiner et utiliser l'exemple de bibliothèque de moteur de rendu, vous avez besoin des éléments suivants :
+ Un compte Amazon Web Services (AWS). Si vous n'avez pas encore de AWS compte, consultez [Getting Started with Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/getting-started.html).
+ Un environnement de développement intégré (IDE) Java, tel qu'[Eclipse Java Neon](https://www.eclipse.org/downloads/packages/release/neon/3/eclipse-jee-neon-3) ou [JetBrains IntelliJ](https://www.jetbrains.com/idea/download/) Idea.

## Exemple d'exécution du moteur de rendu
<a name="examples-renderer-procedure"></a>

1. Créez un répertoire, puis clonez l'exemple de code source à partir du GitHub référentiel.

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

1. Ouvrez l'IDE Java que vous utilisez (par exemple, [Eclipse](https://www.eclipse.org/) ou [IntelliJ IDEA](https://www.jetbrains.com/idea/)) et importez le projet Apache Maven que vous avez téléchargé : 
   + **Dans Eclipse :** Choisissez **Fichier**, **Importer**, **Maven**, **Projets Maven existants**. Accédez au répertoire `kinesis-video-streams-parser-lib`.
   + **Dans IntelliJ Idea : ** Choisissez **Importer**. Naviguez vers le fichier `pom.xml` dans la racine du package téléchargé.
**Note**  
Si IntelliJ ne parvient pas à trouver vos dépendances, vous pourriez avoir à exécuter les tâches suivantes :   
**Nettoyage de build :** Choisissez **File (Fichier)**, **Settings (Paramètre)**, **Build, Execution, Deployment (Génération, exécution, déploiement)**, **Compiler (Compilateur)**. Vérifiez que l'option **Effacer le répertoire de sortie lors de la reconstruction** est sélectionnée, puis choisissez **Build**, **Build Project**.
**Réimportation du projet :** Ouvrez le menu contextuel (clic droit) du projet, puis choisissez**Maven**, **Reimport (Réimporter)**.

    Pour plus d'informations, consultez la documentation relative à IDE.

1. À partir de votre IDE Java, ouvrez `src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest`. 

1. Supprimez la directive `@Ignore` du fichier.

1. Mettez à jour le `.stream` paramètre avec le nom de votre flux vidéo Kinesis.

1. Exécutez le test `KinesisVideoRendererExample`.

## Comment ça marche
<a name="examples-renderer-howitworks"></a>

**Topics**
+ [Envoi des données MKV](#examples-renderer-howitworks-send)
+ [Analyse de fragments MKV en cadres](#examples-renderer-howitworks-parse)
+ [Décodage et affichage du cadre](#examples-renderer-howitworks-display)

### Envoi des données MKV
<a name="examples-renderer-howitworks-send"></a>

L'exemple envoie des exemples de données MKV à partir du `rendering_example_video.mkv` fichier, en les utilisant `PutMedia` pour envoyer des données vidéo à un flux nommé **render-example-stream**.

L'application crée un objet `PutMediaWorker` :

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

Pour obtenir des informations sur la classe `PutMediaWorker`, consultez [Appel PutMedia](parser-library-write.md#parser-library-write-example-putmedia) dans la documentation de [Diffuser à l'aide de la bibliothèque d'analyseurs](parser-library.md).

### Analyse de fragments MKV en cadres
<a name="examples-renderer-howitworks-parse"></a>

Cet exemple récupère et analyse ensuite les fragments MKV depuis le flux à l'aide d'un objet `GetMediaWorker` :

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

Pour plus d'informations sur la classe `GetMediaWorker`, consultez [Appel GetMedia](parser-library-write.md#parser-library-write-example-getmedia) dans la documentation de [Diffuser à l'aide de la bibliothèque d'analyseurs](parser-library.md).

### Décodage et affichage du cadre
<a name="examples-renderer-howitworks-display"></a>

L'exemple décode et affiche ensuite le cadre à l'aide [JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html)de.

L'exemple de code suivant provient de la classe `KinesisVideoFrameViewer`, qui étend `JFrame` :

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

L'image est affichée sous la forme d'une instance de [java.awt.image. BufferedImage](https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html). Pour obtenir des exemples montrant comment utiliser `BufferedImage`, consultez [Lecture/Chargement d'une image](https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html).