VRDJのためのOBS配信設定

投稿者: | 2025年8月12日

映像の綺麗さよりも遅延を最小化することに重きが置かれるVR環境へのDJ配信においては、YouTubeやTwitch等への一般的な配信とは推奨される設定が大きく異なる。
軽く解説を入れつつもおおよそ自己流、間違ってるところとかあるかも。

なおVRDJを主軸に書いてるものの、別にそれに限った内容ということはない。

最終更新: 2025/8/12

目次


1. ストリーミングサービスの選択

YouTubeやTwitch等のサービスは高ビットレートで非常に多くの人数宛への配信が可能だが、そもそもVRChatのワールドに設置された動画プレイヤーで再生するといった使い方は当然想定されておらず、また遅延も大きいため特にリアルタイム性が重視されるVRDJにおいては使い物にならない。

以下に挙げるサービスはVR環境での利用を前提としており、RTMPで映像を受信しRTSPで配信しているため非常に低遅延でリアルタイム性に優れる配信環境を構築できる。


1.1. TopazChat

https://github.com/TopazChat/TopazChat

1,000kbps 程度での利用を推奨。

皆様ご存知、無料で提供されているストリーミングサービス。
利用者数が多く不安定になることも多いため、イベントでの利用は出来れば避けたい。
一方でTopazChatしか導入されていないワールドもあるため、恐らく出番は多い。

-------------------

1.2. Nyan Streaming

https://nyst.live

2,000kbps 程度での利用を推奨。

有料だが低価格、現在βのため登録なく無料で利用できる。黒猫ちゃんありがとう。
VRCDNは契約していないがイベントで利用するといった場合に最適。

-------------------

1.3. VRCDN

https://vrcdn.live

3,500kbps 程度での利用を推奨。6,000kbps を超えるとBANされるため注意。

有料サービス、名前の通りCDNを利用しており海外宛への配信も強く、最も安定している。
DJ→VJ用のプライベートストリームが使えたりゲスト用ストリームキーが発行できたりと便利。
機会が多いなら最も推奨される。VRChatで使う場合VRCDN100プランが最適。


2. OBS設定

2.1. プロファイル作成

必須ではないが、複数のサービスを切り替えて使うならプロファイル分けたほうが絶対に良い。
メニューバーの プロファイル(P) からプロファイルを用意してわかりやすく名前をつけておく。


2.2. 映像設定

先に解像度とフレームレートの設定を行う。
ビットレート制限の都合もあるが、解像度はHDで十分なので1280x720で設定する。とはいえ別に基本解像度はFHD(1920x1080)などにしても問題はない。
フレームレートに関しても、どうせ人の増えたインスタンスで60fpsなんて出ないので30で十分。

基本 (キャンバス) 解像度1280x720
出力 (スケーリング) 解像度1280x720
FPS 共通値30

2.3. 配信設定

当然ながら使用するサービスによって入力値が異なるため、各サービスのダッシュボードに従う。大雑把に列挙する。

-------------------

2.3.1 TopazChat

サービスカスタム
サーバーrtmp://topaz.chat/live
ストリームキー※ワールドに用意されているもの、または 任意の文字列

-------------------

2.3.2 Nyan Streaming

選択したサーバーによりサーバーURLが異なる。

サービスカスタム
サーバー※ダッシュボードに従う
ストリームキー※ダッシュボードに従う

-------------------

2.3.3. VRCDN

2.3.3.1 VRCDN (通常/プライベート)

通常時、およびプライベートストリームを利用する場合。
プライベートストリーム時は接続先から伝えられたストリームキーを入力する。

サービスカスタム
サーバーrtmp://ingest.vrcdn.live/live
ストリームキー※ダッシュボードに従う、または伝えられたもの
2.3.3.2 VRCDN (ゲスト)

他人から貸し出されたVRCDNを利用する場合。
貸し出し元から伝えられたストリームキーを入力する。

サービスカスタム
サーバーrtmp://ingest.vrcdn.live/guest
ストリームキー※伝えられたもの

2.4. 出力設定

出力モード詳細

2.4.1. 配信

音声トラック1
音声エンコーダCoreAudio AAC
または
FFmpeg AAC

現行VerにおいてFFmpegとCoreAudioの音質に大差はないとされているものの、CoreAudioのほうが音質が良いとも言われる。実際のところどちらでも大きく問題はないはずだが、気にするのであればCoreAudioを選択する。ただしCoreAudioはiTunesに付属するためWindowsにはデフォルトでは入っていない。別途インストールする必要があり、iTunesを入れたくない場合は下記手順に従う。

こちらのページ よりCurrentVerのiTunesインストーラ iTunes64Setup.exe を取得し7-Zip等を用いてexeを展開、中にある AppleApplicationSupport64.msi を実行することでCoreAudioのみをインストールできる。

これ以降は使用するGPU(あるいはCPU)により設定項目が異なる。

-------------------

2.4.1.1. NVIDIA GPU
映像エンコーダNVIDIA NVENC H.264
出力をリスケールする無効
レート制御固定ビットレート(CBR)
ビットレート※1
キーフレーム間隔1s ※2
プリセットP1: Fastest (最低品質)
チューニング超低遅延
マルチパスモード1パス
プロファイルhigh
Look-ahead無効
適応量子化無効
GPU0 ※3
Bフレーム2 ※2
カスタムエンコーダオプション(空欄)

-------------------

2.4.1.2. AMD GPU
映像エンコーダAMD HW H.264 (AVC)
出力をリスケールする無効
レート制御CBR
ビットレート※1
キーフレーム間隔1s ※2
プリセットSpeed
プロファイルhigh
Bフレーム2 ※2
AMF/FFmpegオプション(空欄)

-------------------

2.4.1.3. Intel GPU
映像エンコーダQuickSync H.264
出力をリスケールする無効
レート制御CBR
ビットレート※1
ターゲットの使用法TU7:Fastest
プロファイルhigh
キーフレーム間隔1s ※2
遅延ultra-low
Bフレーム2 ※2

-------------------

2.4.1.4. CPUエンコード(x264)
映像エンコーダx264
出力をリスケールする無効
レート制御固定ビットレート(CBR)
ビットレート※1
カスタムバッファサイズを使用無効
キーフレーム間隔1s ※2
CPU使用プリセットultrafast
プロファイルhigh
チューンfastdecode ※4
カスタムエンコーダオプション(空欄)

-------------------

2.4.1.※. 注釈

※1 ビットレート
サービスにより下記程度での設定を推奨する。

  • TopazChat : 900 Kbps
  • Nyan Streaming : 1800 Kbps
  • VRCDN : 3000 Kbps

ただしDJ→VJの配信や映像が静止画で動かない場合においては高ビットレートである意味がないため、100 Kbps 程度に設定し余計な帯域を消費しないようにすることを推奨する。

---

※2 キーフレーム, Bフレーム

一般的に動画は3種類のフレームで構成され、この集合をGOP (Group of Pictures) と呼ぶ。

  • Iフレーム (Intra frame) = キーフレーム
    • 全ての情報を含む、1枚で完成された画像
  • Pフレーム (Predicted frame)
    • Iフレームから変化している部分だけの情報を持つ画像
  • Bフレーム (Bi-directional frame)
    • 前後のIフレームまたはPフレームの情報を元に構成される画像

よって1フレームあたりのデータ量はI>P>Bとなり、処理量はB>P>Iであることがわかる。

キーフレーム間隔は通常2秒程度に設定されることが多い。キーフレーム間隔を伸ばす(Iフレームを減らす)ことで容量を削減できるが、遅延が発生したり映像が乱れたりする可能性が高いため長くても4秒程度が好ましい。
Bフレームは通常であればを2程度に設定されることが多いが、極限まで遅延や再生負荷を減らしたい場合は0に設定する。

上記の通りPフレームやBフレームの持つ情報量は少ないため、ビットレートが同じであればIフレームが少なくBフレームが多いほど画質の向上が期待できる。一方で計算量が増えるため、PフレームやBフレームが多いほど映像が出るまでの遅延が増す。
逆に全てがIフレーム (All-Intra) であれば必要計算量が最小になるため遅延が最も少なくなるが、より高いビットレートでなければ画質が悪化する。

GOPのパラメータにおいてmはIフレームまたはPフレームの間隔を、nはGOPの長さ(=キーフレーム間隔)を表す。
映像フレームレート30fps、キーフレーム間隔1秒、Bフレーム2とした場合、GOP m=3 n=30 と表記することができ、
I-B-B-P-B-B-P-B-B-P-B-B-P-B-B-P-B-B-P-B-B-P-B-B-P-B-B-P-B-B-I……
とフレームが並ぶことになる。

---

※3 GPU
マルチGPU環境の場合は当然ながら設定値が違う。

---

※4 チューン (x264)
zerolatencyの場合に映像が乱れることを確認しているため。


2.4.2. 音声

トラック1
音声ビットレート320 Kbps
(TopazChatのみ 192Kbps)

2.4.1において音声トラックをトラック1と指定したためトラック1の設定のみでよい。
TopazChatに限り、高ビットレートでノイズが発生する問題が存在する。そのため192Kbpsまで下げる。


2.5. 音声設定

サンプルレート44.1 kHz
または
48 kHz
チャンネルステレオ

サンプルレートは使用環境に合わせて統一することが好ましい。DJソフトやオーディオインターフェース等の設定を確認すること。


ここまでの設定で問題なく出力が可能なはず。他はデフォルトで問題なし。
以降は追加情報。


3. 動画プレイヤーに出力する

3.1. TopazChat

入力URL (for PC)rtspt://topaz.chat/live/<ストリームキー>
入力URL (for Android)rtsp://topaz.chat/live/<ストリームキー>

※入力例

OBSで設定したストリームキーlogflyannet495
入力URL (for PC)rtspt://topaz.chat/live/logflyannet495

VRCDNなどの場合、ストリーミングサーバーに対して動画プレイヤーから繋ぎに行くような形となる。

[動画プレイヤー] ---> [VRCDNなど] <--- [配信ソフト]

一方TopazChatが導入されているワールドでは、ワールドで待ち受けているストリームキーに接続している……ように見える。

[ワールド](key123) <--- [TopazChat] <--- [配信ソフト]

実際にはTopazChatの特定のストリームキーアドレスに対しワールド側から常時接続している状態であるため、VRCDNなどを用いる方法と同一であることがわかる。

[ワールド] ---> (key123)[TopazChat] <--- [配信ソフト]

よって、動画プレイヤーからURLを指定することでTopazChatを利用することができる。ストリームキーは(他人と被らない)任意の文字列を自由に設定する。

[動画プレイヤー] ---> [TopazChat] <--- [配信ソフト]

これは即ち、動画プレイヤーが存在する全てのワールドにおいてTopazChatが利用可能であることを意味する。


3.2. Nyan Streaming

ダッシュボードに従い入力する。


3.3. VRCDN

ダッシュボードに従いPC版はRTSP、Android版はMPEG-TSのURLを入力する。


X. 備考

X.1. 音量バランス

OBSで見てピーク音量が -5 ~ -2 dB 程度になっていれば大抵丁度いい。

X.2. 動画プレイヤーの再生モード

大抵の動画プレイヤーはVideoモードとLiveモード(あるいはStreamモード)の2種類のモードが存在する。
少なくともiwaSyncの場合、VideoモードではUnity Video Player、LiveモードではAVPro Video Playerが使用される。動画はどちらのプレイヤーでも再生できる一方でライブはAVPro Video Playerでしか再生できないため、基本的にLiveモードを使っていれば問題ない。ただし無改造iwaSyncに限って言えば、AVProから直接レンダーテクスチャに書き出せない等の制約が存在する。

X.3. PC版とAndroid版でURLが異なる理由

2025年8月現在の仕様において、AVPro Video PlayerはTCP接続が必要となる。
rtspスキーム使用時は、まずUDPの接続から試行する。Android(Quest)ではUDPでの接続失敗後TCPへフォールバックするためこれで再生可能だが、PCではこのフォールバックが行われないため再生できない。
そのためPCではTCPを強制するrtsptスキームを使用する。しかしこれは現状Androidでは認識できず、再生することができない。

コメントを残す

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