OBS Studioでライブ配信環境を作る

ニコ生、ツイキャス、そしてYoutube Live。その他にもかつては、UstreamやらPeercastといったものもあったライブ配信。FMEでエンコードしながらFLVで配信していた時代は終わり、現在は配信といったらOBS Studioがデファクトスタンダード。NVIDIAのGPUにも対応していたり様々なオプションで機能拡張が出来たり。

しかし、実際に配信をやってみようと思うとやはりハードルはある・・・ということで、OBS Studioでのライブ配信が誰でも出来るように手順をまとめてみることにしました。ここで紹介するのは様々なテクニックのほんの1部。それくらい奥が深いのです。

今回利用するツール

  • OBS Studio
  • スマートフォン(今回はZenfone8 flipを利用しています)
  • GoPro

今回はmacOSでのインストールですが、基本的にWindowsであっても使い方そのものは同じです。また、iPhoneやGoProをカメラソースとして利用する事が可能です。GoProそのものの使い方に関しては以下のエントリーを参考にしてみてください。

※ちなみに公式サイト以外でも、Steamでソフトウェアが配信されていたりします。β版などはGithubでメンテナンスされています。Microsoft Storeでもダウンロード出来るようになっています。

※また、OBSをベースにフォークして開発されてるStreamlabs OBSと呼ばれるものも存在します。

大解像度時代 - GoProで動画を作成する

セットアップ

OBSのインストール

インストールそのものはとても簡単。また日本語対応なので英語UIで困るといったこともありませし、何よりウェブに知見がたくさんあるので、マイナーな配信ソフトで操作がわからないといったようなこともアリません。

  1. Downloadサイトを開き、今回はM1 Macでの作業なのでarm64/Apple Siliconを選択します。
  2. DMGファイルなのでダブルクリックしてマウントし、OBSを掴んでApplicationフォルダにドラッグアンドドロップします。
  3. OBS Studioを起動してみる
  4. 拡張機能がブロックされたと出るので、システム設定を開くをクリックする
  5. セキュリティの項目でブロックされてる旨のメッセージが出てるので、許可をクリックする

図:インストールそのものはとても簡単

図:システム設定で許可を与える

図:起動してみた様子

OBSの設定

配信設定を弄る

設定を変更する

とりあえず標準とも言える設定だけを行います。メイン画面の右下にある「設定」をクリックして設定画面を出します。

  1. 出力を開き、出力モードを詳細に指定する
  2. 映像エンコーダは取り敢えず、x264でオッケー(ハードウェアエンコーダを利用する場合は次項で設定)
  3. ビットレートは数値が高いほど高クオリティですが、それだけマシンスペックを要求し、ネットワーク帯域を要求します。1500〜5000の間で設定しましょう。(ゲームなど画面書き換えが大きいものほど高めに設定が必要。但し配信先で上限値が設けられてることがある)
  4. バッファ関連はオフ。オンにすると画質は向上するものの遅延が発生する場合があります。
  5. キーフレーム間隔は2を設定する。
  6. レート制御はCBRのままでオッケーですが、VBRは可変ビットレートですがマシンパワーを要求します。
  7. 次に、映像タブを開く
  8. 基本キャンバスは取り込み時の解像度です。あえて小さめの1280x720にして画質向上を狙う場合もあります(高解像度の場合ノイズが乗る可能性があるため)
  9. 出力キャンバスは8.の設定と通常は同じサイズを指定します。配信用の解像度です。
  10. FPSについてはフレームレートです。カメラが60fpsなどに対応してるなら60を指定し、そうでなければ30を指定します。
  11. 縮小フィルタはケースバイケースで変更します。

とりあえずはこれでオッケーですが、ライブ配信する内容によって/配信サイトによってビットレートなどの数値は変更する必要があります。音声についても同様です。

図:環境によって値は変更が必要

ハードウェアエンコーダ

M1 MacやNvidiaのRTXシリーズなどを使ってる場合、GPUを利用したハードウェアエンコードを利用できます。前述の設定における出力に於いて、映像エンコーダを以下のように設定します。Windowsの場合、RTX40シリーズなどを搭載している必要があります。

  • M1 Macの場合:Apple VT H264 ハードウェアエンコーダ
  • Nvidiaの場合:NVIDIA NVENC H.264

出力をリスケールするのチェックは外しておきましょう。Nvidiaの場合は追加の設定があり

  1. Look-aheadのチェックは外しておく
  2. 心理視覚チューニングはチェックを入れておく
  3. GPUは0を指定
  4. 最大Bフレームは2の設定のまま
  5. プリセットは高品質を自分は選びました。
  6. プロファイルはHighを選択する

図:GPUのパワーを借りることが可能

図:Nvidiaの場合の設定

GTX960からRTX4060にパワーアップしてみた

配信ソースの指定

ソースは1個だけじゃなく複数のソースを同時に追加して重ねたり拡大・縮小で合わせることが可能です。レイヤ構造になってるので、1度の配信で画面、ウェブカム、静止画などといった感じで組み合わせて、学習教材といったものを簡単に構築が可能になります。

GoPro

M1 MacとGoProを接続して、このカメラをOBSのソースとして使えるか検証してみました。Google Meetなどでもし認識していない場合、アプデが溜まっていたり、OSのアプデでアプリ自体やGoPro Webcamのアプリが古い可能性があるので

  • GoPro Quikをアップデート
  • GoPro Webcamをアップデート
  • スマフォのGoPro QuikでGoPro自体のコンテンツアップデート(GoPro側でWiFiをオンにしておく必要あり)

をしてから再度接続しなおして、リストに出てくるかをまず確認しましょう。Google Meetのリストに選択肢として出てるならば、macOSに認識されてるので、

  1. 有線ケーブルでmacOSとGoProを接続する(接続モードはGoPro Connectである必要があります)
  2. GoPro Webcamアプリを起動する
  3. 上のメニューバーにGoPro Webcamのアイコンが出てるはずなので、クリックする
  4. プレビューを押して表示されればオッケー
  5. OBSを起動する
  6. ソースの右下の+をクリックして、「映像キャプチャデバイス」を追加する
  7. デバイスで「GoPro Webcam」が出てくるので選択する
  8. OKを押して閉じる

これで、GoProをウェブカムのソースとして選択し、OBSで配信が可能になります。有線のみなので自由度は低いですがスマフォがしょぼい場合には有益な選択肢になります。但し、macOS Sonomaの場合、GoProがうまくmacOSに認識されないようで、その場合は以下の作業を行う必要があります。

  1. macをシャットダウンする
  2. 電源ボタンを長押しでリカバリーモードを起動する
  3. オプションを開く
  4. メニューからターミナルを開く
  5. 以下のコマンドを実行する
  6. ターミナルを閉じてmacを再起動する
  7. 認識するようになる。

※但し、GoProは単体利用の場合はYoutube Liveに無線配信が出来るのですが、OBS経由の場合は有線でなければ利用できません。しかし、Redditによると、Camera Tools for GoPro Herosを使うことでPC側から無線でGoProの映像を補足して使えるっぽい。。

図:アプデが溜まっていた・・・

図:やっと利用できるようになった

iPhone

iPhoneやiPadのカメラをOBSのソースとして利用するのは結構大変です。iOS16以降に装備された連携カメラ機能でiPhoneのカメラをmacOSのFacetimeで外部カメラとして利用可能になりましたが、新しいiPhoneが必要です。あいにく自分は古いデバイスしか持っていないので検証できず。

そこで別の手段としてDroidCamと同じような手段でiOSデバイスからの映像/音声を転送してOBSでキャプチャしてみたいと思います(但しこちらは有線での接続となります)。

  1. こちらのサイトからmacOSのApple Silicon用プラグインをダウンロードしてインストールする
  2. iPhoneもしくはiPadに対して、Camera for OBS Studioをインストールする
  3. macOSとiOSデバイスを有線ケーブルで接続する
  4. OBSを起動する
  5. ソースの右下の+をクリックし、iOS Cameraを選択する
  6. ダイアログが出てきたら、iOSデバイスを選択する(今回はiPadを接続してるのでそれを選びました)
  7. LatencyはNormalを選択しておく
  8. iOSデバイス側でCamera for OBS Studioを起動する
  9. Continueをクリックし、Permissionsでカメラとマイクロフォンのアクセスを許可する
  10. Continueをクリックし、カメラが写ったら成功
  11. 8.のOBS側にもカメラ映像が出てくるのでOKをクリックする

これで古いiOSデバイスであっても外部カメラとして利用してキャプチャすることが可能です。課金してNewTek NDIという機能を利用するとワイヤレスでも行けるようになるみたい(また、watermarkが入るので要課金みたいですね)。

類似の方法として、NDI HX Captureというアプリを使った手段があります(こちらは有料アプリですが、ワイヤレスで接続が可能です。)

図:iPadのカメラからキャプチャしてみた

Android

手持ちのAndroidをOBSのカメラソースとして利用するには、DroidCamを利用すると良いでしょう。以下の手順でソース指定可能です。ワイヤレスで利用出来るので自由度が高いです。

  1. DroidCamプラグインをダウンロードして、macOSにインストールする
  2. Androidスマフォ側にもDroidCam OBSをインストールする
  3. IPアドレスが出てくるので、控えておく
  4. PCもAndroidも同じWiFiに接続しておく必要があります。
  5. OBSを起動する
  6. ソースの左下の+をクリックして、Droidcam OBSを選択する
  7. OKをクリックする
  8. ダイアログが出るので、解像度を指定し、WiFi IPを使用するのままで行く
  9. 3.のIPアドレスを入力する
  10. Audioを有効化するとスマフォ側音声を利用します。
  11. 有効ボタンをクリックする
  12. OKをクリックすると接続しに行きます。
  13. スマフォ側でNew AppとしてDroidCam OBS Connectionとして接続が検知されます。OKをタップする。
  14. すると、OBS側にスマフォカメラの映像が出てくるようになります。

あとはサイズなどを調整して配置すれば、このデータと音声が外部に配信されることになります。類似のものにIriun Webcamといったアプリもあります。(こちらは有線接続でも利用が可能のようです)

※無償版は720pに制限され、またウォーターマークが入ります。スマフォ側のアプリ内課金で制限を除去することが可能です(1950円で買い切りのようです)。

図:Androidカメラの映像が飛んできた。

図:アプリ側で検知される

図:課金で制限除去可能

ウィンドウを指定

PC上のアプリケーションの操作の様子などをライブ配信するようなケースで利用します。以下の手順でソース指定します。

  1. 予めキャプチャする対象のアプリケーションを起動しておく
  2. OBSを起動する
  3. ソースの中にある「macOSスクリーン」を右クリックして、プロパティを開く
  4. 方式は「アプリケーションキャプチャ」を指定する。
  5. キャプチャする起動中のアプリケーションを選択してOKをクリックする
  6. OBSの中に表示される

4.でアプリケーションキャプチャの場合、対象のアプリのメインおよびダイアログなどすべてがキャプチャされますが、それ以外の余白も表示されます。一方でウィンドウキャプチャの場合、ダイアログなどは除外されますが対象のウィンドウのみをぴっちり取得してくれるので、用途に応じて使い分けが必要です。

ただし、SteamのようなDirectXフル活用なゲームをキャプチャする場合には、ソースは「ゲームキャプチャ or サイフォンクライアント」を指定する必要性があります。

図:対象のアプリだけを取得してくれる

ミラーリング

スマートフォンの画面や他のPCなどの画面をキャプチャしたい場合、後述のUSBキャプチャツール経由で取得するのも良いのですが、ソフトウェアだけでも画面を取得できます。

  • AirServerのようなアプリに対して、スマフォやPCの画面をキャストさせる
  • macOS Monterey以降装備のAirPlayレシーバ機能(iOSのみ可能)

スマフォからAirPlayもしくはMiracastで、macOS上で待機してるレシーバに対して画面をキャストすることでウィンドウとして表示されるので、それを前述のウィンドウキャプチャをソースとして指定することで配信が可能です。

AirServerとスマフォでPCにミラーリング

USBキャプチャツール

昔と違い、いまは便利な外部キャプチャデバイスがたくさん売られています。ゲーム専用機の実況を行うといった場合に、ゲーム機からのHDMI出力を受け取ってUSB経由でmacOSに映像キャプチャデバイスとして渡すことが可能です。手持ちに使えるデバイスがなかったので検証していませんが、HDMIであればどんなデバイスからの入力も使用することが可能となるので、汎用性が高いです(アナログ入力はHDMI変換してあげる必要があります)。

  1. 外部キャプチャデバイスをmacOSに接続する
  2. 1.にゲーム機などからのHDMI出力を接続する
  3. OBSを起動する
  4. ソースの左下の+をクリックして、「映像キャプチャデバイス」を選択する
  5. OKをクリックする
  6. デバイスから接続した1.のデバイスを選択する
  7. 音声出力モードを「デスクトップ音声出力」に変更する

こちらのサイトに、外部キャプチャデバイスである「海賊王」による設定事例がありますので、参考にしてみると良いでしょう。

内部音声について

以前のOBSの場合(Version28より前のバージョン)では、Montereyから装備されたScreenCaptureKitライブラリに対応しておらず、BlackholeやBackground Musicといった仮想サウンドデバイスを追加して迂回して取得する必要がありました。しかし、Version28以降は対応したためダイレクトに対象ウィンドウの音声等を取得できるようになりました。

単一ウィンドウでの録音、デスクトップすべての録音に対応しており、細かく指定できるのと、デスクトップキャプチャの縦横のサイズを0にすれば音声のみの取得も可能になっています。

図:簡単にキャプチャできるようになった

図:ちゃんと認識してる様子

仮想カメラでウェブカムとして使う

GoProは専用のアプリがあるのでGoogle MeetなどのWeb会議のカメラとしてそのまま利用することが可能です。しかし、macOSにてAndroidとなるとDroidCam自体はmacOS用クライアントがありません。けれどもOBS用のDroidcam OBSプラグインを介してGoogle Meetなどのウェブカムのソースとして利用する事が可能になります。

予め前述のAndroidの項目にあるようにOBSとDroidCam OBSのインストールおよびプラグインのインストールが完了してる状態で、OBS側からはAndroidの映像が見える状態にしておきます。

  1. OBSにて仮想カメラを開始をクリックする
  2. Googlle Meetを起動して会議に参加する
  3. 下の「︙」をクリックして、設定を開く
  4. 動画を開いて、カメラをOBS Virtual Cameraを選択する
  5. すると、OBSの仮想カメラがデバイスとして選べてOBS経由で利用可能になる

無線でウェブカムソースとして利用できて会議に参加できるため、非常に便利です。但し左右反転状態なので、OBS上で水平反転をしておく必要があります。また、OBSの出力がそのままカメラに出てくるので複数ソースを合わせることもできるため、通常のウェブカムじゃ出来ない芸当が可能になります。

図:仮想カメラを利用する

図:Google Meet側の設定

図:もちろん複数ソースを合わせられる

配信をしてみる

取り敢えず今回はDroidCam + macOSにて各種サービスに対して配信をしてみたいと思います。以下はOBSで標準で対応しているサービスですが、それ以外のサイトであっても、カスタム設定で指定することで利用すことが出来る可能性があります。

今回はYoutube Liveでテスト。モバイルからの場合以前は登録者数1000人以上いないとライブ出来ないみたいな制限が以前はありました。しかし今は多少制限があるものの配信規制が緩和されています。OBSことPCからの配信については制限なく利用可能なので、問題なく利用できますが、手順があります。

事前準備

  1. 自身のYoutubeチャンネルを開き、右上のカメラアイコンをクリック⇒ライブ配信を開始をクリック
  2. ライブ配信へのアクセスのリクエストが初回のみ出てくるので、リクエストをクリックする
  3. 電話認証が出てくるので、確認をクリック
  4. SMSで受け取るにして、電話番号を入れてコードを取得をクリックする
  5. スマフォにコードが来るのでそれを入力する。
  6. 24時間待ちます
  7. ライブ配信が可能になる。

図:リクエストが必要です

配信設定を行う

24時間経過するとライブ配信が出来るようになります。以下の手順で配信の直前までの設定を終えておきます。。

  1. OBSを起動して、設定を開きます。
  2. 配信タブをクリックする
  3. サービスからYouTube - RTMPSを選択する
  4. サーバーは「Primary YouTube ingest server」を選択
  5. アカウント接続をクリックする
  6. 自分のアカウントでログインして、続行をクリックするとOAuth2.0認証が完了する
  7. OKをクリックして閉じる
  8. 必要であれば次画面で出てくるYoutube Live Control Panelも同様にログインしておく

図:無事に配信設定が完了した。

配信開始

以下はYoutube Liveの事例ですが、メイン画面で「配信開始」をクリックすると、ダイアログが現れて色々入力するとライブ配信が始まります。

  1. タイトル、説明文、公開するかどうか?、カテゴリを選ぶ
  2. 子供向けかどうかを選択する
  3. サムネイル画像を用意しておいて指定することも可能。
  4. 予約するにチェックを入れてる場合は、ライブ配信予約となります。
  5. 配信を作成して配信開始をクリックする。
  6. 終えたい場合は配信終了をクリックする。

自分のチャンネルを開いて、ライブのタブを開くと現在配信してる様子が確認可能です。

図:配信中のOBSの様子

図:配信中のチャンネル側の様子

録画で利用する

OBS Studioはライブ配信をする為のソフトウェアではあるのですが、様々な映像ソースをリアルタイム組み合わせていけることから、例えば映像教材のような動画を録画で作成することも可能です。

前述の手順で「配信開始」をするのではなく、「録画開始」をクリックすることで、ファイルとして録画が始まります。録画終了でファイルが生成されるのですが、ファイル自体は設定⇒出力⇒録画の中に保存先やファイル形式、エンコーダの選択があるので予めそこでセットしておくと良いでしょう。

デフォルトの保存先は「/Users/ユーザ名/Movies」となっています。

ここで録画ファイルを作り、動画編集ソフトでさらに編集を加えたり、配信と同時に録画を押すことでアーカイブを自分で作成したりとなかなか利用機会が多いので活用しましょう。但し配信しながらの録画は相当のマシンパワーを要求するので注意が必要です。

図:録画設定はこちら

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)