Google Cloud × スプレッドシートでととのう!YouTube 配信用ライブ制作環境!

Yuichiro Danno
google-cloud-jp
Published in
27 min readDec 17, 2021
YouTube のサムネっぽくしてみた

こんにちは、メディア・エンターテイメント業界担当 Customer Engineer の Dan です。Google Cloud Japan Advent Calendar 2021 の 17 日目の記事は Google Cloud とスプレッドシートで、YouTube 配信用ライブ制作環境を構築する方法について紹介します。「YouTube 配信用」と記載しましたが、もちろん他の動画配信プラットフォーム向けにも応用できます。

今回は vMix を利用した制作環境の構築の他、MIDI デバイスを使ったスイッチング操作や、スプレッドシートと連携したテロップ・スーパー付け、YouTube チャット連携、YouTube Analytics & BigQuery の話なども記載しました。

今年 2021年の「新語・流行語大賞」にもノミネートされた「ととのう」は、サウナー(サウナ愛好家)の方々が使う言葉で、心身ともに強い幸福感や満足感を得られた状態のことを意味します。この記事を参考に、Google Cloud 上でライブ制作環境を構築して、ととのってください!

※当記事内で紹介する 3rd Party ソフトウェアは一例であり Google Cloud として利用を保証・サポートするものでありません

最終形としては下図のようにオンプレークラウド間を専用線や VPN で接続した方がセキュアで安定的な通信環境が得られますが、今回はインターネット経由で構築しています。

Google Cloud を活用した YouTube 動画配信の構成例

目次

クラウド ライブ プロダクション需要の背景

クラウド ライブ プロダクションとは、従来はイベントが行われている現場に行って映像制作を行っていたところを、クラウド環境を使ってリモート制作することを意味しています。ライブ制作では、複数のカメラやマイク音声などをスイッチャーやミキサーと呼ばれる専用の機器に接続し、切り替えや効果をつけて臨場感ある画作りをしていきます。最近はスイッチャーやミキサーといった専用機器もソフトウェア化してきており、また現場からカメラ映像をモバイル回線を通じてクラウドにアップロードできる機材も登場しており、リモートでライブ映像制作ができる環境が整ってきています。しかし今までは、配信イベント自体もそれほど多くない点、制作チームとの密なコミュニケーションが取れる点などから、現場で作業することが多く、リモート ライブ プロダクションはあまり利用されてはいませんでした。

専用機器のソフトウェア化がクラウド ライブ プロダクション勃興の一因

ところが昨今、コロナの影響による在宅時間の増加に伴う巣ごもり需要で自宅にいながら番組やイベントを楽しみたいという動画配信需要が急激に増加しました。

一方、制作サイドは、

  • 現場で作業するスタッフの数を減らすことで感染リスクを抑えたい
  • 現場で利用する機材の数を減らすことで制作コストを下げたい

などの目的のため、リモート ライブ プロダクションの取り組みが増加しました。特にイベントの配信ではイベントが一回限りなどスポットであり、またその多くが週末や祝日など時期が重なるため、各イベントの制作に対応するための十分な設備の所有や調達が困難だったのですが、不要なときは環境を持たなくて良いクラウドの特性や、従量課金といったクラウドの利用料体系がマッチするため、クラウド環境を利用して制作されることが一般的になってきました。

同時に行われるイベントに対応するための機材調達や人員現地派遣はリスキー
クラウドの活用で、より低リスクで低コストなライブ配信制作が可能に

クラウド環境で利用可能なライブ プロダクション ソリューションは非常に多いです。Google Cloud で、エンタープライズ レベルの品質や構築支援、サポートが必要な場合は、Google Cloud Partner のソリューションを利用することを推奨します。

一方で、自分たちで構築したい場合は、Wirecast, OBS Studio, vMix などのソフトウェアを利用されることが多い印象です。今回は、vMix を利用してGoogle Cloud 上で環境構築したいと思います。

vMix は、Windows OS 上で動作するソフトウェアベースのビデオミキサーで、カメラ映像や動画、音楽、画像、パワーポイントなどをリアルタイムにミックスして(組み合わせて)映像出力することができます。特に、YouTube Live などのライブ配信が手軽にできる環境として、最近プロユースから一般ユーザーまで幅広く利用されています。

Why Google Cloud ?

パワフルでスケーラブルなコンピュート環境、低レイテンシでセキュアなネットワーク環境…などなど Google Cloud の強みは色々ありますが、ことリモート プロダクション観点では次の3つのメリットがあります。

  1. カスタム マシンタイプによるコスト削減
  2. YouTube へのトラフィックが無料
  3. Google サービスとの接続安定化(ピアリング)

それぞれ説明していきます。

1.カスタム マシンタイプによるコスト削減

クラウド上で仮想マシン、サーバーを構築するとき、マシンタイプで迷ったことありませんか?特に動画制作などハイスペックなマシンが必要な場合、事前定義されたマシンタイプだとちょうど良いスペックのマシンがなく、オーバースペック気味で余計なコストを支払ってしまう…なんていう経験もしくは懸念をされた方は多いと思います。そんなときに役に立つのが カスタム マシンタイプ です!

Google Cloud では事前定義されたマシンタイプの他、ユーザー側で必要な CPU / メモリ数の VM を作ることができます。そのため、過剰なリソースに対する費用を支払うことなく、必要なリソース分のみ支払うことが可能なため、Google Cloud は非常にコスト効率が高いクラウドとなっています。

このようにスライダーで vCPU とメモリを必要な分だけ設定できます

また、Google Cloud では稼働している仮想マシンの利用状況をモニタリングし、コスト削減につながる推奨スペック(推奨マシンタイプ)の提案も自動的に行なってくれる機能があります。この機能と併用することで更にコスト・リソースの効率化を図ることができます。

2.YouTube へのトラフィックが無料

動画配信を行う場合、配信プラットフォームとして YouTube を利用する例も多いと思います。クラウド事業者の環境を利用する場合、基本的にクラウド上の仮想マシンからインターネットへ送信するデータはトラフィック量に応じて課金が発生しますが、Google Cloud の場合、YouTube 向けの下り(外向き)トラフィック(通信)料が無料なのですっ!!!これ以外と知られていない事実です💦

確かに Virtual Private Cloud - VM to Service を見ると下図のように記載があります。ではこのトラフィック課金は、動画配信だと一般的にどのくらいかかるものなのでしょうか。

まずベースとして、東京(asia-northeast1)から世界各地(中国・オーストラリアは除く)へのトラフィック料は下図の通りです。

仮想マシンは、Compute Engine n1-standard-2 インスタンス(2 vCPU, 7.5 GB mem)を OS : Windows Server 2019、SSD : 100GB with GPU : NVIDIA Tesla T4 x1 & 固定 IP で東京リージョンで利用した場合、$0.83/時間です。(試算には Google Cloud Pricing Calculator を利用。月額費用 $597.25/月から時間単価を算出)

トラフィック料金は、YouTube の推奨ビットレートに従い 1080p/30fps を配信するために 6 Mbps を 1 時間 配信した場合の使用量は、下式の通り 2.7 GB/月、下りトラフィック料金は $0.378/時間です。前述の仮想マシンの利用料($0.83/時間)と比較しても大きい(費用全体の 3 割強を占める)が分かります。コスト削減する意味でも、配信制作環境は Google Cloud、Compute Engine はとてもオススメです!!

6 Mbps * (60 seconds * 60 minutes) / 8 bit = 2,700 MB = 2.7 GB2.7 GB * $0.14/GB = $0.378

3.Google サービスとの接続安定化(ピアリング)

3 つ目は、ピアリングによって Google のネットワークへ直接接続できる点があります。YouTube へライブ配信する場合、もしくは YouTube を利用しない場合でも、ライブ制作においてスプレッドシートやドライブなども参照することは多いと思います。そういった Google サービスへの通信は基本的にパブリックなインターネット経由になり、信頼性やレイテンシーはベストエフォートになります。

通常、Google サービスへの通信は基本的にパブリックなインターネット経由になります。しかし、ピアリングを利用すると、オンプレネットワークから Google のネットワークへ直接接続することができます。それによって、より安定的な通信が期待でき、ひいては安定的なライブ配信環境を実現できる可能性が高まります。

ピアリングにより、オンプレ ネットワーク / Google Cloud / Google サービス(YouTube や GWS)とより安定的な通信環境を構築することができます(参照

これら 3 つの観点から、Google Cloud こそがライブ配信環境として適していることがお分かりいただけたと思います👍

vMix インフラ・ソフトウェア要件

動画配信環境には Google Cloud が最適、と分かったところで、本題のクラウド ライブ プロダクション環境の構築に着手していきます。vMix に必要なものは以下になります。

  • Google Cloud 環境
  • Google Compute Engine インスタンス(Microsoft Windows Server 2019)
  • .NET Framework 3.5
  • NVIDIA ドライバー
  • vMix ライブ制作&ストリーミングソフトウェア(別途ライセンスが必要, 60 日のフリートライアルあり)
  • Teradici GPU Graphics Agent(別途ライセンスが必要、リモート接続するクライアント PC には Teradici PCoIP client が必要)

Teradici は画像転送ソフトウェアです。PCoIP プロトコルが有名ですね。Teradici は必須ではありませんがライブ プロダクションでは画音のズレが致命的になるケースもあるので、スムーズな画面転送を実現するためには何かしらの画像転送ソフトウェアの利用を推奨します。

vMix に必要な最新のシステム要件は、vMix — Supported Hardware ページをご参照下さい。2021/12/17 時点では下記要件(Recommended)でした。※個人的には下記は入力数が少なくても最小スペックのように感じますので、もう少し良いスペックを利用される方が良いと思います

  • CPU : Intel Core i7 Processor 3Ghz+
  • Mem: 8GB
  • Graphic Card : Dedicated Nvidia Card with 2GB+ Memory

このインスタンスは手動で構築することもできますが、Marketplace にて Teradici が提供する Teradici PCoIP Graphics Agent 導入済みインスタンスをサブスクライブして構築する方が早いので今回はこちらを利用します。

Google Cloud Platform Marketplace - Teradici Cloud Access Software-Graphics for Windows Server 2019

なお、基本的な GCE インスタンスの構築はこちらをご参照ください。

環境構築

Marketplace の Teradici のリンクをクリックすると 下記画面が表示されますので LAUNCH をクリックします。

Teradici インストール済みの Windows 2019 サーバーのセットアップ画面が表示されます。今回は東京リージョンでセットアップします。東京リージョン以外で構築したい場合は、GPU 利用可能なリージョンを確認の上、構築するようにして下さい(Compute Engine GPU のリージョンとゾーン)。

GPU が利用できるゾーンは東京だと asia-northeast1-a になります。GPU type で NVIDIA Tesla T4 を 1 つ選択するようにしてください。Machine Type は n1‑standard‑4 以上が vMix の推奨になりますが、今回はカスタム マシンタイプで構築します。

Disk は動画制作の場合は高速な方が望ましいので、 SSD にしました。

Network は構築済みのものの中から選択してください。初めて Google Cloud を利用する場合などはネットワークの設定を事前にするようにしてください。

Firewall は、Teradici が利用するポートを許可するようになっています。ここで IP アドレスレンジを設定しないと、GCE への teradici アクセスが 0.0.0.0/0 とフルオープンになっていますので、必ずアクセス元 IP レンジを設定するようにしてください。もし設定忘れても、後からVPC network -> Firewall にて変更はできますのでご安心ください。

最後に規約に同意して(チェックを付けて)、Deploy ボタンを押します。

デプロイ完了まで 1 分程度お待ち下さい。

デプロイが完了したら Teradici 経由でアクセスします。

まず構築した仮想マシンの Windows サーバーのログイン ID / Passwordを取得します。Google Cloud 管理コンソールの Compute Engine の中の仮想マシン一覧に先程デプロイしたサーバーがあるので、Connect のプルダウンから Set Windows password をクリックして ID を払い出します。(このパスワードは後ほど必要に応じて変更してください)

次に、Teradici PCoIP Clients はこのリンクからダウンロードしてインストールして起動します。サーバー IP、ユーザー名(初回は admin)、先程のパスワードを入力して接続します。

接続名は宛先サーバー名が良いです(普通に間違えた💦)

アクセス後は通常の Windows Server のセットアップと同じです。必要なソフトウェアをインストールしていきます。.Net Framework 3.5 のインストール(Windows Server の Server Manager -> Add Roles and Features Wizard 経由。要 再起動)や vMix をインストールします。

あとは通常の vMix と同じ形で利用できます。カメラ映像を SRT や NDI でインジェストする、もしくは PTZ カメラを RTSP でインジェストするなどしてご利用ください。

このように Marketplace 利用すると非常に簡単に構築できますので、ぜひ一度お試しください。

なお、アクセス元とセキュアな接続を行いたい場合は VPN 設定や専用線接続などを別途検討・実施するようにしてください。

ここまでで、vMix を利用した Google Cloud 上でクラウド ライブ プロダクション環境を構築することができました。vMix 以外も同様の手順になります。ポイントは GPU の利用ですので、GPU 利用可能なリージョン・ゾーンを確認するようにしてください。

MIDI デバイスを使ったリモート スイッチング

先程、通常と同じように操作できると言いましたが、クラウド環境とはいえ、もう少しライブ制作の操作をいつものオンプレ環境と同じにしたい、ですよね。特にスイッチングやミックス(ディゾルブ)などのトランジションはマウスだと正直キツイ。。。

その場合、ローカル PC に繋いだデバイス コントローラを使ってクラウド上のライブ制作ソフトウェアを操作することもできます。Google Cloud の機能、ではなく、USB デバイス共有ソフトウェアの出番です💦 動作を保証することはできませんが、Google Cloud 上のサーバーでも利用できるソフトウェアはありました。

behringer X-TOUCH Mini を使って vMix を操作したいっ!

USB デバイス共有ソフトウェアは Virtualhere など色々ありますが、今回は Flexihub を使いました(利用する場合は利用者の責任においてご利用ください)。有償ソフトウェアですが、トライアル期間があります。使い方は至って簡単です。

  1. Flexihub にアカウント作成
  2. Flexihub のソフトを仮想マシン、ローカル PC ともにインストール
  3. それぞれのソフトで Flexihub にログイン
  4. 仮想マシン側でローカル PC の USB デバイスに接続する

Flexihub でのデバイス選択は下図のようにできます。

あとは vMix 側で MIDI デバイスを有効化し、各キーに機能をアサインすれば、ローカル PC に接続した MIDI コントローラから操作ができます。Virtualhere でも同様のことは実現できます。これで楽々スイッチング!

スプレッドシートと連携したテロップ・スーパー付け

続いては、テロップ・スーパー付けを簡単にするための Google スプレッドシート連携を紹介します。動画配信だとスーパーや CG 等でリッチな演出をしたいですよね。スーパー表示したい元データ(例:出演者情報やランキング チャート等)を vMix 外部(エクセルやスプレッドシート、外部システム等)で管理している場合、それぞれのデータに対して手動でスーパー作成するのは非常に手間です。スプレッドシートを使えば、データを一元管理し、且つ、そのデータを使ってスーパーの切り替えすることができます。

スプレッドシートのデータを動的にスーパーに反映できます

まず最初にスプレッドシート連携するために必要な API キーを取得します。https://console.developers.google.com/ にアクセスし、画面左のペインから「認証情報」→「認証情報を作成」→「API キー」をクリックします。API キーが作成されるのでコピーして保管しておきます。

次に左ペイン内の「ダッシュボード」→「API とサービスの有効化」をクリックします。Google Sheets で検索すると Google Sheets API が表示されるので、有効化します。

Google スプレッドシートを開き、公開設定を「リンクを知っている全員」に変更し、リンクをコピーしておきます。

vMix で右下のハンバーガーメニュー(三本線のボタン)をクリックし、「Data Sources Manager」をクリックします。

左上の + 印をクリックし、「Google Sheets」を選択します。

URL にスプレッドシートの共有リンク URL を、Google API Key にコピーしておいた API Key をセットして OK ボタンをクリックします。

これでデータソースとしてスプレッドシートのデータが利用できるようになります。

テロップ・スーパーとして利用したい場合は、vMix 画面左下の「Add Input」→「More」→「Title / XAML」を選択するとテンプレートから選んで利用できます。もちろん自分で作成したファイルも利用できます。

あとは Title Editor 画面上部の「Data Source」をクリックして Data Source として追加した Google Sheets を選択すると、Google Sheets 上のデータを利用することができます。今回は Row を「Selected」にしているので、Data Source 画面で Active な行のデータがスーパーに反映されます。

もちろんスプレッドシート上のデータを更新すれば vMix 上のデータソースにも自動的に反映されるので、下記のような使い方ができます。

  • 大量にある出演者情報をスーパー付けする場合、シーンに応じてスプレッドシート上でフィルタリングし、フィルタリングされた少数のデータから vMix 上で必要な出演者情報を選択する(なお、顔写真などの画像データはスプレッドシートのセルに URL として保存しておけば、スーパーでも画像として利用できます)
  • 外部から取得したデータをスプレッドシートに保存し、その結果を vMix 上で選択する(例えば YouTube ライブのチャット メッセージをリアルタイムに取得しスプレッドシート経由で表示することもできます ※手順は次章で紹介します

色々と応用が効きそうですね。

YouTube ライブ チャットの取得

YouTube でライブ配信する際、チャットのコメントをリアルタイムに取得し、ピックアップしたコメントをスーパーで表示できると、よりユーザーのエンゲージメントを高めることができます。

また、ディベート・ディスカッション形式のイベントでは、コメントをピックアップして紹介する以外に、例えばコメントをポジネガ分析しライブ配信内でリアルタイムにポジネガ分析の結果を表示できると、番組の盛り上げにも寄与できます。今回は Google スプレッドシートの Apps Script を使ってYouTube ライブ チャットのデータを取得してみます。

Tips 2 のスプレッドシート連携のスーパー付けと合わせると、YouTube ライブのチャット コメントをリアルタイムにピックアップして TAKE することで配信映像内で表示できるようになります

まず最初に API キーを取得します。手順は前章「スプレッドシートと連携したテロップ・スーパー付け」を参照してください。

次に YouTube Data API v3 を有効化します。この画面にて「YouTube Data API v3」で検索すると YouTube Data API v3 が表示されるので、有効化します。

続いて、YouTube のコメントデータを保管したいスプレッドシートを開きます。画面上部メニューの「拡張機能」→「Apps Script」をクリックします。

Apps Script で下記のコードをペーストします。

{{API_KEY}} と YT_URL 内の(VIDEO_ID) は適宜ご自身の環境に合わせて変更してください。(VIDEO_ID はライブ配信の URL 内に含まれています)

Superchat(スパチャ) のデータも取れますが、今回はコメントアウトしています。スパチャも取りたい場合は、YouTube Live API — liveChatMessage のsuperChatDetails , superStickerDetails のデータを確認して、上記コードを修正し、必要なデータを取得し、スプレッドシートに書き出すように変更してください。

保存後は Apps Script 上部メニュー内の「実行」をクリックして試してみてください(下図)。

実際に試してみると自動的にコメントが取得できることが分かります。コード内 sleepTime 変数に 10 秒を設定しているので 10 秒おきにデータを取りに行く仕様にしています。この値を変更することはできますが、短くしすぎるとエラー(too much requests)になりますのでご注意ください。

また、データは例えばチャット投稿者のプロフィール画像の URL(profileImageUrl)など他にも色々とれますので、必要があれば YouTube Live API — liveChatMessage を参照して取得するようにしてください。

このスプレッドシートを前章「スプレッドシートと連携したテロップ・スーパー付け」と連携させると、イベント内でのコメントのピックアップが可能になります。

また、取得したコメントを、Apps Script から Cloud Natural Language API の感情分析にかけてポジネガ分析を行い、その結果をスーパー出しする、なんてこともできます。Google Cloud x Google スプレッドシートの組み合わせは夢が広がりますね💎

YouTube Analytics のデータを BigQuery で分析

ここまでで構築した環境を使っての YouTube ライブ配信は、トラブルなく終了できましたでしょうか?当日は撤収後に打ち上げ直行で良いと思いますが、翌営業日には視聴情報等の詳細なアクセス報告をしなければなりません。

これまでいくつもライブ配信を実施されてきた方の中には、過去のイベントや他のイベントとの比較・傾向比較などもして、今後の制作に活かしていきたいと考えている方もいるかと思います。ただ、YouTube Analytics の管理画面は、過去の他のイベントとの比較などは簡単ではないため、集計・比較作業は非常に手間です。この煩雑な作業の負荷軽減に役立つソリューションとして BigQuery が使えます!(※)

※補足:レポートやダッシュボードなどをブラウザ上で簡単に作ることができる Google データ ポータル もデータソースとして YouTube を利用することは可能ですが、現時点で利用可能な YouTube Analytics の指標は、Average Watch Time, Total Watch Time, 平均視聴率の 3 つであるため、より多くの指標を取得・利用するためには、後述の BigQuery Transfer Service for YouTube を利用する必要があります。

具体的には BigQuery Transfer Service for YouTube を利用します。(ここに記載の通り、YouTube チャンネル オーナー権限や BigQuery のいくつかの権限が必須です)。こちらを利用すると、YouTube チャンネル レポートのデータを BigQuery に読み込めるため、過去の YouTube ライブの Analytics データを簡単にアクセス・集計できるようになります。

取得可能なレポートは下記の2つです。設定手順もリンクしておきます。

設定手順はリンク先の通りなので割愛しますが、取得できるテーブルはデータの中身は下図のようなものになります。これ以外にも多くのテーブルやビュー、カラムがあります。以前のイベントとの比較は、動画 ID (video_id) ベースで比較すれば良さそうですね。

BigQuery コンソールでの見え方。結果はユーザーアクティビティ(channel_basic_a2_suffix)ビュー

ただ、BigQuery 上でのクエリの操作に慣れていない方もいると思います。安心してください!非エンジニアの方でもドラッグ & ドロップでデータの可視化が可能な無償ツール、Data Portal でこの BigQuery に出力した YouTube Analytics のデータを扱うことができます!

まず Data Portal にアクセスし、左上の作成 → データソースをクリック。

次に検索にて BigQuery を検索し、BigQuery コネクタを選択。

マイ プロジェクトからプロジェクト名で当該プロジェクトを選択し、今回のデータが格納されているデータセットを選択、最後に可視化したい表を選択します。

するとデータソースとして取得可能なデータ項目が表示されますので、右上の「レポートを作成」をクリックします。

データソースとして BigQuery のデータが使えるようになりますので、あとは Data Portal の一般的な使い方で、必要なレポートを作成していくことになります。

BigQuery の YouTube Analytics の各テーブル(ビュー)を連結させたい場合は、この手順を何度か繰り返して必要なテーブル(ビュー)分のデータソースを作成して連結させていくことが必要になります。ただ、データソースは一回作るとあとは追加データが BigQuery Transfer で自動的に転送されてくるので、今後データソースの追加は不要になりますのでご安心ください。これでレポーティングが捗りますね!

終わりに

長くなりましたが、今回は Google Cloud 上でクラウド ライブ プロダクション環境を構築する方法とそのメリット、また YouTube 向けライブ配信の制作を支援するソリューションについて説明しました。きっとみなさまも Google Cloud 上でのライブ制作環境がととのった頃ではないでしょうか?

Google Cloud は Google が持つ広範なプロダクトやサービスと連携可能な点が強みであり、特に YouTube でライブ配信するには最適なプラットフォームであることがご理解いただけたと思います。この記事を参考に、ぜひライブ制作で一度使ってみて下さい!Google Cloud でととのいましょー!

--

--

Yuichiro Danno
google-cloud-jp

Customer Engineer in Google Cloud. All views and opinions are my own.