Amazon Kinesis Video Streams を使うと、デバイスからの動画と時間符号化データをどのような規模ででも安全に取り込み、処理、保存し、リアルタイムとバッチ指向のマシンビジョンアプリケーションに用いて、スマートホーム、スマートシティ、産業でのオートメーション、セキュリティモニタリングなどに活用することができます。Kinesis Video Streams には SDK があり、接続されたデバイスから AWS にセキュアにビデオをストリーミングするのが容易になります。Amazon Kinesis Video Streams は HTTP Live Streaming (HLS) をサポートし、どのようなブラウザまたはモバイルアプリのデバイスからでも取り込まれたビデオのライブ、オンデマンドでの再生が可能です。また、動画ストリームを永続的に保存、暗号化、インデックス化して使いやすい API を提供しているため、アプリケーションを使って、タグとタイムスタンプに基づくインデックス付きの動画フラグメントにアクセスして取得できます。Kinesis Video Streams は Amazon Rekognition Video と統合されており、ストリーミング動画内の顔を検出して認識するコンピュータビジョンアプリケーションを構築できます。 Kinesis Video Streams では、Apache MxNet、Tensorflow、OpenCV などの機械学習フレームワークを動画ストリームと統合して、カスタムアプリケーションを構築するためのライブラリを提供しています。Kinesis Video Streams によって、数百万ものデバイスからの動画ストリームを取り込むために必要なすべてのインフラストラクチャが自動的にプロビジョニングされ、伸縮自在にスケールされます。
主な特徴
デバイスからデータを安全にストリーミングするための SDK
Amazon Kinesis Video Streams は、接続されたデバイス上で構築、設定できる C++ および Java の SDK を提供します。これらの SDK はデバイスのメディアソースからのデータの受け取りを管理し、これをリアルタイムでフレームごとに Kinesis Video Streams に安全に送信します。SDK は GStreamer プラグインとしても利用可能で、カスタムメディアデータフローの構築ができます。
SDK はソースから構築するか、または Ubuntu、MacOS、Raspberry Pi デバイスで使える Docker イメージを用いて簡単な Docker プルでデプロイでき、わずか数分でストリーミングビデオを開始できます。
SDK の詳細については、ドキュメントを参照してください。
HTTP Live Streaming (HLS) でのライブとオンデマンドの動画再生
Amazon Kinesis Video Streams を使うと、完全マネージド型の HTTP Live Streaming (HLS) 機能を用いて取り込んだビデオの再生ができます。デバイスがビデオを Kinesis Video Streams にストリーミングするときにライブで再生し、アーカイブされたビデオを任意のブラウザやモバイルプラットフォーム上で再生できます。
Amazon Rekognition Video の組み込み統合
Amazon Rekognition Video では、あらゆる Amazon Kinesis Video Streams を入力として指定できます。これにより、ストリーミング動画の顔を自動的に検出して認識できます。この組み込み統合を使用することで、セキュリティモニタリングなどのユースケースに向けたコンピュータビジョンアプリケーションをすばやく構築できます。
再生または機械学習アプリケーションを強化するための画像を抽出
Amazon Kinesis Video Streams は、ビデオストリーミングから画像を抽出するのに役立つ API と SDK を提供しています。これらの画像を使用して、サムネイルや強化スクラビングなどの再生アプリケーションを強化したり、機械学習パイプラインで使用したりできます。 詳細については、ドキュメントを参照してください。
メディアの使用準備ができたら通知を受け取る
メディアフラグメントが永続化されて使用できるようになったら、Amazon Kinesis Video Streams は SNS 経由で通知します。 詳細については、ドキュメントを参照してください。
リアルタイム API
Amazon Kinesis Video Streams では簡単に使用できる API によって、フレーム単位でストリームからデータを取得でき、リアルタイムアプリケーションを実現できます。
WebRTC を使用した低レイテンシーの双方向メディアストリーミングをサポート
Amazon Kinesis Video Streams は、WebRTC を使用した低レイテンシーの双方向メディアストリーミングをサポートしています。WebRTC は、シンプルな API を介してウェブブラウザ、モバイルアプリケーション、接続されたデバイス間のリアルタイムなメディアストリーミングとインタラクションを可能にするオープンソースプロジェクトです。
Kinesis Video Streams には、WebRTC のシグナリングのためのマネージド型エンドポイントが含まれています。これにより、アプリケーションは安全に相互接続してピアツーピアのライブメディアストリーミングが実現されます。それから、Kinesis Video Streams には TURN のマネージド型エンドポイントが含まれるため、アプリケーションがピアツーピアメディアをストリーミングできない場合には、クラウドを介したメディアリレーが可能になります。また、STUN のマネージド型エンドポイントも含まれており、アプリケーションが NAT やファイアウォールの背後にあるときにはパブリック IP アドレスの検出が可能です。さらに、使い勝手のよい SDK を提供しているため、WebRTC 機能を備えた IoT カメラデバイスを使用することもできます。最後に、Android、iOS、およびウェブアプリケーション用のクライアント SDK を提供しており、Kinesis Video Streams WebRTC のシグナリング、TURN 機能、および STUN 機能を WebRTC 準拠のモバイルやウェブプレーヤーと統合します。
この機能の詳細については、ドキュメントを参照してください。
WebRTC を介したメディア取り込みのサポート
Amazon Kinesis Video Streams は、Web Real-Time Communication (WebRTC) 規格に準拠したカメラ、IoT デバイス、ブラウザから動画や音声をクラウドにリアルタイムでストリーミングして安全な保存、再生、分析処理を実現する、フルマネージドな機能を提供するようになりました。強化された WebRTC SDK とクラウド API を使用することで、リアルタイムのストリーミングやクラウドへのメディアの取り込みが可能になります。
耐久性の高いストレージ
Amazon Kinesis Video Streams の基盤となるデータストアには Amazon S3 が使用され、保存されたデータの耐久性と信頼性が確保されます。ストリームごとに保持期間を設定および制御できるため、ストリーム内のデータを一定期間、または無期限に、コスト効率の高い方法で保存できます。ストリームの保持期間はいつでも変更できます。
従量課金制
Amazon Kinesis Video Streams では、サービスを通して取り込み、保存、使用したデータ量に対してのみ料金が発生します。前払い料金や最低料金はなく、アイドル状態の動画ストリームに対する費用を心配する必要がありません。詳細については、料金ページを参照してください。
取得用のインデックス自動作成
Amazon Kinesis Video Streams では、動画ストリームに保存したデータが、デバイスによって生成されたタイムスタンプ、または動画を受信した際に Kinesis Video Streams によって生成されたタイムスタンプに基づいて自動的にインデックス化されます。ストリームレベルのタグとタイムスタンプを組み合わせることで、再生、分析などの処理のために特定の動画フラグメントを簡単に検索して取得できます。
動画ストリームのパーサーライブラリ
Amazon Kinesis Video Streams ではアプリケーション内で使用できるストリームのパーサーライブラリが利用できるため、フレームレベルのオブジェクトの簡単な取り出し、フラグメントにアタッチされたメタデータの抽出および収集、連続したフラグメントの結合などが可能です。これにより、Apache MxNet、TensorFlow、OpenCV などの一般的な ML フレームワークを簡単に統合できます。詳細については、ドキュメントを参照してください。
転送中および保管時の自動データ暗号化
Amazon Kinesis Video Streams の SDK によって、安全なストリーミングのために、デバイスのハードウェアによって生成されるフレームとフラグメントが Transport Layer Security (TLS) を使用して暗号化されます。これは、相互に通信する 2 つのアプリケーションの間にプライバシーとデータ整合性を確立するプロトコルです。
Amazon Kinesis Video Streams では、動画ストリームに入力したデータが AWS Key Management Service (KMS) を使用して自動的に暗号化されるため、保存中のデータを保護できます。データは Kinesis Video Streams ストレージに書き込まれる前に暗号化され、ストレージから取得された後に復号されます。その結果、ストリーム内の保存中データは常に暗号化された状態となります。詳細については、ドキュメントを参照してください。
AWS IAM によるアクセス制御
Amazon Kinesis Video Streams は AWS Identity and Access Management (IAM) と統合されているため、動画ストリームへのアクセスを制御できます。特定のユーザーとグループのみが、動画ストリームへのデータ入力、動画ストリームからのデータ取得など、特定のアクションを実行できるようにポリシーを作成できます。Kinesis Video Streams における IAM ポリシーの使用に関する詳細は、ドキュメントを参照してください。
時間符号化データ
時間符号化データは、時系列で記録され、各記録が前後の記録と関連しているあらゆるデータです。動画は時間符号化データの一例です。動画では各フレームが、空間変換によって前後のフレームと関連付けられます。時間符号化データのその他の例としては、オーディオ信号、RADAR 信号、LIDAR 信号などがあります。Amazon Kinesis Video Streams は、分析と ML のユースケースに向けて、あらゆる時間符号化データをコスト効率良く効果的に取り込み、ストレージできるように設計されています。
完全マネージド型
Amazon Kinesis Video Streams は完全マネージド型で、インフラストラクチャを管理する必要がありません。Kinesis Video Streams では、自動的にプロビジョニングが実行されて数百万というデバイスに伸縮自在にスケールされ、動画を転送していないときはスケールダウンされます。この際、サーバーフリートをプロビジョンする必要はありません。
エッジ記録とスケジュールされたクラウドストリーミング
オンプレミスのIPカメラからの動画をローカルで記録して保存し、長期間の保存、再生、分析処理のために定義されたスケジュールでメディアをクラウドにアップロードします。 Amazon Kinesis Video Streams エッジエージェントへのアクセスについては、こちらを参照してください。