OBS Studioを使ってデモの動画を撮影する

[OBS Studio](https://obsproject.com/ja)は、twitch, mixer, YouTubeなどのライブ配信などでよく使われる
オープンソースのソフトウェアです。
録画機能もあるので、デモアプリ等の録画撮影にも利用できます。
録画した動画を、あとでYouTubeなどにアップロードもできます。

録画後は、[OpenShot Video Editor](https://www.openshot.org/ja/)などのでオープンソースの動画編集ソフトで、
キャプション付けたり、効果音入れたりもできます。

私は自分が開発に関わったアプリをデモする機会が、まあまあよくありますが、
心配性なので、デモ環境に問題があった場合用に、
デモ動画をあらかじめ準備しておくことが多いです。


# 1. デモ録画環境の準備

## 1.1. デモの録画環境

基本的には、デモを行うときと同様の注意を払う必要があります。
大きな会場でデモする場合も、小さな会議室でデモする場合も、
デモは他人に向けて行うと思います。
見せてはまずい情報(見られてはいけない情報)が画面に映りこまない注意が必要です。
例えば、自分が普段やりとりしているメールやチャットの画面が映り込むと、
場合によっては、非常にまずいことになると思います。

できることならば、デモ専用のパソコン等を準備したいところです。
難しい場合は、デモ専用のローカルユーザを作ってデモすることも
考えるとよいかもしれません。

少なくとも、デモの際には、
通知をなるべくOFFにする、必要ないアプリは徹底的に終了させておく、
などは必須かと思います。

デモの録画の際も、同様の下準備が必要です。


## 1.2. OBS Studioのインストールと起動

[OBS Studioのサイト](https://obsproject.com/ja)から、
環境にあったソフトを探して、最新版をインストールします。
OBS Studioのサイトは、[こちら](https://obsproject.com/ja)です。

基本的には、インストーラの指示に従ってインストールしていくだけのはずです。

インストール後の初回起動で、
[自動構成ウィザード]が表示されると思いますが、
ひとまず、[キャンセル]でもOKと思います。
あとで、このウィザード使いたい場合は、
[ツール] > [自動構成ウィザード]から実行できます。


# 2. デモ動画撮影用に設定する

デモ動画撮影する程度の目的であれば、それほど凝った設定は必要ないと思います。

[ファイル] > [設定]メニュから、設定していきます。

## 2.1. [出力]設定をする

設定メニュの左側から、[出力]を選びます。

| 設定項目     | 無難な設定内容     | 備考     |
| :------------- | :------------- | :------------- |
| 録画ファイルのパス | 適当な出力先  | 指定したパスに動画ファイルができます |
| スペースなしのファイル名を生成 | チェックしておくのが無難  | - |
| 録画品質 | 高品質、ファイルサイズ中  | デモ動画程度なら高品質設定で充分かも |
| 録画フォーマット | mov | デモ動画を再生するマシン上で再生しやすいフォーマットを選ぶ |
| エンコーダ | ソフトウェア (x264) | 環境に合わせて選ぶ |

![Settings01.png](https://qiita-image-store.s3.amazonaws.com/0/211666/d00c1e78-a80d-ec0e-f24b-6c18da89b420.png)

一旦、[適用]ボタンを押しておきます(全部設定終わってからでも良いです)。


## 2.2. [音声]設定をする

設定メニュの左側から、[音声]を選びます。

デモ動画撮影目的であれば、あまり変更する必要はないと思います。

音が鳴るようなアプリであれば、
[デスクトップ音声デバイス]は、[規定]にしておけばOKと思います。
音入れたくない場合は、**ここで無効にするのではなく**、
録画開始前に、音声出力をミュート(ローカルマシンか、OBS Studioのメイン画面)する方がよいと思います。

マイクの音声で声なども録画に入れる場合は、
[マイク音声デバイス]も、適切に選んでおきます。

一旦、[適用]ボタンを押しておきます(全部設定終わってからでも良いです)。


## 2.3. [映像]設定をする

設定メニュの左側から、[映像]を選びます。

ここは、目的に合わせて選ぶ必要がありますが、
多くの場合は、デモ動画レベルの目的であれば、
1280 x 720の30fpsの出力設定で問題ないと思います。

| 設定項目     | 無難な設定内容     | 備考     |
| :------------- | :------------- | :------------- |
| 基本(キャンバス)解像度 | 撮影環境のデスクトップ解像度と合わせるか、出力(スケール)解像度に合わせるのが無難  | 録画時に出力(スケール)解像度に拡大縮小される |
| 出力(スケール)解像度 | 1280x720くらいでも普通はOK  | - |
| FPS共通値 | 30程度で普通はOK | FPSが売りのゲームとか映像作品でなければ、30くらいで良い |

一旦、[適用]ボタンを押しておきます(全部設定終わってからでも良いです)。


## 2.4. [ホットキー]設定をする

マウスでボタン押して、録画開始、終了してもよいですが、
録画映像にマウスカーソル入る場合もあるので、キーボードで、
録画開始、終了できるようにしておくのが無難だと思います。

設定メニュの左側から、[ホットキー]を選びます。

[録画開始]と[録画終了]に、
**ローカルマシンのショートカットや、デモ時に起動しているアプリのショートカットと被らないように**、
ショートカットを設定しておきます。

設定したい項目(例えば、[録画開始])右のテキストボックスに、
マウスでフォーカスを合わせてから、
実際に設定したショートカットキーをキーボードから押します。
複数キーの組み合わせもできるので、デモ中に誤って押す可能性が低い組み合わせにしておきましょう。
(Alt + Shift + Rなど。)

![Settings02.png](https://qiita-image-store.s3.amazonaws.com/0/211666/0d5ef1ca-3e13-effa-3117-cfe0b825e8d8.png)


## 2.5. ひととおり設定完了

[OK]ボタンを押して設定の適用と保存をします。

設定ファイルは、あるディレクトリに保存されるようなので(Windows版のみ確認)、
[ファイル] > [設定フォルダを表示]で、設定保存先が表示できます。
OBS Studioを閉じて、このディレクトリ名を変えてバックアップ(消してもいいけど)しておけば、
設定がリセットされます。

# 3. デモ動画撮影用のシーンを構成する

[シーン]は録画される画面レイアウトになります。
複数のシーンを準備しておいて、録画中に、画面レイアウトを切り替えることもできます。
アプリが大きめのシーンとか、カメラが大きめのシーンとか。

とりあえず、まずは、シーンは１つにして、録画してみるのがよいと思います。

## 3.1. シーンにソースを追加していく

１つにシーンに複数のソースを追加して、録画される動画の画面レイアウトを決めていきます。

ソースは、アプリケーションの画面だったり、デスクトップの画面だったり、
カメラの画像だったり、テキストだったり、静止画像などなど、
いろいろ指定できます。

以下のレイアウトは、(優先度の説明目的のため、)あまり良いレイアウトではありませんが、
１つのシーンに複数のソースを配置できます。
画面下側の[ソース]リストの上から順に、前の方に表示されます。

![Scene.png](https://qiita-image-store.s3.amazonaws.com/0/211666/e1c88fc8-89c1-70c9-1f77-534faec920fc.png)


[OBS Studio]の画面下側に、[ソース]という項目があるので、
[+]ボタンで、いろいろなソースを追加することができます。

![AddSource.png](https://qiita-image-store.s3.amazonaws.com/0/211666/aa63ae27-857e-c56d-8709-b47c10ffd39c.png)


### 3.1.1. ウィンドウソースを追加する例

[+]ボタン > [ウィンドウキャプチャ]を押します。
[新規作成]がチェックされた状態で、分かりやすい名前を入力して[OK]を押します。

次の画面では、
[ウィンドウ]から、シーンに配置したいウィンドウを選択します。

[ウィンドウの一致優先順位]は、[ウィンドウのタイトルに一致する必要があります]の選択を基本として、
問題ある場合は、他を選ぶようにすると良いと思います。
(意図しないウィンドウをキャプチャしないように安全な方を選ぶのが基本。)

マウスカーソルも録画に含めたい場合は、[カーソルをキャプチャ]をチェックします。

[OK]を押すと、シーンのプレビューに選択したウィンドウが表示されるはずです。

> マウスを使って位置やサイズを調整できます。
> Ctrlを押しながら、プレビュー上のウィンドウ端でマウスをドラッグさせると、
> 縦横比を保ったまま、サイズを変更できます。

### 3.1.2. カメラのソースを追加する例

カメラで人を写したり、デモ機材を写す場合は、
[+]ボタン > [映像キャプチャデバイス]を選択して、ソースを追加します。

[新規作成]がチェックされた状態で、分かりやすい名前を入力して[OK]を押します。

次の画面では、
[デバイス]から、カメラのデバイスを選択します。

カメラデバイスが表示されない場合は、ドライバが適切にインストールされているかや、
アプリからカメラにアクセスできるようにOS側の設定が適切かを確認します。

> その他、外部のUSBデバイスなどからの映像を移す場合も、[映像キャプチャデバイス]のソースを利用します。

### 3.1.3. カメラのソースにクロマキーを適用する例

 カメラ画像は、クロマキー合成等も可能です(カメラ画像に限ったことではありませんが)。

よくあるのは、緑の布を背景においておいて、
その前にいる人物や物体を他の画像(他の動画とかCGなど)と合成するアレです。

OBS Studioのメイン画面の、[ソース]から、カメラソース(自分で名前決めたやつ)をマウスで右クリックします。
[フィルタ]を選択して、[エフェクトフィルタ]下の[+]ボタンから、[クロマキー]を選択します。

適当な名前を入れて、[OK]を押します。

[色キーの種類]で選んだ色に近い色を透明として合成することができます。
カメラでは人物を写す場合が多く、肌の色の補色に近い、緑か青が利用される場合がほとんどです。
緑か青以外(Custom)でクロマキー合成する場合は、相当調整難しくなると思うので、
素直に緑か青の布使ってクロマキー合成するのがお勧めです。

綺麗にクロマキー合成できない場合は、
プレビューを見ながら、[類似性]のスライド等を調整していくとよいと思います。

> OBS Studioでは、クロマキー以外にも様々なフィルタを利用できます。

### 3.1.4. ソースの表示優先順を調整する

OBS Studioのメイン画面の、[ソース]の上にあるものほど、前の方に表示されます。
優先度を変えたいソースを選択したうえで、下側の矢印っぽいアイコンで優先度を変更できます。

### 3.1.5. その他のソース

以下が主な映像ソースになります。

| ソース名     | 概要     | 備考     |
| :------------- | :------------- | :------------- |
| ウィンドウキャプチャ | アプリのウィンドウ  | ウィンドウのタイトルなどを元に特定のウィンドウをキャプチャする。 |
| ゲームキャプチャ | ゲーム画面  | ゲームに最適化されたキャプチャ。利用できない場合は、ウィンドウキャプチャを使う。 |
| テキスト | 固定のテキスト | - |
| ブラウザ | 指定したURLのWebページ | - |
| メディアソース | 指定した動画ファイルの映像 | - |
| 映像キャプチャデバイス | 外部のUSBカメラやキャプチャデバイスからの映像 | - |
| 画像 | 指定した画像ファイルの画像 | - |
| 画像スライドショー | 指定したディレクトリ中の画像や、複数の画像ファイルを一定期間ごとに切り替える | - |
| 画面キャプチャ | デスクトップ画面 | 見えてはいけない情報がみえないように特に注意が必要。 |
| 色ソース | 指定した色のパネル | 背景色などに使う。 |
| 音声入力キャプチャ | マイクなどの音声 | シーンごとにキャプチャデバイスを細かく設定したい場合などに使う。通常はこのソースを使う必要はない。 |
| 音声出力キャプチャ | 音を出すデバイスの音声 | シーンごとにキャプチャデバイスを細かく設定したい場合などに使う。通常はこのソースを使う必要はない。 |



# 4. デモ動画を撮影する

あとは、撮影を開始するだけです。

## 4.1. まずは実験を

とりあえず、5秒か10秒程度でうまく撮影できるか試すのが良いと思います。
さきほど設定した録画開始、終了のショートカット(ホットキー)等も試しておきましょう。
(録画開始、終了は、OBS Studioのメイン画面のボタンでもできます。)

実際に録画開始と終了を行って、
出力されたファイルを再生してみます。

ローカルマシン上の音と、マイクの音も両方とも録画(録音)する場合は、
双方の音の**バランスが適切か**どうかも確認します。
音のバランスが悪い場合は、
OBS Studioのメイン画面の、[ミキサー]などで調整します。

マイクの音と画像がズレる場合は、
フィルタを使って遅延を入れて調整できます。
よほどのズレがない場合は、デモ動画程度では調整なしで妥協するのもアリかと思います。

あとで編集するなら、マイクの音は、[Audacity](https://www.audacityteam.org/)などで
別撮りして編集時に音量バランス調整する方法もあります。

## 4.2. 実験がうまくいったら、あとは撮影本番です

実験でいろいろ調整が終わったら、撮影していくだけです。
撮影したいものを一気に撮影しきる方針もあれば、
こまめにカット決めて、短い動画を撮っておいて、あとで編集でつなぎ合わせる方針など、
いろんな方針あると思いますが、あとは撮るだけ(または、撮って編集するだけ)です。