Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Amazon Kinesis Video StreamsのWebRTCの実力

アドベントカレンダー形式のチョコが今日になっても残って、どこかでずらしてしまった@phonypianistです。

最近、Amazon Kinesis Video Streamsを使って、遠隔ロボットからの映像を
画面で表示するシステムを作りました。
が、5秒程度のタイムラグが発生。
ロボット周辺の様子を確認する程度であれば問題ありませんが、
遠隔操作に向かない。。

そんな中、Kinesis Video StreamsがWebRTCに対応したというニュースが・・・!
aws.amazon.com

WebRTCは、ウェブブラウザ等でリアルタイムな通信を可能にする仕組みであり、
WebRTCを用いると、映像配信のタイムラグもかなり抑えられるとのこと。

いったいどれくらいのタイムラグになるのか、
次の構成でRaspberry Pi用カメラの映像を配信してみました。
f:id:acro-engineer:20191224000637p:plain
Raspberry PiもPCもWiFiでインターネットに接続しています。

で、実際に映像配信した様子はこちら。

左側のストップウォッチをRaspberry Piで撮影したものを映像配信し、
PCで受信したストップウォッチ映像を右側に表示しています。
今回の検証では、おおよそ、0.4~0.5秒程度のタイムラグで配信できているようです。
f:id:acro-engineer:20191223235913p:plain

使用する機材やネットワークによって、タイムラグの増減はありますが、
今までのAmazon Kinesis Video Streamsに比べると、圧倒的に速いですね!


また、Amazon Kinesis Video StreamsのWebRTCの場合、MasterとViewerの2つの役割があります。
名前だけ見ると、Masterは映像配信側、Viewerは受信側と捉えがちですが、
WebRTCの場合は双方向通信が可能です。
つまり、Viewer側で撮影した映像をMasterで確認できます。
(ちなみに、Masterに対してViewerを複数接続できます。)
f:id:acro-engineer:20191224171122p:plain

この仕組みを使えば、遠隔機器が配信した映像を確認しながら
リアルタイムに音声で現場に伝えるようなことが簡単に構築できます。

IoTへの適用の幅が広がりますね!

それでは。

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

Kaggle Masterと働きたい尖ったエンジニアWanted! - Acroquest Technology株式会社のエンジニアの求人 - Wantedlywww.wantedly.com