最終更新日が6年以上前の記事のため、内容が古い可能性があります。ご注意ください。

オンライン配信システムの構築レポート

前置き

去る5月27日、とあるウェブエンジニア系のカンファレンスが渋谷で行われました。"Y8"と呼ばれるこのカンファレンスでは、「ウェブエンジニアが楽しめる内容であればなんでもいい」という、ゆるい条件のもと、話すネタ、共有する技術情報を持つ人がそれぞれ自分のまとめた情報を発表する、というものです。

Y8 2017 spring in Shibuya

カンファレンスという特性上、開催は物理空間で行われます。今回は先に書いたように渋谷で行われたのですが、物理空間で行われるとなると、場所的な問題や収容量的な問題があり、誰でも聴講できる、というわけではありません。

しかし、あえてクローズドにする必要のないものであれば、できれば多くの人に聴いてもらいたい。場所が遠くて参加できない方や、時間が合わず来られない方、今回は満席ではないけど、抽選等で漏れて参加できなかった場合など、そんな方にも聴いてもらいたい。そこで今回は、このカンファレンスの内容をYoutube Liveで配信することになりました。

本音

俺が知見を溜めたかったんだ許せ

【5月末まで】初夏のキャッシュバックキャンペーンを実施中!この機会をお見逃しなく!

PR:Vook school

構成

今回組んだ配信環境は上記になります。

配信部分

CEREVO LiveWedgeを中心に構築しています。
LiveWedgeは、FacebookやUstream、YoutubeLiveなど、様々な配信システムに対応しており、各配信先のアカウントさえ持っていれば、簡単にその設定が可能になります。
ただ、今回YoutubeLiveで配信しようとしたところ、アカウント認証部分で403が返ってくるという悲しい状況になりました。仕方がないので、YoutubeLiveの設定画面からRTMPの情報を参照して、RTMP配信を行うことにしました。

YoutubeLiveをLiveWedgeから普通に使おうとすると、イベントとかストリームとかを作らなきゃいけません。正直、これの概念がいまいちわからないので、ただただ辛い。しかもイベントは「配信開始時間」と「配信終了時間」を入れなければいけないので、番組化するならいいけど「とりあえず配信できればいい」という場合に手間しか増えないから面倒くさいのです。
一方で、上記のようにRTMPを利用した配信をすると、自動でストリームが作られてる状態(ストリームが作られてるからRTMP情報が取得できる)なので、突発での配信にも利用できます。LiveWedge側にもアカウント認証とかしなくていいから、とにかく楽! 正直、配信方法なんてこれだけでいいんじゃ…

また、LiveWedgeは「APモード」ではなく 「クライアントモード」 で動作させました。LiveWedgeの制御をiPadでやりつつ、配信先の設定も同じiPadでやろうとすると、iPadがインターネットにつながってないといけないため、クライアントモードして別のAPを経由して動作させる必要があります。
直接接続ではないとはいえ、そんなに大きなデータをやり取りするわけではないので、これでも軽快に動作しました。

配線部分

配線途中。ここからまだ増える。 Photo by @uzulla

LiveWedgeには、4HDMI、1AUX、2OUTPUT、1SDカードスロットがあります。それぞれに何を繋いだのか、1つずつ紹介していきましょう。

HDMI 1

今回、映像入力のためのカメラとして、GH5を使いました。HDMI 1には、その映像を入力しています。この映像は基本的に、登壇者の姿を撮影し、PinPとして画面に埋め込んでいます。カンファレンスの配信なので、スライドが見れれば充分なんですが、動きのない画面だけが配信されていると見ている方も眠くなるので、ちょっとでも動きを出そうと思い、採用しました。

GH5は、ACアダプタ(カプラー)経由で電力を供給することで、無限に起動しつづける事ができます。今回も朝9時から午後6時過ぎまで使っていましたが、とくに不良はでませんでした。ただ、今回はGH5側での記録(録画)をしていないので、長時間連続録画時の動作については不明です。

HDMI 2

2つ目のHDMIには、登壇者がプロジェクタで表示しているスライドを入力に持ってきました。今回の会場は、HDMI経由でプロジェクタにつなぐタイプだったので、そこにHDMIスプリッタを挟み、20mのイコライザ付きHDMIケーブルを経由して入力しています。いやー正直、20mのHDMIケーブルがなんの問題もなく映像を持ってきてくれるとは思わなかったわ。念のため、イコライザ(増強装置)付きのものを購入しましたが、外部から電力を供給しなくても正常に動作しました。

HDMI 3

カンファレンスやセミナーを収録するときに一番問題になるのは、たぶん音ですよね。おそらくはマイクを使って話をすると思うので、そのマイクの音声をLINEとかで拾えればいいんですが、大抵はそうはいきません。だからといって、スピーカーから流れたものを何かマイクで拾おうとすると、変なエコーや歪みが出て辛い思いをするのです。そこで今回、おためしで採用したのがワイヤレスマイクです。といっても、お高いワイヤレスマイクを買う余裕はないので、もっと簡易な物を使いました。それがECM-W1Mです。簡易と言っても性能が悪いわけではなく、動作させるためにはSony製のハンディカムが必要、というものになります。いやむしろこれ性能いいよ! めっちゃクリアだよ!

んで、これを使うにはハンディカムが必要というデメリットはあるのですが、今回はむしろこれが功を奏してまして、一旦ハンディカムに送った音声を、ハンディカムの映像ごとLiveWedgeのHDMI 3に持ってくることにしました。LiveWedgeでは、音声と画面とを別々に制御できます。映像はHDMI 1を使うけど、音声はHDMI 3を使う、なんてことも可能なのです。

ハンディカムは、予備的にスライドと登壇者とをワンショットで録画していたのですが、これをLiveWedgeに持ってくることで、HDMI 1のGH5とかがトラブったり、登壇者がスライドの前まで移動しちゃったりして、画面が寂しくなったときに、さくっと切り替えちゃうという手もできるので、一石二鳥でした。

HDMI 4 / SDカードスロット

4つ目のHDMIには、実は何も繋いでいません。じゃあどうしていたかというと、LiveWedgeの機能にある「静止画像割当」に利用しておりました。セッションの前後、準備してる間の映像は配信時には流したくなかったので、その間に表示するカンファレンスロゴを出すようにしました。

AUX

LiveWedgeは音声入力の方法として、4HDMI以外にもAUX入力(赤と白の端子のやつ)があります。今回は、ここにiPhoneから音楽を流し込むようにしました。上記のHDMI 4に割り当てたカンファレンスロゴが表示されている間、同じ理由で環境音を配信したくなかったので、BGMを入力するようにしました。

OUTPUT 1 (Preview)

2つある出力の1つは、プレビュー用画面になります。LiveWedgeはライブ配信中はiPad側でプレビュー(4入力の確認画面)が表示されないので、Preview OUTPUTから外部モニタに出力しないと確認ができません。そのため、Preview OUTPUTは確認用の外部モニタを接続しました。

この出力、動作の特徴として、FPSが低いです。リアルタイムに出力されてる、というよりなんかカクカクします。おそらく、4つの画面を順次60fpsでだすので、1入力あたり15fpsとかになってるんじゃないかなーという感じです。更にその半分かも…

OUTPUT 2 (Program)

2つ目の出力は、実際に配信されてる画面と同じものが表示されます。なので、配信直前の画面を確認することができます。ここに外部レコーダーをつなぐと、配信と同じ画面を、配信前のクオリティで記録することができます。なので今回は、ATOMOS Ninja Assassinをつなぐことにしました。画面で配信画面を確認しつつ、それを録画し、あとでセッションごとの記録として編集に使うことができます。

LiveWedge以外は自分含めスタッフの私物

その他

HDMIスプリッタ

今回のキモの1つです。配信を行うにあたり、登壇者のスライドをカメラのレンズ越しではなく、直接拾って配信したい、という思いがありました。しかし、PCの画面出力を配信側に持ってきてしまうと、プロジェクタで投影することができないので、カンファレンスとして成立しなくなってしまいます。

そこで今回導入したのがHDMIスプリッタです。1入力を2出力に変換して、片方をプロジェクタに、もう片方をLiveWedgeに持ってきています。

20m イコライザ付きHDMIケーブル

PC画面をLiveWedgeに入れるための方法は解決できましたが、登壇台と配信台、撮影用カメラの位置関係の都合で、一般的によく用いられる数mのHDMIケーブルではすべてをつなぐことができません。数珠つなぎにして延長するなり、無線で飛ばすなり、LANに変換するなり、なんらかの方法で遠方まで運ぶ必要がありました。HDMIに限らず伝送ケーブルには仕様として動作保証されてる長さがあり、HDMIは一般的に10m以上の伝送を苦手としているようです。

今回はだいたい15mほどの距離があるので、単純なHDMIケーブルでは正常に伝送できない可能性がありました。そこで今回導入したのが20mのイコライザ付きHDMIケーブルになります。イコライザによって信号が増強されるため、10m以上の距離を伝送できるようになるそうです。

デメリットとして、このイコライザには入出力の方向と言うものがあり、普通のHDMIケーブルのようにIN-OUTを気にせず接続する、ということができません。ちゃんとイコライザのIN側を映像出力に、OUT側を映像入力に持ってくる必要があります。また、イコライザ自体がある程度の電力を必要とするようで、IN側から供給される電力が少ないと、正常に動作しないそうです。一応、そのための対策として、USBポートから別途電力をもってくるためのアダプタが付属しているので、心配ならとにかくUSBポートにも繋いでおきましょう。

ワイヤレスマイク

HDMI 3の項目でだいたい書いちゃってますが、登壇者の声をクリアに収録、配信するために、今回ワイヤレスマイクを導入しています。解決したいのは、HDMIケーブルと同じく「距離問題」。やはり登壇台で受けたものを、配信台まで持ってくるには長いケーブルを這わせるか無線化するかしかないのです。

一般的にワイヤレスマイクというと、通信精度の問題なのか、高価な送信機と受信機をセットで使わなければいけませんが、今回採用したECM-W1Mは、ハンディカム経由じゃないとダメ、という制限はあるものの、非常にクリアに音が録れていたので満足でした。こういう環境で音を録るときに気になるのは、登壇者の生声と拡声用マイク経由で会場に流れる音声とがかぶるんじゃないか、という問題。しかしこのワイヤレスマイクは、その時点でフィルタ処理されているのか、クリアに生声だけを拾ってくれました。むしろ逆に、司会者など登壇台の近くにいない人の声(拡声用マイク経由)は、ほぼほぼ拾えておらず、聞こえにくい問題が生じるくらいでした。

めっちゃ見やすいし聞きやすい!

懸念点

実際に運用してみて、気になった点、問題点等をまとめます。

直前準備必要

  • LiveWedgeの挙動検証のために、本番の1ヶ月前にもレンタルをしていろいろ試した
    • 基本的な使い方は理解できたし、配線のシミュレーションもできたので、本番この部分でけつまずくことはなかった
  • 本番直前に再度レンタルした際には、なんの動作確認もしていなかった
    • 動作自体に問題はなかったが、頻繁に使うことになるエフェクトチャンネルの設定などは予めやっておけばよかったと後悔している
    • エフェクトチャンネルは、どうやら本体ではなくiPad側(アプリ側)に記録されている模様。1ヶ月前のレンタル時に登録したものが全部残ってた

PinPの弊害

  • スライドだけだと画面がつまらなくなるので、PinPで登壇者を映すことにしましたが、登壇者が移動しがちな人だと、カメラのパン操作が必要になり面倒くさい
  • スライドに画面いっぱい文字がかかれていると、PinPの窓が文字にかぶるので、読めなくなる
    • 常時監視して、文字にかぶってそうならPinPを消す、という処理が必要
      • 消す処理は、PinPをエフェクトチャンネルとして登録しておけば、ワンタッチで切替可能なので便利

ワイヤレスマイクの運用

  • 今回、ワイヤレスマイクを登壇台に固定して集音したが、登壇者が移動しがちな人だと、マイクの前にいてくれないので音が拾えない
    • やはり登壇者の襟元につけてもらうべきか…
      • つけ忘れが生じそう
    • マイクに固定する、というのはアリかもしれない

HDMIスプリッタ

  • 登壇者の多くはMacを利用しているのですが、どうも非純正のDisplayPort <-> HDMI変換アダプタだとうまく出力されない場合があるっぽい
    • 純正の変換アダプタを利用することで回避できた

ProgramOUTPUTの動作不良

  • Program OUTPUTをNinja Assassinに繋いで、ProRes LTの720pで記録していたのだが、定期的に音声が歪み、聞くに堪えない状態になった
    • 音声の入力元であるハンディカムや、配信先であるYoutubeLiveのデータを確認すると、まったく歪んでいない
    • 入力のサンプリング周波数と、Ninja Assassinの記録用サンプリング周波数との違いの問題? 途中でズレが生じて、補正しようとした部分が歪んだ?
    • この不良が、LiveWedgeによるものなのか、Ninja Assassinによるものなのかはわからないが、相性は悪い可能性あり

結論

LiveWedgeはすごく使いやすいです。こまかい面倒臭さは大量にありますが、それ解決したいならウン十万くらいポンッと払ってお高いビデオミキサーとか買いましょう。配信部分がシンプルで済むなら、LiveWedgeで充分だなーという感じでした。LiveWedge、でた当初は不安定すぎて使えない、という話があったそうですが、今回使った限りでは非常に安定しており、問題なさそうです。

気を使うべきはLiveWedgeとかの配信デバイスではなく、それに入力するソースの方。カメラやマイク、HDMIケーブルなどいろいろ気を使ってあげる必要があることがわかりました。そしてちゃんと気を使ってあげれば、LiveWedgeでもカンファレンス配信くらいなら充分満足できる配信ができます。もっとお高いやつだと、少しは楽になるのかなー。

わがままをいうなら、エフェクトチャンネルを音声側にも用意して欲しいなー、というところでしょうか。セッション間のロゴ表示のときに、環境音とBGMとを切り替える作業も必要になるので、ワンタップでこれが実現できたら幸せなのになー、という感じでした。不満はそれくらいです。

YoutubeLiveの際にアカウントがうまく認証できなかったのは多分Googleのせいだしね!

言うてもいろいろ大変でしたよ Photo by @uzulla

コメントする

  • まだコメントはありません
記事特集一覧をみる