Amazon IVS Real-Time Streamingを使ってみた【超初級】
Amazon Interactive Video Serviceとは
Amazon Interactive Video Service (IVS)は、ライブ配信を簡単に実装できるAWSのマネージドライブストリーミングソリューションです。
実際に使ったことがなかったので、この記事をきっかけに触ってみようと思います。
2つの配信モード
Amazon IVSには2つのストリーミング方法があります。
-
低レイテンシーのストリーミング
- レイテンシーは3秒から5秒程度
- 1対多の配信に最適、視聴者数は実質無制限
-
リアルタイムストリーミング
- 0.3秒未満のレイテンシー
- 最大12人のホスト、最大25,000人の視聴者
今回は生放送での使用を想定し、リアルタイムストリーミングで何ができるかを検証してみます。
用語の理解
まずは初見だと用語が整理できなかったので、一旦まとめてみます。
- ステージ:
- リアルタイムでビデオを送受信できる仮想スペース
- 参加者は最大25,000人(引き上げリクエスト可能)
参加方法には2種類あります。
- 発行 (Publish)
- 自分が配信する
- 最大12人まで可能
- サブスクライブ (Subscribe)
- 他人の配信を視聴する
自分が配信するホストは『発行・サブスクライブ』の両方の機能を持ち、ビューアーは『サブスクライブ』の機能のみで参加します。
コストに関しては、ホストもビューアーも、ステージに接続しているときに時間単位の料金が発生します。
使用量が増えると1時間あたりの料金は低くなりますが、最初の10,000時間は日本から接続する場合は参加者時間あたり0.0920USDです。
音声のみの参加者のステージであれば1/10の0.0092USDです。
まずは実際にやってみる
百聞は一見にしかず。ということで実際にやってみます。
Amazon IVS > リアルタイムストリーミング > ステージから『ステージを作成』を選択。
ステージ名を記入し、ステージを作成します。
中央にある大きな画面の上に位置する2つの選択肢の中で、サブスクライブではなく『発行』を選択するとカメラ映像が出力されます。
そしてカメラ映像の右下にあるオレンジの『発行』を押すことで配信が始まります。
この画面の下に位置するステージセッションの項目に今回のセッションが追加され、アクティブ状態となりました。
まず、他の参加者を招く前に、機器による遅延時間を測定します。一般的なWebカメラで撮影してから配信画面に出力されるまでは0.2秒程度でした。
この0.2秒を基準値として、後ほどネットワーク遅延を計算する際に差し引きます。
次に別のPCやiPadから、新しい参加者をステージに招いてみます。
AWSの公式ユーザーガイドにサンプルコードがありました。
- Simple Playback:ビューアーで使用
- Simple Publishing and Subscribing:ホストで使用
こちらのURLからステージに参加してみます。
最初に、ビューアーでどう映るかを確認してみます。
まずAWSコンソールでトークンを作成します。トークンは参加者1人につき1つ必要です。
『トークンを作成』から『サブスクライブ』の機能のみを選択して作成します。
作成された参加者トークンをコピーし、『Simple Playback』の画面のTokenにペーストしたのちに『Join』を選択します。すると、映像が出力されました。
実際のスマホ画面と、画面に映るスマホ画面の時間差が0.5秒だったので、WebカメラからPCに取り込まれるまでの0.2秒を差し引くと、実質0.3秒程度の遅延となりました。
続いて自らも配信を行うホストとして参加してみます。
先ほどと同様に『トークンを作成』から次は『発行』と『サブスクライブ』の2つを選択して作成し、ホスト用に新しいトークンを発行します。
『Simple Publishing and Subscribing』の画面でトークンを入れて『Join』を選択すると、自分の画像(Local)と別の配信映像(Remote)が出力されました。
欲を出してホストを追加し、3つのカメラで配信してみました。
カメラ同士は0.1秒以内の遅延だったため、ほぼ同じタイミングで双方向配信ができていることを確認できました。
おわりに
IVSのReal-Time Streamingは0.3秒という遅延量。
個人的には中継での送り返しなどで有用ではないか?と思ってます。
送り返しの機器には限りがあり、大規模な中継番組では足りなくなる可能性がありますが、このサービスを使えばデフォルトで24,999個まで送り返しが可能です。
また、映像は送らず音声のみを送信すれば、インカムとしても使えるのではないかと考えています。例えば、音声の1chにはプログラム、2chはインカムとして使用するなどいろんな可能性を秘めていると感じました。
今回は超初級編でした。これから実践的な使い方にチャレンジしていこうと思います。









