SuperAPI AI 工具集

obs-audio-plugin-writing

编程与开发

查看项目

更新于 10-16 06:46

技能介绍

用途:开发 OBS Studio 音频插件,包括音频源(生成器、采集)与音频滤镜(增益、EQ、压缩),覆盖实时音频处理模式、filter_audio 回调及音频相关设置。不适用于视频插件、输出/编码插件(应使用 obs-plugin-developing)以及代码审查(应使用 obs-plugin-reviewing)。

主要能力:提供音频滤镜五步快速上手(插件结构、上下文结构、核心回调、filter_audio 回调、设置与属性、注册);音频源开发(通过 obs_source_output_audio() 推送音频);音频数据结构(obs_audio_data、obs_source_audio);扬声器布局与音频格式常量;音频数学函数 db_to_mul、mul_to_db;属性 UI(增益滑块、声道选择、频率选择);线程安全规则与禁止模式。

必要用法:滤镜需实现 filter_name、filter_create、filter_destroy、filter_update、filter_audio、filter_defaults、filter_properties,并以 obs_source_info 注册,type 为 OBS_SOURCE_TYPE_FILTER、output_flags 为 OBS_SOURCE_AUDIO。音频源 type 为 OBS_SOURCE_TYPE_INPUT。文件开头需 OBS_DECLARE_MODULE(),obs_module_load() 成功返回 true。

限制与注意:filter_audio 运行在音频线程,禁止阻塞、加锁、I/O 或分配内存;需检查 audio->data[c] 是否为 NULL 并遵守 audio->frames;destroy 中必须 bfree;避免全局状态,使用上下文结构;配置变更在 update(主线程)中完成,共享状态用原子操作。

官方参考:https://docs.obsproject.com/reference-sources、https://docs.obsproject.com/reference-settings、https://docs.obsproject.com/reference-properties,增益滤镜示例见 https://github.com/obsproject/obs-studio/blob/master/plugins/obs-filters/gain-filter.c。