.1.
Contents
Linux
插件
. 捕獲和/或輸出音頻/視頻,製作錄製,輸出到RTMP流的能力,x264中的編碼都是通過插件模塊完成的示例.
插件可以實現來源,輸出,編碼器和服務.
? .
插件模塊標頭
這些是插件常用的一些顯著標頭:
- .H – 用於創建插件模塊的主要標題. 該文件自動包含以下文件:
- libobs/obs..
- libobs/obs-source.H – 用於在插件模塊中實現源
- libobs/obs-uptut.H – 用於在插件模塊中實現輸出
- libobs/obs-編碼器.
- libobs/observice.H – 用於在插件模塊中實施服務
- libobs/obs-data.H – 用於管理Libobs對象的設置
- libobs/obs-properies.H – 用於生成libobs對象的屬性
- libobs/圖形/圖形.
.txt
組織文件的常見方法是將一個文件進行插件初始化,然後為您實現的每個單獨對象的特定文件. 例如,如果您要創建一個稱為“ my-plugin”的插件,那麼您將有類似My-Plugin.C完成插件初始化,my-source.C用於定義自定義源,my-uptut.. (這當然不是規則)
這是本機插件模塊的通用目錄結構的一個示例:
我的-插入/數據/-我們. -插入/.TXT 我的-插入-. --. -/-. -我的-編碼器. 我的--服務.
.與這些文件關聯的TXT文件:
#my-plugin/cmakelists.txt項目(my-plugin)集(my-plugin_sources my-plugin...c my-編碼器..
. . 在您的obs_module_load()函數中,您可以註冊任何自定義資源,輸出,編碼器或服務. .
以下是my-plugin的示例.
. obs_module_use_default_locale, ) 結構 . my_output .C */ ; .C */ 外部 結構 /*在我服務中定義.C */ 布爾 obs_register_source((和my_source obs_register_output((和); ((和 ;
來源用於在流上渲染視頻和/或音頻. 諸如捕獲顯示/遊戲/音頻,播放視頻,顯示圖像或播放音頻之類的內容. . libobs/obs-source.. .
.C */ [. 這是給出的 my_source .ID = “ my_source”, . , . = , . = my_source_name, . my_source_create, . = , . my_source_update, . = , . , .
..
/* my-plugin.C */ . 結構 obs_source_info ; /*在my-Source中定義. 布爾 (() obs_register_source和 [. 真的 >
- 同步視頻來源:圖像源
- 視頻過濾器:測試視頻過濾器
. 流和記錄是輸出的兩個常見示例,但不是唯一的輸出類型. . libobs/obs-uptut.. .
. . 結構 obs_output_info . “ my_output”, . obs_output_av | , .get_name = my_output_name, . , . , . = , . , .ENCODED_PACKET , . = , . , .
..
. . 這是給出的 my_output . ((空白 ((my_output); . 這是給出的 真的;
-
- RTMP流輸出
- FFMPEG輸出
編碼器
編碼器是視頻/音頻編碼器的特定於OBS的實現,它們與使用編碼器的輸出一起使用. x264,nvenc,quicksync是編碼器實現的示例. libobs/obs-編碼器.H文件是用於實現編碼器的專用標題. .
. . 這是給出的 . , . = obs_encoder_video, . , . , . my_encoder_create, . = my_encoder_destroy, .編碼 , .更新 = my_encoder_update, . my_encoder_extra_data, . my_encoder_sei, .get_video_info = >;
..
.C */ . 這是給出的 外部 結構 obs_encoder_info . 布爾 ((空白 obs_register_encoder . 真的; >
重要的提示:
- “比特率” – 該值應用於視頻和音頻編碼器:比特率,千倍.
- – 這是用於視頻編碼器的設置. 通常,它至少具有“ CBR”率控制. 其他常見的費率控制是“ VBR”,“ CQP”.
- “ keyint_sec” – . (作者註:這應該是“鍵入”的框架.
編碼器的示例:
- 視頻編碼器:
- X264編碼器
- QuickSync編碼器
- FFMPEG AAC/OPUS編碼器
服務
. . .H文件是實施服務的專用標題. 有關更多信息,請參見服務API參考(obs_service_t).
(作者註:撰寫本文時,服務API是不完整的)
/*我的服務.C */ . 這是給出的 結構 . = , . my_service_name, .創造 , .破壞 , . = , . my_service_update, . , . = my_service_key >;
..
. . ; . (( .
.. .
這 .
創建一個 obs_data_t obs_data_array_t 對象,您要調用obs_data_create()或obs_data_array_create()functions. obs_data_t . 或者 .
(( 數據, const 姓名, char 出口 *, char , 瓦爾 出口 obs_data_set_double(( *數據, const 姓名, ); 空白 obs_data_set_boolobs_data_t *數據, const 姓名, 布爾 ); obs_data_set_objobs_data_t *, char 姓名, 出口 obs_data_set_array(( *, const , *);
同樣,要從 obs_data_t
/ *獲得功能 */ *(( , const , 出口 obs_data_t 數據, char 布爾 obs_data_t *數據, char * 出口 obs_data_get_obj *數據, const * 出口 obs_data_array_t obs_data_get_array ,
obs_data_t 對像還可以設置默認值. . .
這些函數控制默認值如下:
/*默認值函數. 出口 數據, , const 瓦爾 obs_data_set_default_int 數據, *姓名, 出口 obs_data_set_default_double , const *姓名, 瓦爾 obs_data_set_default_bool((obs_data_t , const *姓名, 布爾 出口 obs_data_set_default_obj 數據, char , obs_data_t
.h)用於自動生成用戶界面以修改libobs對象的設置(如果需要). get_properties 用於生成屬性的回調. . . .
靜止的 *my_source_properties(( *) obs_properties_t *PPT obs_properties_create , , “ Mybool” UNUSED_PARAMETER數據 返回 PPT [. .get_properties = my_source_properties, . 這是給出的
. . .
. .
布爾 setter_a_modified(( PPT, p, obs_data_t *設定 布爾 , p obs_properties_get((PPT, obs_property_set_enabled((, 啟用); /*返回tre tre以更新屬性小部件,false 真的 . 靜止的 obs_properties_t my_source_properties ) obs_properties_t * obs_properties_create obs_property_t * p obs_properties_add_bool((PPT, , obs_module_text); ((, , , "設定"), obs_text_default); ;
通常,大多數與obs Studio捆綁在一起的插件將使用一個簡單的INI文件本地化方法,其中每個文件都是不同的語言. 使用此方法時,使用obs_module_use_default_locale()宏,它將自動加載/破壞語言環境數據,而不會在插件的一部分上付出額外的努力. 然後obs_module_text()函數(該函數自動將其聲明為libobs/obs-module..
有兩個導出用於加載/破壞語言環境的模塊:obs_module_set_locale()導出,obs_module_free_locale()導出. . 如果您想為插件實現自定義的環境實現,則需要與obs_module_text()外部定義這些導出,而不是依靠obs_module_use_default_locale()宏.
.
插件指南
. 某些插件還允許Obs Studio與某些類型的硬件進行通信,例如Elgato Stream Deck.
.
相容性
大多數插件都可以在可用的所有平台上使用.
- ..
- ..
- 該插件尚未更新用於您正在使用的obs Studio版本
要查看哪些插件可用於obs Studio 28上的哪些平台..
安裝或刪除插件
. .
. .
視窗
C:\ Program Files \ obs-Studio \ obs-Plugins \ 64bit
(傳統32位插件; obs Studio 27..C:\ Program Files \ obs-Studio \ obs-Plugins \ 32bit
視窗 (單用戶)
蘋果系統
Linux
〜/.
使用Flatpak安裝插件
.
- libobs/obs..