GoPro（カメラ）6台とVideoStitch Vahana VRとYouTubeで360°VRライブ配信する方法

　6台のカメラを使い、リアルタイムで6台の映像をスティッチ（縫い合わせ・繋ぎ合わせ）して、**360°VR映像をライブ配信**する方法のまとめです。

# 機材・環境など
## カメラ
・GoPro Hero 4 × 6台
　ライブ映像をHDMIで出力します。フルHD（1920x1080）×6台分の画面を繋ぎ合わせて、360°のVR映像を作ります。

![IMG_1309.JPG](https://qiita-image-store.s3.amazonaws.com/0/61168/9f151075-ef5e-ff73-be20-b0307e5db24a.jpeg)


## PC
ポイントはビデオカードとCPUです。

- ビデオカードはかなり高性能なものが必要。しかし今回使ったスティッチソフトであるVahana VRのver1.1はまだNVIDIA GeForce GTX 1080に対応していないので注意。1080が使えるともっと映像がきれいになるかも？今後のアップデートに期待です。

> NVidia GTX1080 is not supported

[引用元]Changelog for VideoStitch Vahana VR v1.1.0
http://www.video-stitch.com/changelog-for-videostitch-vahana-vr-v1-1-0/

- CPUは最高クラスのものが望ましい。今回搭載したのはインテル® Core™ i7-6800K プロセッサー。

あと、カメラ6台分の映像を入力するためのキャプチャーボードを空きスロットに装着する必要があります。

- ビデオキャプチャーボード（BlackmagicDesign DeckLink Quad 2）

※上記のビデオキャプチャーボードはSDI入力です。カメラのHDMI出力をわざわざSDIに変換しています（要HDMI→SDIコンバータ）。最初からHDMI入力のビデオキャプチャーボードでも問題ないですが、カメラとPCの距離が長い（10m以上の）場合は、HDMIでは規格上心配なため、SDI（BNC同軸ケーブル）にしました。

※SDIなら規格上100mくらいまでは大丈夫だろうと高をくくっていましたが、実際に接続してみると20数mくらいしか映像が届きませんでしたΣ(ﾟ口ﾟ;)（今回は50mでやりたかった）。テレビ用の撮影カメラ（ソニー製）とか家庭用のハンディカムビデオカメラ（ソニー製）だと問題なかったので、どうやらGoProの映像信号出力が弱いようです。HDMI→SDIコンバータにリクロッカー（信号増幅器）機能の付いたものを選ぶか、配線の途中にリクロッカーを通しましょう。

![IMG_1302.JPG](https://qiita-image-store.s3.amazonaws.com/0/61168/07e5a56e-0815-1a68-6624-8e169e5ad6f1.jpeg)


ソフトウェアでVahana VRを使いますので、下記公式の推奨環境も参考に↓。
http://support.video-stitch.com/hc/en-us/articles/206053807-Vahana-VR-hardware-requirements


## 周辺機材

- カメラ映像（HDMI出力）をSDIに変換するコンバータをカメラ6台分の6個（Blackmagic Micro Converter HDMI to SDI）。

※これにはリクロッカー機能が付いていないので、別に配線途中にリクロッカーを通すか、値が張りますが最初からリクロッカー機能のついたコンバータを揃える必要があります。カメラとPCの距離が20m以内ならリクロッカー機能は必要ないかもしれません。

- 集音するためのイヤホンとアンプとオーディオミキサー（Roland バイノーラル マイクロホン イヤホン、マイクロフォンアンプ、BEHRINGER XENYX 302USB ミキサー）

※イヤホンを左右に付けて、比較的人間に近い感覚で集音してみました（最初の写真のカメラの下に付いている黒いやつです）。

## ソフトウェア
・VideoStitch Vahana VR
　6つ（複数）のカメラの映像をリアルタイムでスティッチして１つのVR映像に変換し、ライブで配信するソフトウェア。カメラとカメラのつなぎ目を違和感なく合わせる処理がすごいです。
　http://www.video-stitch.com/live-vr/

## ネットワーク
・光回線（上りのスピードがMaxで40Mbpsくらい出てた回線を使いました）
　1440p、60fpsで配信するので最低でも上り15Mbps、できれば20～30Mbpsくらいの速さの回線が望ましいかと思います。

# 今回の構成
`カメラ×6` →（USBケーブル）→電源
　↓（HDMIケーブル）　　　　　　　　　　　
　`HDMI⇒SDIコンバータ×6` →（USBケーブル）→電源
　　↓（BNC同軸ケーブル 50m）
　　`リクロッカー`→電源
　　　↓（BNC同軸ケーブル）
　　　`PC（Vahana VRインストール済）`→電源
　　　　↓（光回線）
　　　　`YouTube`

↓上から見た眺め（GoProとイヤホンとその他配線）
![IMG_1288.JPG](https://qiita-image-store.s3.amazonaws.com/0/61168/0ca09052-6e22-8511-0f20-bfe2f249f09c.jpeg)


# ライブ配信設定
Vahana VRの公式サイトにもセッティングの方法が書いてあるので、そちらも参考に↓
http://support.video-stitch.com/hc/en-us/articles/203656926-How-to-set-up-a-6x-GoPro-rig-with-Vahana-VR

## GoPro
全部のカメラの電源を入れて、カメラモードにします。ビデオモードだと画面が16:9になって画面の上下が削られて出力されます。これだとあとでスティッチの繋ぎ目がおかしくなるので、フォトモード（4:3）（出力自体はフルHDで画面の左右に黒が入る感じ）に設定します。

## Vahana VR
### ダウンロード
ここから↓
http://www.video-stitch.com/live-vr/
トライアル版があるのでまずはそちらを試します。トライアル版だと配信する時に『VideoStich』のロゴが画面上に出てきます。

### 起動
![00000.png](https://qiita-image-store.s3.amazonaws.com/0/61168/874b9e5e-e5f0-e4be-7ef3-28cea1464bda.png)

### Projectの作成
↓右側のNew Projectをクリックします。（以前に作ったProjectは左に一覧表示されます。）
![0003.png](https://qiita-image-store.s3.amazonaws.com/0/61168/34561d8c-e691-a474-4495-a4d205cc6c1a.png)

↓プロジェクト名を入力します。
![0002.png](https://qiita-image-store.s3.amazonaws.com/0/61168/1e51d665-ab1e-d933-d415-24c39c665bfe.png)

### 映像入力を選択
↓今回はBlackmagic製の機器を使っているので3番目のBlackmagic・・・を選択します。
![0004.png](https://qiita-image-store.s3.amazonaws.com/0/61168/28764f2d-abf9-25e1-d50d-991a24565a7f.png)

↓6系統入力しているので、上から6つをチェックしていきます。下のEnable audioもチェックして入力系統を選びます。終わったら右下の保存ボタンを押します。
![000.png](https://qiita-image-store.s3.amazonaws.com/0/61168/727e6958-1e5c-6ca0-3099-0a44094743a2.png)

### 映像を繋ぎ合わせる
入力設定が成功すると、6つの画面が表示されます。
（オフィスの様子にモザイクかけています。）
![004.png](https://qiita-image-store.s3.amazonaws.com/0/61168/fb1a52e8-9a2f-1744-b692-13304da8da2f.png)

↓画面右側にあるinputs infoをクリックし、各窓の右上に付いているトリミングマークみたいなアイコンをクリックします。左右が黒縁になっているので、そこを削ぎ落とします。left 0→240、right 1920→1680にします。終わったら右下のチェックマークをクリックします。
![003.png](https://qiita-image-store.s3.amazonaws.com/0/61168/ff7b2b43-b41d-8387-0320-b1b0b865ccde.png)

↓左メニューのConfigrationのPanorama設定で出力解像度を設定します。YouTubeで1440p（2K。ライブ配信は1440pまでしかできない模様）で配信するので、横幅を合わせます。横幅を2560、縦幅は横幅の2分の1にしなければならないので、縦幅は1280に設定します。
※横幅を2560にしないとYouTube側で1440pで受け付けてくれませんでした。
![105.png](https://qiita-image-store.s3.amazonaws.com/0/61168/0c707f85-681c-91ae-c303-aad32dd2d3fd.png)

↓右上のCalibrationをクリックして繋ぎ合わせます。秒数を設定するところがありますが、0秒でもだいたいうまくいきますが、繋ぎ目が変になったりするようなら20秒とかにしてください。
![006.png](https://qiita-image-store.s3.amazonaws.com/0/61168/20b947be-7615-61e0-9052-2820da64caa3.png)

![007.png](https://qiita-image-store.s3.amazonaws.com/0/61168/dd0e5a13-5f91-e22e-9018-7d9ae3cadbdf.png)

↓繋ぎ合わさると下みたいな感じになります（モザイク多くてわかりずらくてすみません）。
![008.png](https://qiita-image-store.s3.amazonaws.com/0/61168/b8c0f776-c4b7-e9d0-58ef-64f56796d57c.png)

### 色あい設定
GoProの設定画面で色あいを調節します。
![009.png](https://qiita-image-store.s3.amazonaws.com/0/61168/e173780c-bc5c-87ca-7456-2aad982e43ba.png)

![010.png](https://qiita-image-store.s3.amazonaws.com/0/61168/1812315c-354c-500d-1f71-837f93f3ef4f.png)

↓左メニューのConfigrationに、Exposureという設定があります。
![013.png](https://qiita-image-store.s3.amazonaws.com/0/61168/e2d3344a-de7c-631d-6a5a-869fdfbc6eef.png)

↓OffになっているやつOnにしてExposure設定を有効にできます。が、あまりここの設定は機能しているようには見えない感じです。カメラ側の設定機能で露出調整した方が良さそうな感じです。
![012.png](https://qiita-image-store.s3.amazonaws.com/0/61168/a1dc5c9f-e9f2-2805-b26d-1e7751b7a466.png)

### 横軸・縦軸調整
↓Panorama画面にして、右のOrientationをクリックし、後は画面を上下にドラッグして画面真ん中の歪みを正してなるべく中央の横軸が水平になるようにします。左右にドラッグすると正面にくる画面の箇所を移動できます。
![100.png](https://qiita-image-store.s3.amazonaws.com/0/61168/b21032ac-3548-e250-3d17-27c6a01c0ec0.png)

↓右のGridを入れると調整しやすいです。
![101.png](https://qiita-image-store.s3.amazonaws.com/0/61168/57032de9-ec51-ca48-f2d6-eb8f4b461f7d.png)

↓完成
![011.png](https://qiita-image-store.s3.amazonaws.com/0/61168/06ad38a5-810a-8ab8-2374-ca8b251b512b.png)

## YouTube
### ライブイベントの作成とスタンバイ
まずYouTubeでライブイベントを作成します。ブラウザでYouTubeにアクセスしてログインし、『クリエイターツール』のページに移動します。
↓左のメニューの中の『ライブストリーミング』の『イベント』をクリックして、イベント一覧ページを開いたら右上の『新しいライブイベント』をクリックします。
![018.png](https://qiita-image-store.s3.amazonaws.com/0/61168/ff6e9cb0-394d-5cac-38eb-eaae86b3035d.png)

↓イベント名や配信開始時間などを入力します。
![019.png](https://qiita-image-store.s3.amazonaws.com/0/61168/1b45a622-b31a-5550-d06a-113c4237699e.png)

↓『詳細設定』の右下にある『このライブストリームは360°です』にチェックします（下の画像の赤枠部分）。チェックしたら右上の『予定を作成』をクリックしてイベントを保存します。
![020.png](https://qiita-image-store.s3.amazonaws.com/0/61168/b54130ca-f4ea-f364-b734-a3b8bb8d2956.png)

↓次に取り込み設定で『取り込みの基本設定』で『6Mbps～13Mbps（1440p）』を選び、エンコーダは『その他のエンコーダ』を選びます（下の赤枠部分）。
![021.png](https://qiita-image-store.s3.amazonaws.com/0/61168/d092907e-219c-b374-6476-db1bd48f0e7e.png)

↓『ライブコントロールルーム』に移動して、映像が送信されてくるのをスタンバイします。
![022.png](https://qiita-image-store.s3.amazonaws.com/0/61168/fe86b46b-f7a3-1d74-0237-6f1b43d5a10d.png)


## Vahana VRとYouTube
↓YouTubeの設定が終わったらVahana VRに戻ります。左上のメニューアイコンをクリックして、左上のOutpusをクリックします。
![013.png](https://qiita-image-store.s3.amazonaws.com/0/61168/baa18482-1a58-6a6a-384a-732a7e860697.png)

↓＋Add a bew outputを選びます。
![102.png](https://qiita-image-store.s3.amazonaws.com/0/61168/441ae3ff-e224-e1c5-01bd-21bd481482a2.png)

↓3番目にYouTubeがあります。ここをクリックすると『Add a Google acount』と出てきますので、GoogleアカウントログインしてVahana VRとYouTubeを連携させます。
![016.png](https://qiita-image-store.s3.amazonaws.com/0/61168/3e477164-f450-563e-63ac-4207c95d11e5.png)

↓YouTubeにログインできたら、さっき作成したライブイベントが表示されるので、そのイベントをクリックします。
![024.png](https://qiita-image-store.s3.amazonaws.com/0/61168/4ecbcda9-f049-a091-f351-7925cf6a1c0e.png)

↓配信設定を編集します。Bitrateを上げます（今回は24000kbpsにしました。回線に依存すると思うので要調整です。）。最後に右下の保存するアイコンをクリックします。
![104.png](https://qiita-image-store.s3.amazonaws.com/0/61168/290e8eca-e0f4-bb45-485e-ed9f37d78511.png)

↓Panorama画面に戻り、右上にあるYouTubeアイコンを押します。ブラウザに戻って、YouTubeのライブコントロールルームで『ストリーミングを開始』すれば配信スタートです。
※映像処理に時間を要するため、配信までに30秒～1分ほど遅延が生じるので注意。
![103.png](https://qiita-image-store.s3.amazonaws.com/0/61168/bde7031d-8920-f7c4-8727-61a0537e2de4.png)

☆公式解説動画もあるのでそちらも参考に。
http://support.video-stitch.com/hc/en-us/articles/220181788-How-to-live-stream-360-content-to-YouTube

# 視聴確認と方角調整
　スマホのYouTubeアプリを起動し、ライブ配信中のページにアクセスし、スマホを傾けたり指で画面を操作すると、360°画面が動くことを確認します。現実に見える方角の景色とVRで見る方角の景色がズレていることがあるので、先ほどのOrientationの設定で画面を左右に移動させて、北なら北の方角に見える景色を現実と合わせます。

# VRライブ配信して思ったこと
## 映像画質のクオリティアップが必要
360°の全方位合わせて2K画質の配信だったので、見える視野角の範囲はだいたいSD画質くらいにしかなっていなかったと思われる。もっとキレイな臨場感溢れる映像にするためには、インフラやハード、ソフト面での改良が求められるかと思います。

- YouTubeの360°ライブストリーミングの4K対応待ち（現在は最大2K）
- Vahana VRのNVIDIA GeForce GTX 1080対応待ち
- もっと高性能なカメラを使う（6台必要なのでお金がかかります！高い！）
- 配信ビットレートを上げるために、上り回線のもっと速い回線を準備する

## その他

- VRゴーグル（VRスコープ）のようなものの普及が必要。あるとディスプレイで観るよりやはり体感が全然違い、観ていてびっくりするような感動が味わえるかも。
- 観る側のダウンロード環境が必要。光回線またはWifiなどの高速回線環境が整備されていないと、観る側にもかなり負荷がかかって、ストレスになってしまう。ネットワークが混線しているとYouTubeアプリ側で自動で画質が低減されて、ほとんどモヤモヤ映像しか観れない状況もあり。

## 最後に
配信したVRライブ中継をVRゴーグルを使って観てみましたが、現実で観るよりももしかするとVRで観た方がすごいかもと思ってしまう程の新感覚体験でした。クオリティがもっとあがっていけば、まさに現実よりもすごいことになるかもしれません。今後のVR技術の発展に期待です。