加密 LUT 下发与应用
支持外部客户端通过 WebSocket 下发加密 LUT 数据(.cube / .png)
插件端解密后创建 3D LUT 纹理并应用到目标源的“效果滤镜”
滤镜自动添加/移除/更新
按指定 sourceName + filterName 自动创建、挂载、删除滤镜
支持实时更新滤镜参数(强度、透明 Alpha 透传等)
缓存与重启恢复
LUT 数据持久化缓存(加密存储),OBS 重启后可恢复(避免重复上传)
插件启用开关(解锁文件机制)
通过固定路径的 unlock 文件控制插件是否启用(便于授权/交付)
可靠性与日志可追踪
关键流程均有日志输出(便于定位客户环境与业务流程问题)
OBS 插件模块
在 obs_module_load() 注册自定义滤镜 hookobs_lut_filter
使用 OBS 图形接口创建 LUT effect 与 3D 纹理,并在渲染回调中进行 LUT 混合处理
WebSocket 通信
插件内置 WebSocket 客户端连接 OBS 自带 obs-websocket(127.0.0.1:4455)
通过 BroadcastCustomEvent 接收外部业务端指令,并返回 HookobsCommandResult 回执
数据加密与缓存
LUT 明文不直接暴露
本地缓存采用 Windows 平台安全能力(如 DPAPI 保护)进行加密持久化
缓存缺失时做重试退避,避免日志刷屏与性能消耗
滤镜可视化与可操作
使用标准 obs_source_create(...) 创建滤镜实例,确保在 OBS UI 的滤镜面板可见
场景/源兼容
支持对视频采集、显示器采集、媒体源、图片源等视频源添加 LUT 效果滤镜
命令式控制
上传(Upload)与应用(Apply)分离/组合,满足不同业务流程(先传后用、传+用一体)