建OBS著色器插件的完整指南)
obs-shaderfilter從源碼編譯CMake跨平臺構(gòu)建OBS著色器插件的完整指南【免費(fèi)下載鏈接】obs-shaderfilterOBS Studio filter for applying an arbitrary shader to a source.項(xiàng)目地址: https://gitcode.com/gh_mirrors/ob/obs-shaderfilter想給 OBS Studio 加上自定義著色器效果卻找不到現(xiàn)成的安裝包其實(shí)obs-shaderfilter 從源碼編譯并不復(fù)雜只需要 CMake 和 OBS 的開發(fā)庫。本文是一份面向新手的OBS 著色器插件編譯教程手把手帶你完成 Linux、Windows、macOS 三個平臺的CMake 跨平臺構(gòu)建從環(huán)境準(zhǔn)備到編譯安裝一次講清。obs-shaderfilter 是一款為 OBS Studio 開發(fā)的開源濾鏡插件它的核心功能是把任意一個著色器shader應(yīng)用到任意 OBS 源上比如給攝像頭加輪廓描邊、給直播畫面加 glitch 故障風(fēng)、給視頻加雨滴特效等只需寫一小段 shader 代碼即可。項(xiàng)目由 C 語言寫成核心文件是obs-shaderfilter.c構(gòu)建系統(tǒng)統(tǒng)一使用 CMake因此天生具備跨平臺能力。obs-shaderfilter 是什么為 OBS 添加任意著色器效果在 OBS 中插件會被注冊為一個濾鏡名為User-defined shader用戶自定義著色器。你可以在任意源攝像頭、窗口捕獲、媒體源、圖片上右鍵 → 濾鏡添加這個濾鏡然后把 shader 代碼直接粘貼進(jìn)去或從文件加載。插件會自動包裝你的像素著色器并注入image、elapsed_time、ViewProj等標(biāo)準(zhǔn)參數(shù)讓你可以用幾行代碼就做出動畫、模糊、描邊等效果。項(xiàng)目自帶了164 個示例著色器位于data/examples/目錄從blink.shader閃爍到VHS.shader錄像帶風(fēng)格應(yīng)有盡有既是現(xiàn)成的效果也是學(xué)習(xí) shader 寫作的絕佳參考。編譯前的準(zhǔn)備工作環(huán)境與依賴清單開始o(jì)bs-shaderfilter 源碼編譯前請先確認(rèn)以下依賴CMake 3.18 或更高版本項(xiàng)目在獨(dú)立構(gòu)建模式下要求的最低版本OBS Studio 開發(fā)庫libobs包含頭文件與鏈接庫這是插件能編譯的前提C 編譯器Linux 用 GCC/ClangWindows 用 MSVCmacOS 用 Xcode 自帶的 ClangGit用于克隆源碼項(xiàng)目的構(gòu)建入口是根目錄的CMakeLists.txt其中通過判斷CMAKE_PROJECT_NAME是否為obs-studio來自動區(qū)分兩種構(gòu)建模式獨(dú)立構(gòu)建out-of-tree和嵌入 OBS 源碼樹構(gòu)建in-tree。絕大多數(shù)場景用獨(dú)立構(gòu)建就夠了。Linux 下最快的編譯方法獨(dú)立構(gòu)建Linux 用戶推薦使用OBS 著色器插件獨(dú)立編譯方式這也是官方 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前提你的系統(tǒng)已經(jīng)安裝了帶開發(fā)文件的 OBS 軟件包如 Debian/Ubuntu 的obs-studio-dev這樣 CMake 才能通過find_package(libobs REQUIRED)找到 libobs。構(gòu)建完成后插件會安裝到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 的預(yù)編譯依賴包。項(xiàng)目已經(jīng)貼心地準(zhǔn)備了CMakeSettings.json配置文件里面預(yù)設(shè)了多套構(gòu)建方案x64-Release / x64-DebugNinja 生成器 MSVC x64 環(huán)境x86-Release / x86-Debug32 位構(gòu)建方案x64-Clang-Debug / x64-Clang-ReleaseClang 編譯方案WSL-GCC-Debug適用于 WSL 子系統(tǒng)的方案在 VS 中打開項(xiàng)目后直接選擇 x64-Release 配置即可生成并編譯。編譯產(chǎn)物是obs-shaderfilter.dll安裝時放入 OBS 安裝目錄的obs-plugins/64bit/下同時把data/目錄內(nèi)容復(fù)制到data/obs-plugins/obs-shaderfilter/。如果想要一鍵打包安裝程序項(xiàng)目還提供了installer.iss.inInno Setup 腳本模板配合resource.rc.in資源文件可以生成帶圖形界面的 Windows 安裝包。macOS 編譯要點(diǎn)插件 Bundle 與簽名在 macOS 上編譯obs-shaderfilter 插件時CMake 會自動把插件打包成.plugin形式的 Bundle。幾個值得注意的細(xì)節(jié)最低系統(tǒng)版本Apple Siliconarm64要求macOS 11.0Intelx86_64要求10.15簽名配置構(gòu)建時會讀取OBS_BUNDLE_CODESIGN_IDENTITY默認(rèn)使用 ad-hoc 簽名證書相關(guān)配置位于cmake/bundle/macos/目錄資源打包data/目錄下的示例和紋理會自動作為 Bundle 資源打入插件這些邏輯都封裝在cmake/ObsPluginHelpers.cmake中它會根據(jù)操作系統(tǒng)自動設(shè)置編譯選項(xiàng)如 macOS 的部署目標(biāo)、Windows 的 MSVC 警告級別、Linux 的 ccache 加速等這也是本項(xiàng)目跨平臺能力的關(guān)鍵所在。源碼結(jié)構(gòu)速覽一次看懂項(xiàng)目布局開始修改或?qū)W習(xí)代碼前先了解obs-shaderfilter 項(xiàng)目結(jié)構(gòu)會事半功倍obs-shaderfilter.c插件主源碼包含著色器解析、參數(shù)綁定、濾鏡注冊等全部邏輯約 3600 行CMakeLists.txt構(gòu)建入口負(fù)責(zé)模式判斷、平臺配置與安裝規(guī)則cmake/ObsPluginHelpers.cmake跨平臺構(gòu)建輔助腳本處理編譯選項(xiàng)、Bundle、安裝路徑data/examples/164 個示例著色器與特效文件data/locale/多語言支持en-US.ini、de-DE.inidata/textures/插件自帶的紋理素材供著色器采樣使用buildspec.jsonOBS 官方構(gòu)建服務(wù)使用的依賴與版本配置version.h.in版本號模板編譯時由 CMake 自動生成version.h安裝與驗(yàn)證在 OBS 中啟用你的著色器濾鏡編譯完成后把插件文件.dll/.so/.plugin和data/資源目錄放到 OBS 對應(yīng)的插件目錄下重啟 OBS即可驗(yàn)證安裝是否成功在場景中新建或選擇一個源如圖片源右鍵源 →濾鏡點(diǎn)擊 添加濾鏡選擇User-defined shader粘貼一段 shader 代碼或勾選 Load shader text from file 從文件加載點(diǎn)擊 Reload effect 應(yīng)用更改比如加載data/examples/中的blink.shader畫面就會按節(jié)奏閃爍加載rainbow.shader則會生成流動的彩虹效果配合插件自帶的Rainbow.png紋理素材使用效果更佳。常見編譯問題與解決辦法找不到 libobsfind_package(libobs REQUIRED)失敗說明缺少 OBS 開發(fā)包。Linux 安裝obs-studio-devWindows 使用 obs-deps 預(yù)編譯依賴。CMake 版本過低項(xiàng)目要求 3.18升級 CMake 或使用系統(tǒng)包管理器安裝新版。插件加載后無效果shader 語法錯誤時 OBS 不會報錯畫面會直接渲染為空白??刹榭?OBS 日志幫助 → 日志文件定位解析錯誤。濾鏡不出現(xiàn)在列表里多半是data/資源目錄路徑不對確認(rèn)語言包locale/en-US.ini已正確部署?,F(xiàn)在你已經(jīng)掌握了obs-shaderfilter 從源碼編譯的全流程無論是想深度定制 OBS 畫面效果還是想學(xué)習(xí)插件開發(fā)都可以從這個項(xiàng)目開始。動手試試吧你的第一個自定義著色器濾鏡馬上就能上線【免費(fèi)下載鏈接】obs-shaderfilterOBS Studio filter for applying an arbitrary shader to a source.項(xiàng)目地址: https://gitcode.com/gh_mirrors/ob/obs-shaderfilter創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考