DeNA、スポーツの試合と実況のライブストリーミングサービスのPoCを約2か月の短期間で開発

DeNA、スポーツの試合と実況のライブストリーミングサービスのPoCを約2か月の短期間で開発
play-by-play LIVE は、プロ・アマ問わず、スポーツの試合と実況の様子を合成した映像をスマートフォン向けに配信し、視聴者とコミュニケーションしながら実況応援できることを目指したサービスです。1 つの試合に複数の実況チャンネルを立ち上げることで、好きなチーム、好きな選手を、好きな実況者とともに応援し、多種多様なスポーツ応援実況者に参加してもらうことで、新たなスポーツファンの拡大を目標としています。

ソリューション事業本部 本部長の菅原 賢太氏は、「play-by-play LIVE は、実況者の数だけスポーツの楽しみ方があるというコンセプトで開発しているスマートフォン アプリです。スポーツの配信において、単に放送映像だけではない、新たな楽しみ方を提案したいと思っています。DeNA の強みの 1 つでもあるスポーツ事業、およびライブ ストリーミング事業の融合で、単に足し算ではなく、掛け算の価値を提供することができます」と話します。

play-by-play LIVE の開発にあたり、最大の課題はプロジェクトの開始から PoC(概念実証)として実施するプロ野球のライブ配信まで、開発期間が 2 か月しかないことでした。ソリューション事業本部 エンジニアの池野 直人氏は、「検討期間を含めると約 3 か月半ありましたが、開発期間が正味 2 か月しかないことを考えると、独自に映像配信サーバーを開発するのは困難だったため、Live Stream API の採用を決めました」と話します。

また、Live Stream API の採用を決めた理由を菅原氏は次のように話します。「プロジェクトがスタートする以前に Live Stream API の存在を Google Cloud の担当者から聞いていました。今回、いかに短期間で映像配信システムを構築するかを考えたときに、インフラ側はマネージド サービスを有効活用し、ユーザー体験の開発に時間をかけたいと考えました。他社のサービスも検討しましたが、使いやすさ、コスト、運用面など、総合的に判断して Live Stream API の採用を決めました」。

Google Cloud をフル活用して play-by-play LIVE の仕組みを実現

play-by-play LIVE は、Google が開発したオープンソース UI の SDK(ソフトウェア開発キット)である Flutter を使って UI を開発し、Google Cloud のプロダクトや Firebase を利用してバックエンドのインフラが構築されています。また、横浜DeNAベイスターズが提供するサービスを利用するために必要な BAYSTARS ID と連携した認証の仕組みも構築しています。

play-by-play LIVE の仕組みは、まずテロップの入っていないプロ野球の中継映像を RTMP(Real Time Messaging Protocol)で受信し、Live Stream API で HLS(HTTP Live Streaming)に変換。点数や配球図、選手名などのテロップを、Flutter や Firebase で構築したテロップ上乗せプレーヤーでオーバーレイします。

試合の進行状況は、試合情報を入力する企業に依頼して、Firebase で開発した管理コンソールから入力してもらうと、Firestore 上のデータベースにリアルタイムで更新され、情報が更新されるとテロップとして表示される仕組みになっています。ゲスト ID や BAYSTARS ID によるログインには、Identity Platform の機能がフル活用されています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/dena_architecture.max-2200x2200.png
こうしてできた映像を、配信用 PC 上に起動した OBS Studio で画面をキャプチャし、キャプチャした画面と実況者のカメラ映像を OBS Studio 上で合成。最終的な映像を作成し、再度 Live Stream API に RTMP でプッシュして、HLS に変換されたものを視聴者のスマートフォン アプリに配信する仕組みになっています。

視聴者のスマートフォン アプリに搭載されている、クイズ機能や質問機能などの状態管理は Firestore で構築しています。Firestore とスマホアプリの直接の処理だけでは担保できない機能に関しては、サーバー側で処理するために Cloud Functions で開発し、サーバーレスで運用しています。コメント機能を監視するコンソール アプリやクイズの出題 / 正解発表のための機能なども Flutter で開発し、ウェブアプリとして Firebase 上にホスティングされています。

システム開発の煩雑さを Google Cloud に任せ、本質的な価値の提供に集中

Live Stream API、および Google Cloud のプロダクトを採用した効果を池野氏は次のように話します。「限られた時間で PoC に最低限必要な仕組みをそろえることができ、2 か月という短期間でシステムを構築できたのは、間違いなく Google Cloud を採用したメリットでした。試合の進行情報やクイズの情報など、独自にリアルタイム反映の仕組みを作りこまなくても、提供されている機能で実現できるので開発の高速化にもつながりました。Google Cloud はシステム構築における本質でない部分の煩雑さをすべてカバーしてくれるので、アプリの開発や本質的な価値の提供に集中できた点を高く評価しています。」

またソリューション事業本部 エンジニアの内田 誠一氏は、「今回、Google Cloud を利用した中で、Firestore が最も効果的だと感じました。開発の途中で仕様が変更された場面でも、Firestore はシンプルな構成なので、仕様変更に対応するための工数をかなり削減できました。今後も Google Cloud を利用した開発は続くので、今回と同様に問題が発生したときにチャットなどで気軽に相談でき、迅速に対応してもらえるサポート体制を期待しています」と話します。

今後の映像配信サービスの取り組みについて菅原氏は、「play-by-play LIVE は、2023 年 3 月 26 日に開催された 3 人制サッカーの日本一決定戦である 3x3FOOTBALL CHAMPIONSHIP でも利用しました。今後も、さまざまな競技の配信を検討しています。play-by-play LIVE は、サービス自体に人が集まってコンテンツを形成し、新たな価値を創出できることが最大のポイントです。そこで、どのようなコンテンツが有効になるか、PoC でしっかりと評価、検討していきたいと思っています」と話します。

そのために必要なシステム面での強化ポイントについて池野氏は、次のように話します。「Live Stream API による配信の最適化は、設定によってできる部分が多いと思うので、PoC においても試す価値はあると思っています。また今後、Cloud Spanner への更新の裏でストリーミング データを受け取れる変更ストリームの機能に興味があります。この機能により、イベント ドリブンなアーキテクチャを容易に実現できます。」

今後の Google Cloud Japan への期待について菅原氏は、「Google Cloud の採用で、映像配信という重たい処理を安定稼働できたのはよかったと思っています。一方、利用者から映像が重いというコメントがあったため今後のサポートに期待しています。パートナーとして遠慮なく要望を伝えられることができ、それに対し真摯に対応してもらえることには本当に感謝していますので、今後も、より強力なパートナーとして、いろいろなことに一緒にトライしてほしいと思っています」と話しています。

Google Cloud ブログより

事例カテゴリの最新記事