

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 例: Kinesis Video Streams フラグメントの解析とレンダリング
<a name="examples-renderer"></a>

[パーサーライブラリを使用したストリーミング](parser-library.md) には、Amazon Kinesis ビデオストリームフラグメントの解析とレンダリングを説明する `KinesisVideoRendererExample` という名前のデモアプリケーションが含まれています。この例では、[例: Kinesis Video Streams プロデューサー SDK GStreamer プラグイン - kvssink](examples-gstreamer-plugin.md) アプリケーションを使用して取り込まれた H.264 エンコードのフレームを [JCodec](http://jcodec.org/) を使用してデコードします。JCodec を使用してフレームをデコードすると、視覚イメージは [ JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html) を使用してレンダリングされます。

この例は、次を実行する方法を説明しています。
+ `GetMedia` API を使用して Kinesis ビデオストリームからフレームを取得し、表示するためにストリームをレンダリングします。
+ Kinesis Video Streams コンソールを使用する代わりに、カスタムアプリケーションでストリームのビデオコンテンツを表示します。

また、表示される前にデコードを必要としない JPEG ファイルのストリームなど、H.264 としてエンコードされていない Kinesis のビデオストリームコンテンツの表示にこの例のクラスを使用することもできます。

次の手順では、レンダラ―デモアプリケーションのセットアップと使用方法を示しています。

## 前提条件
<a name="examples-renderer-prerequisites"></a>

レンダラ―の例のライブラリを確かめて使用するには、以下が必要です。
+ Amazon Web Services (AWS) アカウント。 AWS アカウントをまだお持ちでない場合は、[「Kinesis Video Streams の開始方法](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/getting-started.html)」を参照してください。
+ [Eclipse Java Neon](https://www.eclipse.org/downloads/packages/release/neon/3/eclipse-jee-neon-3) や [JetBrains IntelliJ Idea](https://www.jetbrains.com/idea/download/) などの Java 統合開発環境 (IDE)。

## レンダラーの実行例
<a name="examples-renderer-procedure"></a>

1. ディレクトリを作成して、GitHub リポジトリのソースコード例からクローンを作成します。

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

1. 使用する Java IDE ([Eclipse](https://www.eclipse.org/) や [IntelliJ IDEA](https://www.jetbrains.com/idea/) など) を開き、ダウンロードした Apache Maven プロジェクトをインポートします。
   + **Eclipse では:** [**ファイル**]、[**インポート**]、[**Maven**]、[**Existing Maven Projects**] を選択します。`kinesis-video-streams-parser-lib` ディレクトリに移動します。
   + **IntelliJ Idea では: **[**インポート**] を選択します。ダウンロードしたパッケージのルートに含まれる `pom.xml` ファイルに移動します。
**注記**  
IntelliJ が依存関係を検出できない場合は、以下の手順の実行が必要になることがあります。  
**構築のクリーン:** [**File (ファイル)**]、[**Settings (設定)**]、[**Build, Execution, Deployment (構築、実行、デプロイ)**]、[**Compiler (コンパイラー)**] の順に選択します。**再構築時に出力ディレクトリをクリア**が選択されていることを確認してから、**ビルド**、**ビルドプロジェクト**を選択します。
**プロジェクトの再インポート:** プロジェクトのコンテキスト (右クリック) メニューを開き、[**Maven**]、[**Reimport (再インポート)**] の順に選択します。

    詳細については、関連する IDE ドキュメントを参照してください。

1. Java IDE で `src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest` を開きます。

1. このファイルから `@Ignore` ディレクティブを削除します。

1. `.stream` パラメータを Kinesis ビデオストリームの名前で更新します。

1. `KinesisVideoRendererExample` テストを実行します。

## 仕組み
<a name="examples-renderer-howitworks"></a>

**Topics**
+ [MKV データの送信](#examples-renderer-howitworks-send)
+ [MKV フラグメントをフレームに解析する](#examples-renderer-howitworks-parse)
+ [フレームのデコードと表示](#examples-renderer-howitworks-display)

### MKV データの送信
<a name="examples-renderer-howitworks-send"></a>

この例では、動画データを [`rendering_example_video.mkv`render-example-stream`PutMedia`] とい名前のストリームに送信するために ** を使用して ** ファイルからサンプル MKV データ を送信します。

このアプリケーションは `PutMediaWorker` を作成します。

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

`PutMediaWorker` クラスの詳細については、[パーサーライブラリを使用したストリーミング](parser-library.md) ドキュメンテーションで「[PutMedia 呼び出し](parser-library-write.md#parser-library-write-example-putmedia)」を参照してください。

### MKV フラグメントをフレームに解析する
<a name="examples-renderer-howitworks-parse"></a>

この例では次に、`GetMediaWorker` を使用してストリームから MKV フラグメントを取得し、解析します。

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

`GetMediaWorker` クラスの詳細については、[パーサーライブラリを使用したストリーミング](parser-library.md) ドキュメンテーションで「[GetMedia 呼び出し](parser-library-write.md#parser-library-write-example-getmedia)」を参照してください。

### フレームのデコードと表示
<a name="examples-renderer-howitworks-display"></a>

この例では次に、[JFrame](https://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html) を使用してフレームをデコードし、表示します。

以下は、`JFrame` を拡張する `KinesisVideoFrameViewer` クラスからのコード例です。

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

[java.awt.image.BufferedImage](https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html) のインスタンスとしてイメージが表示されます。`BufferedImage` を使用する方法を示す例については、「[Reading/Loading an Image (イメージの読み取りとロード)](https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html)」を参照してください。