Skip to content

Desuq Cafe

文档菜单

此翻译可能落后于最新的英文版本。 查看英文版

滤镜

OBS 中的滤镜可附加到任意来源(场景或输入)上,以改变该来源的视觉或音频效果,例如色彩校正、色度键和降噪。本插件暴露了完整的 OBS 滤镜 API:列出可用的滤镜类型、读取和写入每个来源的滤镜链,以及通过事件响应滤镜变化。

函数

函数说明
GetSourceFilterKindList()刷新可用滤镜类型列表
GetCachedFilterKinds()获取本地缓存的滤镜类型列表
GetSourceFilterList(SourceName)获取来源上的所有滤镜
GetCachedFiltersForSource(SourceName)获取某来源本地缓存的滤镜
HasCachedFiltersForSource(SourceName)检查某来源是否有已缓存的滤镜数据
CreateSourceFilter(Source, Name, Kind, Settings)向来源添加新滤镜
RemoveSourceFilter(Source, FilterName)从来源移除滤镜
SetSourceFilterEnabled(Source, Filter, Enabled)启用或禁用滤镜
SetSourceFilterName(Source, OldName, NewName)重命名滤镜
SetSourceFilterIndex(Source, Filter, Index)更改滤镜在链中的位置(0 = 顶部)
SetSourceFilterSettings(Source, Filter, Settings, Overlay)更新滤镜配置
GetSourceFilter(Source, Filter)获取特定滤镜的详情
GetSourceFilterDefaultSettings(Kind)获取某滤镜类型的默认设置

注意: 滤镜通过 SourceName + FilterName 组合来标识(没有 UUID)。滤镜索引 0 为处理链中最顶层的滤镜。

事件

订阅以下事件以响应滤镜变化:

  • OnSourceFilterCreated(SourceName, FilterName, FilterKind, FilterIndex, bEnabled):滤镜已添加到来源
  • OnSourceFilterRemoved(SourceName, FilterName):滤镜已从来源移除
  • OnSourceFilterNameChanged(SourceName, OldName, NewName):滤镜已重命名
  • OnSourceFilterSettingsChanged(SourceName, FilterName):滤镜设置已修改
  • OnSourceFilterEnableStateChanged(SourceName, FilterName, bEnabled):滤镜已启用/禁用
  • OnSourceFilterListReindexed(SourceName):来源上的滤镜顺序已更改

示例

// Add a color correction filter to a source, then disable it.
Subsystem->CreateSourceFilter(
    TEXT("Webcam"),
    TEXT("Warmth"),
    TEXT("color_filter_v2"),
    Settings);

Subsystem->SetSourceFilterEnabled(TEXT("Webcam"), TEXT("Warmth"), false);

// Move a filter to the top of the chain.
Subsystem->SetSourceFilterIndex(TEXT("Webcam"), TEXT("Warmth"), 0);

另请参阅