2022年05月13日

Agora.ioでコラボレーション配信の実装

instagram等でコラボ配信(複数拠点からの配信)をよくみかけるようになりました。
Agora.ioのSDKを用いたコラボ配信については実績が多数あります。

資料ダウンロード  【すぐ読める!ガイドブック】ビデオ通話・ライブ配信SDK「Agora」  ビデオ通話やライブ配信の機能をあらゆるアプリケーションに簡単に実装できるSDKの特徴から活用例まで徹底解説! 無料ダウンロード

コラボ配信の技術的問題点

  • ・コラボ配信において、視聴者は遅延が発生しても問題ありませんが、コラボしている人同士は遅延が発生したら会話が成立しない
  • ・コラボ配信による効果で視聴者が数千人に増えた場合、インフラの増強が必要になる

agora.ioで出来る事

  • ・コラボしている人同士の遅延:1s以内の遅延に抑えることができます。複雑なコードを書く必要はなく、配信者としての設定(APIをコール)をするだけです。
  • ・視聴者側は10万人まで対応している為、大規模な配信にも対応可能です。又、視聴者側の遅延は2s以内になっており、一般的なHLSよりも低遅延が可能です。

サンプルコード

SDKと共にサンプルコードが含まれています。配信者側で入室、視聴者側で入室という機能が含まれています。

ビルド方法(iOS)

SDKのダウンロード

ダウンロードページからVideoSDK iOSをダウンロードします。

(サンプルはSDKの参照も含まれた設定になっています。)

プロジェクトのオープン

ダウンロードしたファイルを展開するとSDK本体、ビデオ通話のサンプル、ライブ配信のサンプルに分かれています。
今回はライブ配信のサンプルを利用する為、OpenLive-iOSのプロジェクトをオープンします。

APP IDの設定

KeyCenter.swiftにagora.ioのAPP IDを設定します。
(簡易に動作検証をする場合はTokenは空でも大丈夫です)

実機での動作確認

ChannelNameを任意で入力し、入室します。配信側はBroadcasterを選択します。

 

・入室後画面

 

別の拠点も同じChannelNameを入力し、入室します。

・2拠点入室した場合の画面

実装の詳細(一部抜粋)

配信者か視聴者かを決めるAPIは以下になります。

LiveRoomViewController.swift
    rtcEngine.setClientRole(clientRole)
    

ローカル側の映像表示は以下のAPIをコールすることで描画できます。

LiveRoomViewController.swift
    rtcEngine.enableVideo()
        rtcEngine.startPreview()
        rtcEngine.setupLocalVideo(CANVAS)
    

リモート側の映像表示は以下のAPIをコールすることで描画できます。

LiveRoomViewController.swift
    func rtcEngine(_ engine: AgoraRtcEngineKit, didJoinedOfUid uid: UInt, elapsed: Int) {
            rtcEngine.setupRemoteVideo(CANVAS)
        }
    
資料ダウンロード  【一気に読める!】Agora 導入事例集  オンラインフィットネス・カウンセリング、音声サービスやファンサービスなど、バラエティに富んだ導入事例をご紹介! 無料ダウンロード
ブイキューブ

執筆者ブイキューブ

Agoraの日本総代理店として、配信/通話SDKの提供だけでなく、導入支援から行い幅広いコミュニケーションサービスに携わっている。

関連記事

先頭へ戻る