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

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

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

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

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

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

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

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

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

前提条件

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

レンダラーの実行例

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

    git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
  2. IDE 使用している Java (Eclipse IntelliJ 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

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

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

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

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

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

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

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 (イメージの読み取りとロード)」を参照してください。