Amazon Web Services ブログ

Amazon IVS を利用してライブストリームに複数のホストを追加する方法

Amazon Web Services (AWS) は 2020 年に、開発者がインタラクティブなビデオ体験を構築できるマネージド・ライブストリーミング・ソリューション Amazon Interactive Video Service (Amazon IVS) を発表しました。開発者は現在、SNSe コマースフィットネスなど、様々な業界でアプリを構築するために Amazon IVS を使用しています。Amazon IVS の発表以来、複数人が協力してライブストリーミングを行うことが、重要なトレンドとして浮上しています。Twitch などの企業は、配信者が視聴者を自身のライブビデオストリームに引き込むことを可能にする Guest Star などの機能をローンチし、より魅力的な参加型コンテンツを作り出しています。

コラボレーティブなライブストリーミングの人気が高まるにつれ、開発者からは複数のホストの映像を 1 つのライブストリームにまとめることができるソリューションを求める要望が頻繁に寄せられるようになりました。私たちは、開発者がインタラクティブなライブストリーミングの限界に挑戦していることに興奮し、マルチホストライブストリーミングの可能性についての興奮を分かち合っています。また、ライブストリーミングとリアルタイムビデオ技術の橋渡しをする必要があるため、こうした体験の構築が複雑になりがちであることも理解しています。

このようなニーズに応えるため、開発者は Amazon IVS を使用してライブストリームに複数のホストを追加できるようになったことをお知らせすることができて嬉しく思います。このアップデートの一環として、Amazon IVS はステージと呼ばれる新しいリソースを追加しました。ステージは、参加者がリアルタイムに音声や映像をやり取りできる仮想空間です。ステージをチャンネルにブロードキャストしてより多くの視聴者に届けることができ、視聴者を「ステージ上」に呼び出してライブの会話に参加できるアプリを構築することも可能です。ユースケースは以下の通りです:

  • Guest Spots – 配信者は、視聴者を放送に招待することができます。
  • Versus Mode – 配信者同士がマッチングし、歌合戦、トリビアなどのチャレンジで競い合うことができます。
  • Group Broadcasts – 複数のスピーカーが、大勢の観客の前で会話することができます。

この記事では、開発者が新機能を使用して Guest Spots を実現する方法を例として紹介します。この記事では Android を対象としていますが、iOS および Web 用の Amazon IVS Broadcast SDK にもステージ API が含まれています。iOS と Android のサンプルコードは、オープンソース リポジトリとして提供されています:

また、これらのアプリをサーバーレスで動かすバックエンドは、オープンソース リポジトリとして公開されています:

Android アプリのサンプル

この Android アプリのサンプルは、開発者が Amazon IVS を使用して、テキスト、ビデオ、オーディオで複数のゲストがリアルタイムにやり取りする様子をライブ配信する、マルチホスト体験を実現する方法を示しています。Android デモのクローンを作成してセットアップが完了したら、Android 仮想デバイスや Android スマートフォンでアプリを起動し、他のユーザーが参加できるステージセッションをアプリで作成できます。

アプリはマイクとカメラへのアクセス許可を求め、ユーザー名を入力し、アバターを選択できます。「ステージ」画面に進み、「新しいステージを作成」を選択すると、アプリ内の他のユーザーが参加できるステージセッションが作成されます。

ステージセッションを作成したユーザーは、自分とゲストの映像が結合されたビデオを Amazon IVS のチャンネルにストリーミングし、視聴者は自分とゲストのライブ配信を視聴することができます。

アーキテクチャ概要

Android アプリのサンプルとそれに付随するサーバーレスバックエンドの全体的なアーキテクチャは、以下の図に示すように、3つの主要なセクションから構成されています。

左端は参加者がリアルタイムで映像や音声をやり取りするための Android アプリを表しています。中央はサーバーレスバックエンドを表し、右端は再生アプリで、Amazon IVS Player SDK を使用したJavaScript アプリです。

Android アプリのユーザーがステージを作成すると、アプリは Amazon API Gateway のエンドポイントにリクエストを送信し、AWS Lambda 関数を呼び出します。Lambda 関数は必要な Amazon IVS リソースを作成し、作成された Amazon IVS ステージとチャットルームに参加するために Android アプリが使用できる暗号化されたトークンを返します。また、他のユーザーがステージを見たり参加したりできるように、作成された Amazon IVS リソースを追跡するための Amazon DynamoDB エントリも作成されます。

ユーザーがステージセッションをストリーミングする際、Android アプリは Amazon IVS Broadcast SDK の broadcastSession.start() メソッドを呼び出し、ステージを Amazon IVS チャンネルに直接ストリーミングします。ステージがストリーミングされると、視聴者は Amazon IVS Player SDK を使用してステージのライブ配信を視聴することができます。

セッションに参加するゲストが増えると、アプリは自動的にゲストをブロードキャストに組み入れ、ステージの外にいる視聴者は、ゲストが対話する様子を見たり、チャットしたりすることができるようになります。このサンプル実装は教育目的ですが、この全体的なアーキテクチャとアプローチは、Amazon IVS と AWS を使用してマルチホストアプリの構築を開始する方法を示しています。

まとめ

この記事は、開発者が Amazon IVS の新しいリアルタイムビデオ機能を使用して、複数のホストによるライブストリームを作成する方法の一例を提供しています。API の詳細については、Enabling Multiple Hosts on a Stream のガイドをご覧ください。いつものように、ご質問は AWS re:Post でお受けしています。

参考リンク

AWS Media Services
AWS Media & Entertainment Blog (日本語)
AWS Media & Entertainment Blog (英語)
AWS のメディアチームの問い合わせ先: awsmedia@amazon.co.jp
※ 毎月のメルマガをはじめました。最新のニュースやイベント情報を発信していきます。購読希望は上記宛先にご連絡ください。

翻訳は SA 鈴木と SA 斎藤が担当しました。原文はこちらをご覧ください。