例: Kinesis Video Streams フラグメントの解析とレンダリング - Amazon Kinesis Video Streams

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

例: Kinesis Video Streams フラグメントの解析とレンダリング

ストリームパーサーライブラリ には、Amazon Kinesis ビデオストリームフラグメントの解析とレンダリングを説明する KinesisVideoRendererExample という名前のデモアプリケーションが含まれています。この例では、例: Kinesis Video Streams プロデューサー SDK GStreamer プラグイン アプリケーションを使用して取り込まれた H.264 エンコードのフレームを JCodec を使用してデコードします。JCodec を使用してフレームをデコードすると、視覚イメージは JFrame を使用してレンダリングされます。

この例は、次を実行する方法を説明しています。

  • GetMedia API を使用して Kinesis ビデオストリームからフレームを取得し、表示するためにストリームをレンダリングします。

  • Kinesis Video Streams コンソールを使用する代わりに、カスタムアプリケーションでストリームのビデオコンテンツを表示します。

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

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

前提条件

レンダラ―の例のライブラリを確かめて使用するには、以下が必要です。

レンダラーの実行例

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

    git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
  2. 使用する Java IDE (EclipseIntelliJ 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 ドキュメントを参照してください。

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

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

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

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

仕組み

MKV データの送信

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

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

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

PutMediaWorker クラスの詳細については、ストリームパーサーライブラリ ドキュメンテーションで「コール PutMedia」を参照してください。

MKV フラグメントをフレームに解析する

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

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

GetMediaWorker クラスの詳細については、ストリームパーサーライブラリ ドキュメンテーションで「コール GetMedia」を参照してください。

フレームのデコードと表示

この例では次に、JFrame を使用してフレームをデコードし、表示します。

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

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

イメージは java.awt.image のインスタンスとして表示されますBufferedImageBufferedImage を使用する方法を示す例については、「Reading/Loading an Image (イメージの読み取りとロード)」を参照してください。