OBS (Open Broadcaster Software) は、オープンソースの無料配信ソフトウェアで、ライブストリーミングや録画を簡単に行うことができます。
高い柔軟性と拡張性があり、簡単な手順で高品質な配信が可能です。
OBSでは、配信内容を自由にカスタマイズし、視聴者に対して多彩な映像体験を提供することが可能です。
ライブ配信に追加できる代表的なソースの一例を紹介します。
作成したメディアを配信する先の設定については、本記事の後半で紹介する実現方法にも関わる部分になります。
OBSからメディアを配信する際にはその配信先を設定する必要があり、多くの選択肢があります。
代表的なものとして、以下の3つを例に取り上げます。
現在、多数のライブ配信プラットフォームが存在しますが、自社独自のプラットフォームを持つことには様々な価値があります。
独自プラットフォームの利点とビジネス上のメリットについては、以下のような点が挙げられます。
自社のライブ配信プラットフォームを構築することで、ブランドの独自性を保ち、データを効果的に活用しながら、視聴者に対してより魅力的で一貫した体験を提供することが可能です。これにより、長期的なビジネス価値の創出が期待できます。
表題の構築を行うための実現方針を考えるにあたっては、ライブストリーミングの標準的なプロトコルとして広く使用されているRTMP(Real-Time Messaging Protocol)、もしくはSRT(Secure Reliable Transport)を用いた伝送を行い、それを自社プラットフォーム内にて視聴することを目的とします。
これを幾つかの簡単なステップで実現するための技術選定として、今回はAgoraが提供している Media Gateway という機能を用います。
※ SD-RTN : Agora独自の技術による双方向性・リアルタイム性と大規模配信の両方を同時に実現することができる仮想広域ネットワーク
Media Gatewayとは、RTMP/SRTプロトコルを使用して、任意のメディアストリームをAgoraのリアルタイム音声/ビデオチャンネルに直接流し込むことを可能にする機能です。
Agoraの強力なインフラを活用して配信することができる強みに加え、OBSとのシームレスな連携も容易です。
また、メディアストリームに高度なトランスコード処理を実行することもできます。
このセクションでは、Media Gateway を用いたライブ配信を実現するために必要な手順を簡単に紹介します。
OBSのストリームをライブビデオソースとして配信するためには、OBSの設定画面でサーバのドメイン名とストリームキーを設定する必要があります。
Media Gateway を利用する場合も同様であり、それぞれ以下のような流れで設定を行います。
パターン1:Agoraの指定ドメインを利用する
以下のドメインのregion情報をお住まいの地域のコードに置き換えたものを設定します。
rtls-ingress-prod-<region>.agoramdn.com<region>
パターン2:独自ドメインを利用する
オンプレミスでの実装を希望の場合、独自ドメインを指定することも可能です。
また、独自ドメインを利用した配信を行う場合には、ローカルでキーを生成することも可能です。
以上の工程で配信先の設定が終了したため、Agora SDK との連携との連携が完了しました。
後は受信者側が該当のAgoraチャンネルの映像音声を受信するだけなので、Webやモバイルアプリなどプラットフォームを問わず視聴が可能となります。
他にもより高度な設定として、メディアストリームをトランスコードするための stream configuration template API も用意されており、任意に活用が可能です。
以上、本記事ではOBSを用いたライブ配信アプリケーションの構築にあたり、AgoraのMedia Gateway 機能を採用した際の手順を紹介しました。
Agoraの無料トライアルは利用時間10,000分/月で、開発期間中はずっと無料となっています。(リリース後から料金が発生)Agoraは株式会社ブイキューブが日本代理店となっており、料金など不明点は日本語での対応が可能です。
>AgoraのMedia Gatewayをトライアルしてみる
参考資料
Media Gateway Quickstart : https://docs.agora.io/en/media-gateway/get-started/quickstart
stream configuration template API : https://docs.agora.io/en/media-gateway/reference/rest-api/endpoints/flow-configuration-template/create-reset-template