入力とメディア
入力は OBS のソース(Browser Source、テキスト、メディア、キャプチャデバイスなど)です。このガイドでは、入力の作成と管理、メディア再生の制御、入力設定の編集、およびハードウェアキャプチャデバイスのプロパティの操作について説明します。
入力の管理(CRUD)
| 関数 | 説明 |
|---|
CreateInput(Scene, Name, Kind, Settings, Enabled) | 新しい入力を作成してシーンに追加する |
CreateInputFromString(Scene, Name, Kind, JsonSettings, Enabled) | Blueprint 向けのバージョン |
RemoveInput(Name) | 入力を削除する(どのシーンにも含まれていないこと!) |
SetInputName(Name, NewName) | 入力の名前を変更する |
GetInputKindList(bUnversioned) | 利用可能な入力の種類(ソースタイプ)を取得する |
GetCachedInputKinds() | ローカルにキャッシュされた入力の種類を取得する |
主な入力の種類
| 種類 | 説明 |
|---|
browser_source | ウェブブラウザ |
text_gdiplus_v3 | テキスト(GDI+、Windows) |
text_ft2_source_v2 | テキスト(FreeType2) |
ffmpeg_source | メディアソース |
image_source | 画像 |
color_source_v3 | 単色 |
vlc_source | VLC ビデオ |
window_capture | ウィンドウキャプチャ |
game_capture | ゲームキャプチャ |
dshow_input | 映像キャプチャデバイス |
wasapi_input_capture | 音声入力 |
wasapi_output_capture | 音声出力キャプチャ |
注意:
CreateInput は入力の作成と指定シーンへの追加をアトミックに行います。
RemoveInput は、その入力がいずれかのシーンで参照されている場合に失敗します。先にすべてのシーンアイテムを削除してください。
- 入力名は OBS 内でグローバルに一意でなければなりません。
- バージョンなしの名前(シンプルで推奨)を取得するには
GetInputKindList(true) を使用してください。
メディア再生
| 関数 | 説明 |
|---|
PlayMedia(Name) | 再生を開始する |
PauseMedia(Name) | 再生を一時停止する |
StopMedia(Name) | 再生を停止する |
RestartMedia(Name) | 最初から再開する |
NextMedia(Name) | プレイリストの次のアイテムに移動する |
PreviousMedia(Name) | プレイリストの前のアイテムに移動する |
SetMediaInputCursor(Name, Ms) | ミリ秒単位で位置をシークする |
OffsetMediaInputCursor(Name, OffsetMs) | 現在の位置を基準に相対シークする |
SeekToPercent(Name, Percent) | 再生時間のパーセンテージ位置にシークする(0.0〜1.0) |
GetMediaInputStatus(Name) | メディアのステータス(状態、時間、カーソル)を取得する |
GetCachedMediaInputStatus(Name) | ローカルにキャッシュされたメディアのステータスを取得する |
メディアイベント
OnMediaInputPlaybackStarted(InputName):メディアの再生が開始された
OnMediaInputPlaybackEnded(InputName):メディアの再生が終了した
OnMediaInputActionTriggered(InputName, Action):メディアアクションが発火した
OnMediaInputStatusReceived(Status):メディアのステータスが取得された
入力設定
| 関数 | 説明 |
|---|
GetInputSettings(Name) | 入力の現在の設定を取得する(非同期) |
GetInputSettingsByUuid(Uuid) | 入力の UUID で設定を取得する |
SetInputSettings(Name, Settings, Overlay) | 入力の設定を指定する(JSON オブジェクト) |
SetInputSettingsFromString(Name, JsonStr, Overlay) | 入力の設定を指定する(JSON 文字列) |
GetInputDefaultSettings(Kind) | 入力タイプのデフォルト設定を取得する |
SetTextSourceText(Name, Text) | テキストソースのテキスト内容を設定する |
SetBrowserSourceUrl(Name, Url) | Browser Source の URL を設定する |
SetImageSourceFile(Name, Path) | 画像ソースのファイルパスを設定する |
SetMediaSourceFile(Name, Path, Loop) | メディアソースのファイルパスを設定する |
SetColorSourceColor(Name, Color) | 色を設定する(ABGR int64 形式) |
GetCachedInputSettings(Name) | ローカルにキャッシュされた設定を取得する(JSON オブジェクト) |
GetCachedInputSettingsString(Name) | ローカルにキャッシュされた設定を取得する(JSON 文字列) |
HasCachedSettings(Name) | 入力の設定がキャッシュされているか確認する |
対応している入力タイプ
| 入力の種類 | 便利なメソッド | 設定キー |
|---|
text_gdiplus_v3 | SetTextSourceText() | text |
text_ft2_source_v2 | SetTextSourceText() | text |
browser_source | SetBrowserSourceUrl() | url |
image_source | SetImageSourceFile() | file |
ffmpeg_source | SetMediaSourceFile() | local_file, looping |
color_source_v3 | SetColorSourceColor() | color (ABGR) |
注: bOverlay=true(デフォルト)を使用すると既存の設定にマージされ、false にするとすべての設定が置き換えられます。
デバイスプロパティ(キャプチャデバイス)
ハードウェア(キャプチャカード、ウェブカメラ、音声デバイス)を使用する入力に対して、InputSettings ハンドラーはデバイスリストプロパティの選択肢を列挙したり、プロパティボタンを「押す」ことができます。これらは GetClient()->GetInputSettings() を通じてアクセスします。
| 関数 | 説明 |
|---|
GetInputPropertiesListPropertyItems(Input, Property) | リストプロパティのアイテムを列挙する(例:video_device_id)。非同期で FOBSPropertyItem とともに OnInputPropertyItemsReceived を発火する |
PressInputPropertiesButton(Input, Property) | プロパティボタンを「押す」(例:有効化/更新ボタン)。停止したキャプチャデバイスの復旧に便利 |
エンジン内のデバイスピッカーの構築や、切断されたキャプチャデバイスの再アクティブ化に役立ちます。
// Enumerate the available cameras for a video capture device input.
Subsystem->GetClient()->GetInputSettings()
->GetInputPropertiesListPropertyItems(TEXT("Webcam"), TEXT("video_device_id"));
// Re-activate a stalled capture device.
Subsystem->GetClient()->GetInputSettings()
->PressInputPropertiesButton(TEXT("Webcam"), TEXT("activate"));
関連項目