株式会社ブイキューブ 技術本部 PaaSグループ 藤本諭志氏(Twitter:@tenpa_ozisan )
従来の映像・音声技術の課題をクリアし、高品質のサービスをクイックに開発できるAgora SDK
ブイキューブは、ビデオコミュニケーション関連事業を展開する企業。Agora SDK との出会いは、同社が米国に子会社を立ち上げた時に両国間のコミュニケーションに不便を感じたことから。同社も自らWeb会議ツールを開発するが、やがてAgoraにたどり着く。
現在同社の事業は、企業内外コミュニケーション、イベントでのオンライン部分のサポート、会議室や公共機関の空きスペースをWeb会議に利用するといったソリューション提供を行っている。同社の各種ソリューション導入企業は、7,000社以上に上る。
なぜAgora SDK は人気があるのか、株式会社ブイキューブ 技術本部 PaaSグループ 藤本諭志氏は「Agora SDKなら従来技術の課題をクリアし、高品質な映像・音声サービスをクイックに構築できるからです」と語った。その説明のために同氏は、従来技術の課題とAgora SDKの優位点を紹介した。
Webブラウザやスマートフォンのアプリで映像・音声を送信する場合、当初はSkypeなど専用のアプリケーションを利用して行っていた。しかしインターネットが普及してくるとWebブラウザ上での映像・音声のニーズが増え、そこで登場したのがWebRTC(Web Real-Time Communication)やHLS(HTTP Live Streaming)といった技術だ。どちらも専用アプリ不要で、簡単に映像・音声を楽しめる。配信する側も特別な設備は不要なので、瞬く間にこれらの技術は広まった。しかし、映像・音声のニーズがどんどん高まってくると課題も生じてくる。
WebRTCはP2P通信を元にした技術なので多人数での利用には強くない。多人数の対応には、P2Pの端末としてサーバーを導入する方法もあるが、こちらも利用者が増えればサーバーを強化する必要がある。HLSは利用者増に強いが、データの遅延が問題になる場合がある。HLSでは「ネットを介した会話は無理」(藤本氏)という。ほかにも両技術は、以下のような課題がある。
学習コストが高い・クライアント端末の負荷が大きい
ブラウザやOSのアップデートごとに修正が必要
サーバーを停止させずにメンテナンスが難しい
不具合発生時の調査が難しい
藤本氏は「自社サービスに映像・音声を組み込んだアプリやWebサイトを開発する場合、WebRTCやHLSでは、工数がかさんでコストが上がるほか、工期が延びる場合がある」と指摘した。
AgoraとWebRTC、CDN(HLS利用)などの技術比較
しかしAgora SDK を使えば、クイックにこれらサービスを開発でき、高品質な映像・音声を届けられる。Agora SDKとは、映像・音声の送受信をサポートするPaaSで、クライアント側のSDKと映像・音声送受信用のインフラを提供する。
インフラ内には独自プロトコルとネットワーク技術を用いた複数のサーバーが用意されていて、自動でスムーズにデータ送受信できるネットワーク経路を判断し、大量のデータでも遅延を少なくすることができる。インフラ内であれば遅延は、世界平均で76m秒、日本国内で端末から端末までだいたい30〜200m秒に収まる。これは「電話よりも低遅延です」と藤本氏は説明する。
配信者17人+視聴者1,000,000人(チャンネルあたり)と大規模なサービスでも利用可能で、配信者と視聴者の入れ替えもできる。今後は、配信者数を128人まで増やすことを予定している。ほかにも、パケットロスが最大70%でも映像や音声の途切れを抑えられる。WebRTCの場合、一般には30%が限界だ。
ネットワークの管理も容易に行える。エンドユーザーの利用しているデータ帯域、パケットロス、通話時間、入退室の状況などを把握できるダッシュボードが用意されているので、エンドユーザー側の問題で、映像・音声が送受信できないといったトラブルにも対応しやすい。
音声に関しては、高音質なオーディオ、リアルタイムでの美声化と音響効果、超低遅延を可能にしたインホンモニタリングが特徴だ。高音質なオーディオは、48kHzの高サンプリングレート(人の声の最大20kHzを超える)、音声の評価基準MOS(Mean Opinion Score、主観的判断)で4.7獲得(最高が5.0)、音声のシーンに合わせた最適な品質を提供可能としている。音声のシーンとは、音楽と会話が混ざる、通話に特化する、といった多様な状況を指し、Agora SDK ならそれぞれで最適な品質で音を再生できる。
美声化技術は、ビデオ通話、歌唱といったモードごとに音声をリアルタイムで美化できるもの。音声エフェクトも可能で、声を子供や老人にすることもできる。インホンモニタリングは、オンラインカラオケやライブストリーミングの時に利用するもので、自分の発声をイヤホンでモニターする。ネットワークに遅延があると不自然になりがちだが、Agora SDK の超低遅延なら問題ないレベルだ。
ほかにも、自分の顔を加工したり、メガネをかけたりできるARフィルター、アバター機能、ノイズ除去、ボイスチェンジャーなど、メタバースでの利用も期待される機能もある。
容易な実装と高いパフォーマンスに支えられた多様な導入事例
藤本氏は、Agora SDKによる映像・音声サービスの国内事例を多数紹介した。
ChatWork(ソリューション)
国内最大級のビジネスチャット「ChatWork」にビデオ通話機能を提供。以前はWebRTC系を利用していたが、多拠点接続が不安定だったためAgora SDKに。映像・音声品質が安定しモバイルからも利用可となった。
mixiのクリエイター向けアプリにボイスチャット機能を提供。従来はSkypeを利用していて、ID交換や時間調整など手間が多かったが、ルーム制や集中モードなどを導入しユーザービリティを向上。音質も他社より良いという評価も。
国内初のオンラインヨガ・フィットネススタジオ。インストラクターと複数の受講生を結んでライブレッスンを提供する。インストラクターは受講生全員を見られるが、受講生はインストラクターの映像のみが見られるといった機能をAgora SDKで実装している。
WithLIVEのアーティストとのLIVEトークや握手会サービスにおいてビデオ通話機能を提供。WebRTC系のSDKを利用していたが不具合の調整に難航しAgora SDKを採用。不具合の原因特定が可能に。
アンビリアルのアバターライブ配信サービスに協力。アバターの描画部分はアンビリアルが独自に実装し、音声配信の部分をAgora SDKで構築。カラオケ配信も人気コンテンツになっている。
従来は無料通話アプリを利用していたが、アカウント設定の手間がハードルになり無料体験がうまくできない、生徒と講師がオンラインで会えないなど不具合が。そこでWebブラウザにAgora SDKを組み込み、課題を解消。本サービスは藤本氏も「私も試してみました。講師はセルビアの方だったのですが、大きな遅延もなく快適に学べました」と感想を語った。
ONSTAGE(アプリ)
Nagisaが提供する2.5次元俳優の生配信サービスで、コラボ配信機能を提供。離れた場所にいる2人の会話を何千人ものファンが視聴するもの。
コロナ禍もあって、最近流行りのオンラインヨガレッスン
実装の参考になるサンプル が豊富で、ドキュメントも読みやすく、無償トライアル も可能
これらの事例を紹介した後、藤本氏は事例を支えるAgora SDKによる実装について説明した。Agora SDKではWebRTCやHLSなどの要素技術を実装する手間は不要で、Agora SDKだけで通話から配信、視聴まで可能になる。また映像・音声のトラフィックについてはAgoraのインフラを利用できるので、開発者側でサーバーを用意する必要はない。さらにAgoraのネットワーク内で生成された映像・音声は、YouTubeライブやFacebookライブなどに配信することも可能だ。
実装する際のコードも簡単で、端末から配信するまでは、チャンネルに接続、カメラやマイクを取得、パブリッシュという工程が、わずか4行のコードで可能。受信する場合も、映像受け取り開始のAPIと描画するAPIをコールするだけだ。藤本氏は「配信と受信は、先ほどのコードと受け取りと描画のAPIを組み合わせていただければ、ほぼほぼビデオ通話アプリはできてしまいます」と説明した。
Agora SDKで映像・音声の取得から描画までのコード
そしてこのようなコードが、ユースケースに合わせてGitHubにサンプルとしてたくさん用意されているのはAgora SDKの強みと藤本氏は繰り返した。これ以外にも、Agora SDK にはいろいろな強みがある。
フリーでオープンなストリーミング配信・録画が行えるソフト「OBS(Open Broadcaster Software)」に対応。OBS用のプラグインをソースコードともども公開している。これでますますAgora SDKの使い勝手がよくなる。
Agora SDKインフラ内のサーバーのアップデートは無停止で実行。
多くの開発言語に対応。
ニーズにあったアップデートを頻繁に実施。
加えて藤本氏は「ドキュメントが、比較的読みやすい」ことも加えた。
動作チェックに便利なAPIがあり、OSやブラウザの互換性、デバイスが正しく選択されているか、ユーザーのネットワーク環境などをチェックできる。ブラウザの違いはSDKが対応するのでブラウザごとに実装を変える必要なし、接続が切れたら自動的に他の最適な経路に再接続するなどの機能を紹介した。
Agora SDKは米国発だが、国内ではブイキューブ社が日本語でサポートを実施し、デモアプリ(App StoreやGoogle Playは「agora.io inc」で検索するとデモアプリを入手できる。ブラウザ版は「agora video call」で検索)なども提供している。今後Agora SDKには空間オーディオ機能や文字起こし、不適切なコンテンツのチェック機能追加が予定されている。
複雑な技術部分はすでに実績あるSDKを利用して、サービスの内容に時間をかけるのが成功への道だ。これから映像・音声サービスを検討している方、すでに実施しているがパフォーマンスに不満がある、課題解決が難しいという方はAgora SDK を試してみてはいかがだろう。