尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

obs-shaderfilter从源码编译:CMake跨平台构建OBS着色器插件的完整指南

obs-shaderfilter从源码编译:CMake跨平台构建OBS着色器插件的完整指南 obs-shaderfilter从源码编译CMake跨平台构建OBS着色器插件的完整指南【免费下载链接】obs-shaderfilterOBS Studio filter for applying an arbitrary shader to a source.项目地址: https://gitcode.com/gh_mirrors/ob/obs-shaderfilter想给 OBS Studio 加上自定义着色器效果却找不到现成的安装包其实obs-shaderfilter 从源码编译并不复杂只需要 CMake 和 OBS 的开发库。本文是一份面向新手的OBS 着色器插件编译教程手把手带你完成 Linux、Windows、macOS 三个平台的CMake 跨平台构建从环境准备到编译安装一次讲清。obs-shaderfilter 是一款为 OBS Studio 开发的开源滤镜插件它的核心功能是把任意一个着色器shader应用到任意 OBS 源上比如给摄像头加轮廓描边、给直播画面加 glitch 故障风、给视频加雨滴特效等只需写一小段 shader 代码即可。项目由 C 语言写成核心文件是obs-shaderfilter.c构建系统统一使用 CMake因此天生具备跨平台能力。obs-shaderfilter 是什么为 OBS 添加任意着色器效果在 OBS 中插件会被注册为一个滤镜名为User-defined shader用户自定义着色器。你可以在任意源摄像头、窗口捕获、媒体源、图片上右键 → 滤镜添加这个滤镜然后把 shader 代码直接粘贴进去或从文件加载。插件会自动包装你的像素着色器并注入image、elapsed_time、ViewProj等标准参数让你可以用几行代码就做出动画、模糊、描边等效果。项目自带了164 个示例着色器位于data/examples/目录从blink.shader闪烁到VHS.shader录像带风格应有尽有既是现成的效果也是学习 shader 写作的绝佳参考。编译前的准备工作环境与依赖清单开始obs-shaderfilter 源码编译前请先确认以下依赖CMake 3.18 或更高版本项目在独立构建模式下要求的最低版本OBS Studio 开发库libobs包含头文件与链接库这是插件能编译的前提C 编译器Linux 用 GCC/ClangWindows 用 MSVCmacOS 用 Xcode 自带的 ClangGit用于克隆源码项目的构建入口是根目录的CMakeLists.txt其中通过判断CMAKE_PROJECT_NAME是否为obs-studio来自动区分两种构建模式独立构建out-of-tree和嵌入 OBS 源码树构建in-tree。绝大多数场景用独立构建就够了。Linux 下最快的编译方法独立构建Linux 用户推荐使用OBS 着色器插件独立编译方式这也是官方 README 中明确给出的最快路径三步即可完成git clone https://gitcode.com/gh_mirrors/ob/obs-shaderfilter cd obs-shaderfilter cmake -S . -B build -DBUILD_OUT_OF_TREEOn cmake --build build前提你的系统已经安装了带开发文件的 OBS 软件包如 Debian/Ubuntu 的obs-studio-dev这样 CMake 才能通过find_package(libobs REQUIRED)找到 libobs。构建完成后插件会安装到lib/obs-plugins/资源文件示例着色器、语言包、纹理会安装到share/obs/obs-plugins/obs-shaderfilter/。这些安装路径由CMakeLists.txt中的LIB_OUT_DIR和DATA_OUT_DIR变量控制如需自定义可以用-DLIB_OUT_DIR...指定。Windows 编译步骤Visual Studio CMake 配置Windows 用户编译OBS 着色器插件需要 Visual Studio推荐 VS 2022和 OBS 的预编译依赖包。项目已经贴心地准备了CMakeSettings.json配置文件里面预设了多套构建方案x64-Release / x64-DebugNinja 生成器 MSVC x64 环境x86-Release / x86-Debug32 位构建方案x64-Clang-Debug / x64-Clang-ReleaseClang 编译方案WSL-GCC-Debug适用于 WSL 子系统的方案在 VS 中打开项目后直接选择 x64-Release 配置即可生成并编译。编译产物是obs-shaderfilter.dll安装时放入 OBS 安装目录的obs-plugins/64bit/下同时把data/目录内容复制到data/obs-plugins/obs-shaderfilter/。如果想要一键打包安装程序项目还提供了installer.iss.inInno Setup 脚本模板配合resource.rc.in资源文件可以生成带图形界面的 Windows 安装包。macOS 编译要点插件 Bundle 与签名在 macOS 上编译obs-shaderfilter 插件时CMake 会自动把插件打包成.plugin形式的 Bundle。几个值得注意的细节最低系统版本Apple Siliconarm64要求macOS 11.0Intelx86_64要求10.15签名配置构建时会读取OBS_BUNDLE_CODESIGN_IDENTITY默认使用 ad-hoc 签名证书相关配置位于cmake/bundle/macos/目录资源打包data/目录下的示例和纹理会自动作为 Bundle 资源打入插件这些逻辑都封装在cmake/ObsPluginHelpers.cmake中它会根据操作系统自动设置编译选项如 macOS 的部署目标、Windows 的 MSVC 警告级别、Linux 的 ccache 加速等这也是本项目跨平台能力的关键所在。源码结构速览一次看懂项目布局开始修改或学习代码前先了解obs-shaderfilter 项目结构会事半功倍obs-shaderfilter.c插件主源码包含着色器解析、参数绑定、滤镜注册等全部逻辑约 3600 行CMakeLists.txt构建入口负责模式判断、平台配置与安装规则cmake/ObsPluginHelpers.cmake跨平台构建辅助脚本处理编译选项、Bundle、安装路径data/examples/164 个示例着色器与特效文件data/locale/多语言支持en-US.ini、de-DE.inidata/textures/插件自带的纹理素材供着色器采样使用buildspec.jsonOBS 官方构建服务使用的依赖与版本配置version.h.in版本号模板编译时由 CMake 自动生成version.h安装与验证在 OBS 中启用你的着色器滤镜编译完成后把插件文件.dll/.so/.plugin和data/资源目录放到 OBS 对应的插件目录下重启 OBS即可验证安装是否成功在场景中新建或选择一个源如图片源右键源 →滤镜点击 添加滤镜选择User-defined shader粘贴一段 shader 代码或勾选 Load shader text from file 从文件加载点击 Reload effect 应用更改比如加载data/examples/中的blink.shader画面就会按节奏闪烁加载rainbow.shader则会生成流动的彩虹效果配合插件自带的Rainbow.png纹理素材使用效果更佳。常见编译问题与解决办法找不到 libobsfind_package(libobs REQUIRED)失败说明缺少 OBS 开发包。Linux 安装obs-studio-devWindows 使用 obs-deps 预编译依赖。CMake 版本过低项目要求 3.18升级 CMake 或使用系统包管理器安装新版。插件加载后无效果shader 语法错误时 OBS 不会报错画面会直接渲染为空白。可查看 OBS 日志帮助 → 日志文件定位解析错误。滤镜不出现在列表里多半是data/资源目录路径不对确认语言包locale/en-US.ini已正确部署。现在你已经掌握了obs-shaderfilter 从源码编译的全流程无论是想深度定制 OBS 画面效果还是想学习插件开发都可以从这个项目开始。动手试试吧你的第一个自定义着色器滤镜马上就能上线【免费下载链接】obs-shaderfilterOBS Studio filter for applying an arbitrary shader to a source.项目地址: https://gitcode.com/gh_mirrors/ob/obs-shaderfilter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表