録画と配信
このガイドでは、OBS のすべての出力を網羅します。録画(ファイル分割およびチャプターマーカーを含む)、配信、仮想カメラ、リプレイバッファ(ファイル名衝突回避機能付き)、汎用出力制御、そして配信キャプションについて説明します。
録画
| 関数 | 説明 |
|---|---|
StartRecord() | 録画を開始する |
StopRecord() | 録画を停止する |
PauseRecord() | 録画を一時停止する |
ResumeRecord() | 録画を再開する |
ToggleRecord() | 録画状態を切り替える |
ToggleRecordPause() | 録画の一時停止状態を切り替える |
GetRecordStatus() | 現在の録画ステータスを取得する |
IsRecording() | 現在録画中かどうかを確認する |
録画の保存先ディレクトリ
| 関数 | 説明 |
|---|---|
GetRecordDirectory() | 現在の録画の保存先ディレクトリを取得する(非同期) |
SetRecordDirectory(Directory) | 録画の保存先ディレクトリを設定する(次回の録画から有効) |
GetCachedRecordDirectory() | キャッシュされたディレクトリの値を取得する |
注意:
SetRecordDirectoryの変更は、直ちにではなく、次回の録画開始時に有効になります。
録画の分割とチャプター(OBS 30.2+ / obs-websocket 5.5.0+)
| 関数 | 説明 |
|---|---|
SplitRecordFile() | 現在の録画を新しいファイルに分割する |
CreateRecordChapter(ChapterName) | 録画にチャプターマーカーを追加する(名前は省略可能) |
必要条件:
- OBS 30.2.0 以降
- obs-websocket 5.5.0 以降
- 録画が進行中であること
- チャプターマーカーは Hybrid MP4 録画フォーマットでのみ動作する
配信
| 関数 | 説明 |
|---|---|
StartStream() | 配信を開始する |
StopStream() | 配信を停止する |
ToggleStream() | 配信状態を切り替える |
GetStreamStatus() | 現在の配信ステータスを取得する |
IsStreaming() | 現在配信中かどうかを確認する |
仮想カメラ
| 関数 | 説明 |
|---|---|
StartVirtualCam() | 仮想カメラを開始する |
StopVirtualCam() | 仮想カメラを停止する |
ToggleVirtualCam() | 仮想カメラを切り替える |
GetVirtualCamStatus() | 現在の仮想カメラのステータスを取得する |
IsVirtualCamActive() | 仮想カメラがアクティブかどうかを確認する |
リプレイバッファ
| 関数 | 説明 |
|---|---|
StartReplayBuffer() | リプレイバッファを開始する |
StopReplayBuffer() | リプレイバッファを停止する |
ToggleReplayBuffer() | リプレイバッファの状態を切り替える |
SaveReplayBuffer() | 現在のバッファをファイルに保存する |
GetReplayBufferStatus() | 現在のリプレイバッファのステータスを取得する |
IsReplayBufferActive() | リプレイバッファがアクティブかどうかを確認する |
GetLastReplayPath() | 最後に保存されたリプレイのファイルパスを取得する |
注意: 先に OBS の 設定 → 出力 → リプレイバッファ でリプレイバッファを有効にしてください!
ファイル名衝突回避(オプトイン)
OBS はリプレイファイルをタイムスタンプで命名するため、短時間に連続して保存するとファイルが上書きされる可能性があります。Outputs ハンドラーを使用すると、保存されたファイルを自動的にリネームし、エンジン内のラベルを付与できます。これらは GetClient()->GetOutputs() から利用できます。
| 関数 | 説明 |
|---|---|
SetReplayCollisionProofing(bEnable) | 保存されたリプレイファイルにミリ秒単位の精度を持つサフィックスを付加し、ファイルの衝突を防ぐ |
SetNextReplayContextLabel(Label) | 次回の保存時に、サニタイズされたラベル(例:"BossKill")をファイル名に埋め込む |
SaveReplayBufferWithContext(Label) | 1回限りのコンテキストラベルを付与してバッファを即時保存する |
GetLastReplayPath() は最終的な(リネーム後の)パスを返します。OBS が別のマシンでファイルを書き込んだ場合、リネームはスキップされ元のパスが保持されます。
汎用出力制御
カスタム出力やプラグインの出力を含む、OBS のあらゆる出力を名前で操作できます。
| 関数 | 説明 |
|---|---|
GetOutputList() | 利用可能なすべての出力を取得する(非同期) |
GetOutputStatus(OutputName) | 特定の出力のステータスを取得する |
GetOutputSettings(OutputName) | 出力の設定を取得する |
SetOutputSettings(OutputName, Settings) | 出力の設定を指定する(C++ 版) |
SetOutputSettingsFromString(OutputName, JsonSettings) | 出力の設定を指定する(Blueprint 向け) |
StartOutput(OutputName) | 特定の出力を開始する |
StopOutput(OutputName) | 特定の出力を停止する |
ToggleOutput(OutputName) | 出力のオン/オフを切り替える |
GetCachedOutputs() | キャッシュされた出力リストを取得する |
注意: 出力名は OBS 内部の名前であり、表示名と異なる場合があります。利用可能な出力を確認するには
GetOutputList()を使用してください。
配信キャプション
| 関数 | 説明 |
|---|---|
SendStreamCaption(CaptionText) | CEA-608 形式のキャプションテキストを配信に送信する |
必要条件:
- 配信がアクティブであること
- CEA-608 形式のクローズドキャプションを送信する
出力イベント
OnStreamStateChanged(bActive, State): 配信の状態が変化したときに発火します。OnRecordStateChanged(bActive, State): 録画の状態が変化したときに発火します。OnVirtualCamStateChanged(bActive, State): 仮想カメラの状態が変化したときに発火します。OnReplayBufferStateChanged(bActive, State): リプレイバッファの状態が変化したときに発火します。OnReplayBufferSaved(FilePath): リプレイがファイルに保存されたときに発火します。OnRecordFileChanged(NewOutputPath): 分割後に録画が新しいファイルへの書き込みを開始したときに発火します。OnRecordDirectoryReceived(RecordDirectory): 録画の保存先ディレクトリが取得されたときに発火します。OnOutputListReceived(Outputs): 出力リストが取得されたときに発火します。OnOutputStatusReceived(Status): 出力のステータスが取得されたときに発火します。
OBS のすべてのドメインにわたるイベントの完全なカタログについては、イベントリファレンスを参照してください。