YouTubeでライブ配信してみたときのメモ

「プログラミング知識」とはあんまり関係ないけれど、メモ。

## 準備したもの

### ハードウェア

- PC
- HDMI出力があるビデオカメラ
- HDMI エンコーダー
- ケーブル類

それから、実際には2カメ構成だったので、以下を追加。

- デジタル一眼カメラ

あと、忘れがちだけれど、電源の延長ケーブルは必須だった。

### ソフトウェア

- [OBS Studio](https://obsproject.com/ja)
- 一眼レフカメラをWebCamにするソフト[^1]

[^1]: カメラはCanonのEOSを使ったので、[EOS WebCam Utility](https://cweb.canon.jp/eos/software/ewu.html) ... あ、これはソフトウェアの部に書くべきだったか

## それぞれを接続する

ビデオカメラは映像とマイクから録る音声をHDMIに出力するように設定する。多分、特別な設定じゃないけど、業務用の良いカメラだと逆にいろいろ設定できすぎちゃって、「あれ？音声聞こえない？」ってなったりするので、要注意。

HDMIケーブルは一方をビデオカメラに、もう一方をHDMI キャプチャーに接続する。
使ったビデオカメラはHDMI mini コネクタの口しかないヤツだったので、[Amazon BasicのHDMIケーブル](https://www.amazon.co.jp/dp/B014I8UHXE/)を買った。
HDMIキャプチャーは、[アイ・オー・データのGV-HUVC/S](https://www.iodata.jp/product/av/capture/gv-huvcs/index.htm) を買った。HDMIキャプチャーとPCとは[USB-Cケーブル](https://www.amazon.co.jp/dp/B01GGKYVSY)で接続した。

デジタル一眼カメラは、USBケーブルを介してPCに接続する。PCには[EOS WebCam Utility](https://cweb.canon.jp/eos/software/ewu.html)をインストールして、カメラで撮影した画像をPCに入力できるようにしておく。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/eb1ad568-2ef6-fe09-9281-4370fec030a1.png)


### HDMIキャプチャーが必要な理由

PCにはHDMIのポートがついているので、このクチを使ってHDMIケーブルでビデオカメラと直結すれば映像をビデオカメラから取り込むことができるのではないか？と考えていたのだけれど、これは完全に誤解だった。
PCのHDMIポートはPCの画像をディスプレイなどに出力するためのポートであって、ビデオカメラ等から映像を入力するためのポートではないからだ。
ということで、PCにビデオカメラからの映像を入力するためにはHDMIキャプチャーが必要になる。

## PC側の準備

PCには[OBS Studio](https://obsproject.com/ja)をインストールする。OBS StudioはGPLv2ライセンス、、、つまりフリー。無料で使える。こんな便利なものが無料。

### OBS Studioの設定

YouTubeでライブ配信したかったので、「サービス」には「YouTube - RTMP」を選ぶ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/5f1db228-6f31-ee3a-3a30-95dee6795b4d.png)

「ストリームキー」は、YouTubeの配信設定の画面からコピペする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/38da84b7-07ca-0734-deca-ab8278435159.png)

映像入力ソースの「+」ボタンを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/4986cfd5-0fe1-fae5-9c5f-c512826147e1.png)

「映像キャプチャデバイス」を選択する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/0e782c8e-0b74-d460-4513-723009d0cc4a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/94ca7b41-4dae-9d8e-d378-a97a1dc1bf22.png)

![スクリーンショット 2020-12-03 092125.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/16603f7d-8f1c-80f4-807d-c05c85f77122.png)

HDMIキャプチャーを接続していると、「デバイス」にはその名称(上図の「I-O DATA GV-HUVC, Video Capture USB」がソレ)が表示されるはずなので、それを選択する。
なお、[アイ・オー・データのGV-HUVC/S](https://www.iodata.jp/product/av/capture/gv-huvcs/index.htm)をOBS Studioで使うための設定方法については、[マニュアルページ](https://www.iodata.jp/lib/manual/gv-huvc_s/index.html#p2_1)に詳しく説明がされているので、そちらを見た方が良い。

### YouTube側の設定

「自動スタートを有効にする」をONにしておくと、「配信開始しなきゃ！」ってバタバタしてるときに、一つ手間が減るので良い。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/e880b59b-3e0f-8582-d505-a96311308f2b.png)

「ライブ配信の遅延」については画質重視なら「通常の遅延」にしておくのが無難。いろいろ条件にもよるけれど自分の場合は1分から1分半くらい遅延した。「低遅延」で20～30秒くらい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/de7551bc-f1e7-80b8-58dc-7be1d434c986.png)

### 2カメ構成

カメラを2台使った。ビデオカメラはメイン画像として全画面を使用、デジタル一眼からの画像はいわゆるワイプとして、画面の端に常に表示しっぱなしにした。

デジタルカメラから入力される画像は、画面の一部をトリミングして表示したかったので、OBS Studioの画面上でAltキーを押しながらマウスで画角を調整した。
Altキーを押しながら、映像キャプチャデバイスのウィンドウの枠をクリックするとウィンドウ枠が緑色になって画面のトリミングができるようになる。
Altキーを押さない場合は、画面の拡大縮小になる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/3d9393ee-2b1f-b426-da3e-c536e55a373d.png)

## 実行してみた結果

ビデオカメラから入力される1920x1080の映像を1280x720サイズに縮小してフレームレートが30fpsの画像としてYouTubeで配信した。

上述のように「低遅延」に設定して20～30秒くらいの遅延状態になった。

### 注意点

音声が実際にどのくらいの大きさで流れているのか？が直感的に分かりづらいので、実際にYouTubeの配信画像をモニタしながら調整したほうが良い。
しかし配信PCでモニタしようとすると、「実際にその場で出ている音」が取り込まれたあと、遅延して同じ音が今度はYouTubeから聞こえてきて、さらにそれをマイクで拾ってしまって再度配信に乗ってしまい、またそれが遅延してYouTubeから聞こえてきて、、、と、ずっと同じ音が何度もループして聞こえてくることになる。それを防ぐために、配信モニタ用のPCあるいはスマホを準備しておくべき。

入力ソースとして「テキスト」を選択することでテロップを入れることができるが、入力している最中の文字が配信に流れないように注意（下図の目のアイコンを確認する）。予測変換で変な候補が出てくる様子が全世界に配信されるとみっともない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15553/3bc3b56e-46e3-856c-e49e-c538e9e923f9.png)

PCは有線でLANに接続しておく。Wi-Fiではどんなトラブルで速度が低下するか分からない。