映像の綺麗さよりも遅延を最小化することに重きが置かれる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
2,000kbps 程度での利用を推奨。
有料だが低価格、現在βのため登録なく無料で利用できる。黒猫ちゃんありがとう。
VRCDNは契約していないがイベントで利用するといった場合に最適。
-------------------
1.3. VRCDN
3,500kbps 程度での利用を推奨。6,000kbps を超えるとBANされるため注意。
有料サービス、名前の通りCDNを利用しており海外宛への配信も強く、最も安定している。
DJ→VJ用のプライベートストリームが使えたりゲスト用ストリームキーが発行できたりと便利。
機会が多いなら最も推奨される。VRChatで使う場合VRCDN100プランが最適。
2. OBS設定
2.1. プロファイル作成
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 (通常/プライベート)
通常時、およびプライベートストリームを利用する場合。
プライベートストリーム時は接続先から伝えられたストリームキーを入力する。
2.3.3.2 VRCDN (ゲスト)
他人から貸し出されたVRCDNを利用する場合。
貸し出し元から伝えられたストリームキーを入力する。
2.4. 出力設定
出力モード | 詳細 |
2.4.1. 配信
現行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 | 無効 |
適応量子化 | 無効 |
GPU | 0 ※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. 音声設定
ここまでの設定で問題なく出力が可能なはず。他はデフォルトで問題なし。
以降は追加情報。
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
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では認識できず、再生することができない。