2020/12/04

WebRTCの活用 (1) Amazon Kinesis Video Streams

 

WebRTC

WebRTC(英語: Web Real-Time Communication)は、ウェブブラウザやモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信(英語: real-time communication; RTC)を提供する自由かつオープンソースのプロジェクトである。ウェブページ内で直接ピア・ツー・ピア通信を行うことによって、プラグインのインストールやネイティブアプリをダウンロードを行わなくても、ウェブブラウザ間のボイスチャット、ビデオチャット、ファイル共有などを実装できるようになる。WebRTCは、アップル、Google、マイクロソフト、Mozilla、Operaがサポートしており、World Wide Web Consortium(W3C)およびInternet Engineering Task Force(IETF)で標準化が進行中である。

引用:Wikipedia

Amazon Web Service

近年様々な会社で機械学習を利用した画像・映像の分析やObject Detection機能を利用したサービスの開発などが行われています。さらに今年から新型コロナウィルスの影響で建物の入り口に体温を測る熱画像カメラ(thermal image camera)が設置されていることも珍しくありません。
また、セキュリティの強化するため監視カメラを設置したり、交通状況の確認や、川の氾濫状況を確認するためにもカメラを設置することもあります。家庭でもペットの様子を確認するカメラもあります。もっとも多いのは私たちが手元に持っているスマートフォンのカメラは、私たちに一番近いカメラです。顔認証を利用する人は一日何回もそのスマートフォンのカメラに自分の顔を写していることでしょう。

Amazonはもちろん、MicrosoftやGoogleでもこのようなデータをCloud上で利用することを考えていました。AmazonではAWS re:Invent 2017でAmazon Kinesis Video Streamsを紹介しました。去年からは、WebRTCもサポートすることでビデオチャットサービスもAmazon Web Serviceで様々なサービスを提供することが可能となっています。今回は、Microsoft、Googleのクラウドサービスは除いてAmazon Kinesis Video Streamsの簡単な紹介をします。映像で確認したい方はAWS re:Invent 2017 Amazon Kinesis Video Streamsを確認してください。Amazon Kinesis Video Streamsが誕生した背景が理解できます。

今回はAmazon Kinesis Video Streamsを利用して自分のPCからAWSにストリーミングすることを確認します。本番ではRasberryPiやIPCamera、Amazon DeepLensなどを利用しますが、機能を確認するくらいなら、PCのカメラで十分です。

Amazon Kinesis Video Streamsの開始

Amazon Kinesis Video Streamsの機能を利用するためには、Amazon Web Serviceにアカウントを登録する必要があります。登録はクレジットカードが必要です。

Amazon Kinesis Video Streamsの料金

Amazon Kinesis Video Streamsの料金は使った分請求されます。また、Amazon Web Serviceの無料枠の対象外なので先に料金を確認しましょう。

WebRTCの場合は、別のPaaSサービスよりは安いです。SaaSサービスは、サブスクリプション課金モデルが多いので比べにくいですが、WebRTC系のPaaSよりは安いです。また、Open Sourceの利用を検討することもありますが、Open Source WebRTCサーバもCloudかOn Premiseに設置する必要があるため、冗長化やセキュリティなどを考慮するとAmazon Kinesis Video Streamsは、優位性の高いサービスです。料金の詳しい情報はここで確認してください。Amazon Kinesis Video Streams は AWS 無料利用枠対象外です。FAQs参照

Amazon Kinesis Video Streamsの機能

Amazon Kinesis Video Streamsには主に2つの機能があります。ビデオストリームとシグナリングチャンネルです。ビデオストリームはカメラのデータをAmazon Kinesis Video Streamsにアップロードする機能です。ユースケースではカメラの映像をAmazon Web Serviceにリアルタイムでアップロードすることです。

ビデオストリームは、一方通行の通信となるため、簡単に言うとYoutubeやTwitchのライブのようなものです。例えば、Youtubeで「富士山絶景ライブ」のようなことができます。
しかし、ライブ映像を配信するだけではAmazon Kinesis Video Streamsビデオストリームを利用するメリットが少ないです。Amazon IoT CoreのGreengrassやRekoginiton、SageMakerなどと連携してサービスを開発することで、Amazon Kinesis Video Streamsを利用する価値が高まります。仮に、動画を保存するだけであれば、ストレージ付きIP Cameraで十分です。

シグナリングチャンネルを利用する場合は、動画のストリーミングだけではなくビデオチャットサービスも対応できることになります。WebRTCをサポートし始めたのは去年からですが、WebRTCは双方向通信ができるので様々なシーンでの活用が可能です。

Amazon Web ServiceのAWS Management ConsoleからAmazon Kinesis Video Streamsにアクセスする方法は、Find Servicesフォームから「Kinesis Video Streams」を検索し、表示されている「Kinesis Video Streams」をクリックすることでアクセスできます。「Kinesis」は「Kinesis Video Streams」と別サービスなので「Kinesis Video Streams」をクリックしてください。

AWS Management ConsoleからAmazon Kinesis Video Streamsにアクセスすると左上からダッシュボード・ビデオストリーム・シグナリングチャンネルなどが見えます。右側では直接作成画面に移動するフォームもあります。

Amazon Kinesis Video Streamsのダッシュボード

ダッシュボードでは、ビデオストリームとシグナリングチャンネルの状態と作成、それぞれのマトリックスが確認できます。実際サービスをするときには、サービス仕様に合わせて利用することになります。また、Web ApplicationやMobile、PCのApplicationで利用する場合は、現在の状況を簡単に把握することが可能です。


ビデオストリームとシグナリングチャンネル、それぞれのリソースが確認できます。

ビデオストリーム

シグナリングチャンネル

 

Amazon Kinesis Video Streamsのビデオストリームの作成

ナビゲーションからビデオストリームに移動して、右上のビデオストリームを作成ボタンをクリックします。

ビデオストリーム作成画面から「ストリーム名」とデータ保存期間を入力して、右下のビデオストリーム作成をクリックすると作成できます。ビデオストリーム名のバリデーションエラーが発生しない限り、ビデオストリームはすぐ作成可能です。

 

作成成功のメッセージが表示されます。

 

シグナリングチャンネルの場合はチャンネル名のみで作成できます。

 

シグナリングチャンネルのデモ

デモアプリを利用することで、簡単にWebRTCを試すことも可能です。
以下のように入力しておけば、PCカメラで取得した動画が、AWSのManagement Consoleから確認できます。

 

 

結果

 

次回は、上記を応用するアプリケーションを作成してみます。

\ この記事はどうでしたか? /

ライター
キムズオピニオン
システムエンジニア

このライターが書いた記事

  1. WebRTCの活用 (1) Amazon Kinesis Video Streams

同カテゴリーの記事

  1. ダークモードについて知ろう

  2. アプリを接続するオンライン自動化ツール!Zapierのご紹介

  3. Microsoft Teamsを使って外部ユーザーとWeb会議する方法