全般

Q: Amazon Kinesis Video Streams とは何ですか?

Amazon Kinesis Video Streams を使用すると、分析、機械学習 (ML)、およびその他の処理のために、接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミングできるようになります。Kinesis Video Streams によって、数百万ものデバイスからの動画のストリーミングデータを取り込むために必要なすべてのインフラストラクチャが自動的にプロビジョニングされ、伸縮自在にスケールされます。また、ストリーム内の動画データに対して堅牢な保存、暗号化、インデックス作成が実行され、使いやすい API によってデータにアクセスできるようになります。Kinesis Video Streams を使用すれば、Amazon Rekognition Video との統合、および Apache MxNet、TensorFlow、OpenCV といった ML フレームワーク向けライブラリとの統合により、コンピュータビジョンアプリケーションや ML アプリケーションのすばやい構築が可能になります。

Q: 時間符号化データとは何ですか?

時間符号化データとは、レコードが時系列のデータであり、各レコードがその前後のレコードに関連しているすべてのデータです。ビデオは時間符号化データの例で、各フレームは空間変換を介して前後のフレームに関連しています。時間符号化データの他の例として、音声信号、レーダー信号、LIDAR 信号などがあります。Amazon Kinesis Video Streams は、あらゆる種類の時間符号化データの費用対効果に優れた効率的な取り込みと格納に特化して設計されており、分析や ML ユースケースを対象としています。

Q: Kinesis Video Streams の一般的なユースケースには、どのようなものがありますか?

Kinesis Video Streams は、次のような幅広い用途で普及しているコンピュータビジョン対応 ML アプリケーションの構築に最適です。

スマートホーム

Kinesis Video Streams を使用すれば、ベビーモニタ、ウェブカメラ、防犯システムといったカメラを装備した家庭用機器からの動画と音声を、AWS へ簡単にストリーミングできます。その後、ストリームを使用して、シンプルな動画再生から、インテリジェント照明、温度制御システム、セキュリティソリューションに至るまで、さまざまなスマートホームアプリケーションを構築できます。

スマートシティー

多くの都市では、交通信号機、駐車場、ショッピングモール、およびほとんどの公共イベント会場に多数のカメラが設置され、動画が 24 時間年中無休でキャプチャされています。Kinesis Video Streams を使用することで、この膨大な量の動画データの取り込み、保存、分析を安全かつコスト効率に優れた方法で実行でき、交通問題の解決、犯罪の防止、緊急事態への対応人員派遣といったさまざまな用途に活用できます。

工業オートメーション

Kinesis Video Streams を使用して、電波探知器やレーザー探知器の信号、温度プロファイル、工業用機器からの深度データといった、さまざまな時間符号化データを収集できます。その後、Apache MxNet、TensorFlow、OpenCV など好みの機械学習フレームワークによってデータを分析し、予知保全などの工業オートメーション分野のユースケースに役立てることができます。例えば、ガスケットやバルブの寿命を予測し、部品交換を事前にスケジュールすることで、製造ラインのダウンタイムや不具合を減少できます。

Q: Amazon Kinesis Video Streams では何を管理しますか?

Amazon Kinesis Video Streams は、フルマネージド型の動画取り込みおよび格納サービスです。ロボット、スマートシティー、産業自動化、セキュリティ監視、機械学習 (ML) などを動作させる用途に対して、あらゆる規模でビデオを安全に取り込み、処理、保存することができます。Kinesis Video Streams は、音声信号、レーダー信号、LIDAR 信号などの他の種類の時間符号化データも取り込みます。Kinesis Video Streams は、デバイスにインストールできる SDK を提供し、動画を AWS に簡単かつ安全にストリーミングできるようになります。Kinesis Video Streams によって、数百万ものデバイスからの動画ストリームを取り込むために必要なすべてのインフラストラクチャが自動的にプロビジョニングされ、伸縮自在にスケールされます。また、動画ストリームを永続的に保存、暗号化、およびインデックスを作成し、アプリケーションがタグとタイムスタンプに基づいてインデックス付きのビデオフラグメントにアクセスして検索できるように、使いやすい API を提供します。Kinesis Video Streams は、Apache MxNet、TensorFlow、OpenCV などの ML フレームワークを動画ストリームと統合して、機械学習アプリケーションを構築するためのライブラリを提供します。Kinesis Video Streams は Amazon Rekognition Video と統合されており、オブジェクト、イベント、および人物を検出するコンピュータビジョンアプリケーションを構築できます。

主要なコンセプト

Q: 動画ストリームとは何ですか?

動画ストリームとは、ライブビデオやその他の時間符号化データをキャプチャし、必要に応じて保存し、リアルタイムでもバッチまたはアドホックベースでもデータを使用できるようにするリソースです。動画ストリームにデータを保存することを選択すると、Kinesis Video Streams はデータを暗号化し、保存されたデータに時間ベースのインデックスを生成します。通常の構成では、Kinesis 動画ストリームには 1 つのプロデューサーのみがデータを公開します。Kinesis 動画ストリームは、動画ストリームのコンテンツを処理する複数の消費アプリケーションを有することができます。

Q: フラグメントとは何ですか?

フラグメントはフレームの自己完結型シーケンスです。フラグメントに属するフレームは、他のフラグメントからのフレームに依存してはなりません。フラグメントが到着すると、Kinesis Video Streams は一意のフラグメント番号を昇順に割り当てます。また、Kinesis Video Streams 固有のメタデータとして、各フラグメントのプロデューサー側およびサーバー側のタイムスタンプを格納します。

Q: プロデューサーとは何ですか?

プロデューサーとは、Kinesis 動画ストリームにデータを格納するデバイスまたはソースを指すために使用される一般的な用語です。プロデューサーは、セキュリティカメラ、身体装着カメラ、スマートフォンカメラ、またはダッシュボードカメラなど、どのようなビデオ生成デバイスであってもかまいません。プロデューサーは、オーディオフィード、画像、または RADAR データなど、ビデオ以外の時間符号化データを送信することもできます。1 つのプロデューサーが 1 つ以上の動画ストリームを生成できます。例えば、ビデオカメラは動画データを 1 つの Kinesis 動画ストリームにプッシュし、音声データを別の動画ストリームにプッシュできます。

Q: コンシューマーとは何ですか?

コンシューマーは、Kinesis 動画ストリームのデータをリアルタイムで (または低レイテンシー処理が不要な場合にデータが永続的に格納されて時間インデックスが作成された後に) 消費して処理するカスタムアプリケーションです。これらのコンシューマーアプリケーションを作成して、Amazon EC2 インスタンスで実行することができます。Amazon Rekognition などの他の Amazon AI サービスやサードパーティーのビデオ分析プロバイダを使用して、動画ストリームを処理することもできます。

Q: チャンクとは何ですか?

プロデューサーからデータを受信すると、Kinesis Video Streams は受信するメディアデータをチャンクとして格納します。各チャンクは、実際のメディアフラグメント、プロデューサーによって送信されたメディアメタデータのコピー、およびフラグメント番号、サーバー側およびプロデューサー側のタイムスタンプなどの Kinesis Video Streams 固有のメタデータで構成されます。コンシューマーが GetMedia API 操作を通じてメディアデータを要求すると、Kinesis Video Streams は、要求で指定したフラグメント番号から始まるチャンクのストリームを返します。

Q: Amazon Kinesis Video Streams のレイテンシーについてどう考えればよいですか?

エンドツーエンドのメディアデータフローには、レイテンシーに対する 4 つの重要な要因があります。

  • デバイスのハードウェアメディアパイプラインで費やされる時間: このパイプラインは、イメージセンサーと任意のハードウェアエンコーダーで構成できます。理論的には、これは単一フレーム期間と同程度になる可能性があります。実際には、そうなることはまれです。すべてのエンコーダーは、メディアエンコーディング (圧縮) に効果的に機能するように、複数のフレームを蓄積してフラグメントを構築します。このプロセスおよび対応するいずれかの動き補償アルゴリズムは、データが伝送用にパッケージ化される前に、デバイスで 1 秒から数秒のレイテンシーを追加します。
  • インターネットの実際のデータ伝送に生じるレイテンシー: ネットワークスループットとレイテンシーの品質は、プロデューサーデバイスの配置場所に応じて大きく異なる可能性があります。
  • プロデューサーデバイスからデータを受信するときに Kinesis Video Streams によって追加されるレイテンシー: 受信データはすべての消費側アプリケーションに対して、GetMedia API 操作ですぐに利用できるようになります。データを保持することを選択した場合、Kinesis Video Streams は AWS Key Management Service (AWS KMS) を使用してデータを暗号化し、動画ストリーム内の個々のフラグメントに時間ベースのインデックスを生成します。GetMediaforFragmentList API を使用してこの保持されたデータにアクセスすると、Kinesis Video Streams は永続ストレージからフラグメントを取り出し、データを復号化し、消費側アプリケーションでデータを使用できるようにします。
  • コンシューマーに戻すデータ送信のレイテンシー時間: インターネットや他の AWS リージョンで、メディアデータを要求するデバイスが存在することがあります。ネットワークスループットとレイテンシーの品質は、消費側デバイスの配置場所に応じて大きく異なる可能性があります。

最後に、Kinesis Video Streams 管理コンソールはサポートされている H.264 メディアタイプを取り出し、さまざまなブラウザ用にトランスパッケージし、開発またはテスト目的でストリームを再生することができます。

ストリームへのデータの公開

Q: Kinesis 動画ストリームにデータを公開するにはどうすればよいですか?

PutMedia 操作で Kinesis 動画ストリームにメディアデータを公開したり、Java、C++、または Android で Kinesis Video Streams プロデューサー SDK を使用することができます。PutMedia 操作を直接使用する場合は、Kinesis Video Streams データ仕様に従ってメディアストリームをパッケージ化し、ストリームの作成、トークンローテーション、およびメディアデータを AWS クラウドに確実にストリーミングするために必要なその他のアクションを処理します。プロデューサー SDK を使用して、これらのタスクをより簡単にし、より早く開始することをお勧めします。

Q: Kinesis Video Streams の PutMedia 操作とは何ですか?

Kinesis Video Streams は、メディアデータを Kinesis 動画ストリームに書き込むための PutMedia API を提供します。PutMedia 要求では、プロデューサーはメディアフラグメントのストリームを送信します。フラグメントが到着すると、Kinesis Video Streams は一意のフラグメント番号を昇順に割り当てます。また、Kinesis Video Streams 固有のメタデータとして、各フラグメントのプロデューサー側とサーバー側のタイムスタンプも格納されます。

Q: Kinesis Video Streams プロデューサー SDK とは何ですか?

Amazon Kinesis Video Streams プロデューサー SDK は、特定のプロデューサーのためにインストールしてカスタマイズできる、使いやすく設定の容易なライブラリのセットです。SDK を使用すると、動画ストリームに安全に接続し、ビデオやその他のメディアデータを Kinesis Video Streams に確実に公開するオンデバイスアプリケーションを簡単に構築できます。これは、デバイスのメディアパイプラインによって生成されたフレームとフラグメントをパッケージ化するために必要なすべての基本的なタスクを処理します。また、SDK は、ストリームの作成、セキュアなストリーミングや中断のないストリーミングのためのトークンローテーション、Kinesis Video Streams から返された確認応答の処理などのタスクも処理します。

Q: Kinesis Video Streams プロデューサー SDK はどのプログラミングプラットフォームで利用できますか?

Kinesis Video Streams プロデューサー SDK のコアは C 言語で構築されているため、さまざまなハードウェアプラットフォームに対して効率的で移植性があります。ほとんどの開発者は、Kinesis Video Streams プロデューサー SDK の C++ または Java バージョンを使用することを好みます。また、Android デバイスから動画データをストリーミングするモバイルアプリケーション開発者用の Android 版のプロデューサー SDK があります。

Q: Kinesis Video Streams プロデューサー SDK を使い始める前に、何を知っておく必要がありますか?

Kinesis Video Streams プロデューサー SDK は、フレームとフラグメントのパッケージングのための手間のかかる処理をすべて行い、安全な接続を確立し、ビデオを AWS に確実にストリームします。しかし、ハードウェアデバイスと、ハードウェアデバイスで動作するメディアパイプラインにはさまざまな種類があります。メディアパイプラインとの統合プロセスを簡単にするために、1. フレーム境界、2. 境界に使用されるフレームのタイプ (I フレームまたは非 I フレーム)、および 3. フレーム符号化タイムスタンプについてある程度知っておくことをお勧めします。

ストリームからのデータの読み取り

Q: GetMedia API とは何ですか?

GetMedia API を使用すると、Kinesis 動画ストリームからメディアコンテンツを取得できます。この要求では、ストリーム名またはストリーム Amazon リソースネーム (ARN) と開始チャンクを識別します。Kinesis Video Streams はフラグメント番号順にチャンクのストリームを返します。メディアデータ (フラグメント) をストリームに配置すると、Kinesis Video Streams は各受信フラグメントと関連メタデータを「チャンク」と呼ばれるものに格納します。GetMedia API は、要求で指定したチャンクから始まるこれらのチャンクのストリームを返します。

Q: GetMediaForFragmentList API とは何ですか?

GetMediaForFragmentList API を使用すると、Kinesis 動画ストリームのアーカイブデータからフラグメントのリスト (フラグメント番号で指定) のメディアデータを取得できます。通常、この API 操作の呼び出しの前に、ListFragments API の呼び出しがあります。

Q: ListFragments API とは何ですか?

ListFragments API を使用すると、保持されたデータ内でフラグメント番号またはタイムスタンプを使用して、指定された動画ストリームおよび開始位置からフラグメントのリストを返すことができます。

Q: Kinesis Video Streams に保存できるデータの長さはどれくらいですか?

ストリームには、好きなだけデータを保存することができます。Kinesis Video Streams では、アーカイブとストレージの要件に合わせてデータの保存期間を設定できます。

Q: Kinesis Video Streams パーサーライブラリとは何ですか?

Kinesis Video Streams パーサーライブラリは、開発者が Kinesis Video Streams GetMedia 操作の出力を消費し処理するのを容易にします。アプリケーション開発者は、動画ストリームで動作する動画分析および処理アプリケーションにライブラリを含めることになります。アプリケーション自体は EC2 インスタンスで実行されますが、他の場所で実行することもできます。ライブラリには、フレームレベルのオブジェクトとそれに関連するメタデータの取得や、フラグメントに添付された Kinesis Video Streams 固有のメタデータ、および連続するフラグメントの抽出および収集を容易にする機能があります。これにより、ユースケースの生の動画データをより簡単に使用できるカスタムアプリケーションを構築できます。

Q: Kinesis 動画ストリームで運ばれるフレーム (およびフラグメント) を使用する必要があるカスタム処理アプリケーションがある場合、どうすればよいですか?

一般に、動画ストリームを消費してカスタムアプリケーションのニーズに合わせて操作する場合、考慮すべき 2 つの重要なステップがあります。まず、GetMedia API によって提供されるフォーマットされたストリームからフレーム内のバイトを取得します。ストリームパーサーライブラリを使用してフレームオブジェクトを取得できます。次に、ピクセルの高さ、幅、コーデック ID、コーデックのプライベートデータなど、フレームをデコードするために必要なメタデータを取得します。そのようなメタデータはトラック要素に埋め込まれます。パーサーライブラリは、フラグメントのトラック情報を収集するヘルパークラスを提供することにより、この情報の抽出を容易にします。

この後の手順は、アプリケーションによって大きく異なります。フレームをデコードしたり、再生エンジン用にフォーマット設定したり、コンテンツ配信用にトランスコードしたり、カスタムのディープラーニングアプリケーション形式にフィードしたりすることができます。Kinesis Video Streams のストリームパーサーライブラリはオープンソースなので、特定のユースケースに合わせて拡張できます。

コンソール

Q: Kinesis Video Streams 管理コンソールとは何ですか?

Kinesis Video Streams 管理コンソールを使用すると、動画ストリームを作成、更新、管理、および監視することができます。また、ストリーム内のコンテンツがサポートされているメディアタイプであれば、コンソールはライブまたはオンデマンドでメディアストリームを再生することもできます。プレーヤーコントロールを使用すると、ライブストリームを表示したり、前後に 10 秒間スキップしたり、日付と時刻のピッカーを使用して、動画ストリームの対応する保存期間を設定した過去の時点に巻き戻したりすることができます。Kinesis Video Streams 管理コンソールの動画再生機能は、開発者が Kinesis Video Streams を使用してソリューションを構築する際の開発シナリオとテストシナリオのための簡単な診断ツールとして提供されています。

Q: コンソールはどのメディアタイプをサポートしていますか?

Kinesis Video Streams 管理コンソールでの再生用にサポートされているビデオメディアタイプは、一般的な H.264 フォーマットだけです。このメディアフォーマットは、デバイス、ハードウェアおよびソフトウェアのエンコーダーおよび再生エンジンを幅広くサポートしています。独自のコンシューマーアプリケーションやユースケースに対するさまざまな動画、音声、またはその他のカスタムの時間符号化データ型を取り込むことができますが、管理コンソールはこれらの他のデータ型の再生を実行しません。

Q: Kinesis Video Streams 管理コンソールでの動画再生の遅延はどのくらいですか?

動画データを動画ストリームに送信するプロデューサーの場合、Kinesis Video Streams 管理コンソールのライブ再生エクスペリエンスで 2~10 秒遅れることがあります。レイテンシーの大部分は、インターネットを介してデータを送信する前に、フレームをフラグメントに蓄積するときにプロデューサーデバイスによって追加されます。データが Kinesis Video Streams エンドポイントに入力され、再生を要求すると、コンソールは H.264 メディアタイプのフラグメントを永続ストレージから取得し、異なるインターネットブラウザでの再生に適したメディアフォーマットにフラグメントをトランスパッケージします。トランスパッケージされたメディアコンテンツは、インターネット経由での再生を要求した場所に転送されます。

暗号化

Q: Kinesis Video Streams のサーバー側の暗号化とは何ですか?

サーバー側の暗号化は、ユーザーが指定する AWS KMS カスタマーマスターキー (CMK) を使用して、データが保存される前にデータを自動的に暗号化する Kinesis Video Streams の機能です。データは Kinesis Video Streams ストレージレイヤーに書き込まれる前に暗号化され、ストレージから取得された後に復号化されます。その結果、データは Kinesis Video Streams サービス内で常に暗号化されます。

Q: サーバー側の暗号化を開始するにはどのようにすればよいですか?

サーバー側の暗号化は、Kinesis 動画ストリームでは常に有効です。ストリームの作成時にユーザー指定のキーが指定されていない場合は、既定のキー (Kinesis Video Streams が提供) が使用されます。

ユーザー指定の AWS KMS マスターキーは、作成時に Kinesis Video Streams ストリームに割り当てる必要があります。後で UpdateStream API を使用して別のキーをストリームに割り当てることはできません。

ユーザー指定の AWS KMS マスターキーを 2 つの方法で Kinesis 動画ストリームに割り当てることができます。コンソールで Kinesis 動画ストリームを作成するときに、[Create new Kinesis Video stream] ページの [Encryption] セクションで AWS KMS マスターキーを指定します。または、CreateStream API を使用して Kinesis Video Streams ストリームを作成するときに、KmsKeyId パラメーターでキー ID を指定します。

Q: サーバー側の暗号化を使用するのに必要な費用はいくらになりますか?

サーバー側の暗号化を適用すると、AWS KMS API の使用およびキーの費用がかかります。カスタムの AWS KMS マスターキーとは異なり、(デフォルトの) aws/kinesis-video カスタマーマスターキー (CMK) は無料で提供されます。ただし、Kinesis Video Streams がユーザーに代わって負担する API 使用料金は引き続き支払う必要があります。API 使用料金は、カスタマイズされたものを含め、CMK ごとに適用されます。データキーを更新している場合は、Kinesis Video Streams により約 45 分ごとに AWS KMS が呼び出されます。1 か月を 30 日とした場合、Kinesis Video Streams により開始される AWS KMS API コールの料金の合計は、数ドル未満の金額となります。この料金は、データプロデューサーとデータコンシューマーで使用するユーザー認証情報の数に応じてスケールされます (ユーザー認証情報ごとに AWS KMS に対する一意の API コールが必要なため)。

料金と請求

Q: Amazon Kinesis Video Streams は AWS 無料利用枠の対象ですか?

いいえ。現在、Amazon Kinesis Video Streams は AWS 無料利用枠の対象になっていません。

Q: Kinesis Video Streams の費用はどれくらいですか?

Kinesis Video Streams ではシンプルな従量課金制を使用しています。前払い料金や最低料金はなく、使用したリソースに対してのみお支払いいただきます。Kinesis Video Streams の料金は、アカウント内のすべての動画ストリームについて、取り込まれたデータ量 (GB)、消費されたデータ量 (GB)、および格納されたデータ (GB-月) に基づいています。

さらに、Kinesis Video Streams は、受信に成功したメディアデータに対してのみ課金を行い、最小チャンクサイズは 4 KB です。ちなみに 64 kbps の音声サンプルのサイズは 8 KB であるため、最小のチャンクサイズは、最小の音声または動画ストリームに対応できるように十分に低く設定されています。

Q: Kinesis Video Streams では、ストリームに格納されたデータに対してどのような請求が行われますか?

Kinesis Video Streams では、任意のストリームの下に永続的に格納されたデータの総量に対して請求が行われます。動画ストリームごとに格納されるデータの総量は、保持時間を使用して制御できます。

Amazon Kinesis Video Streams の料金の詳細

料金ページを見る
始める準備はできましたか?
サインアップ
ご不明な点がおありですか?
お問い合わせ