..

Linux
(Flatpak)

. .

.

? .

Ez néhány figyelemre méltó fejléc, amelyet a pluginok általában használnak:

  • .H – A plugin modulok létrehozásához használt elsődleges fejléc.
    • libobs/obs.H – A fő Libobs fejléc.
      • Libobs/ob-forrás.
      • .
      • .
      • Libobs/OBS-Service.
      • .
      • .
      • .

      .txt

      . ….

      -csatlakoztat/adat-. az én-csatlakoztat/Cmakelists. -csatlakoztat-. --forrás.c az én-/az én-. az én-csatlakoztat-.c az én-csatlakoztat-.c 

      Ez egy példa egy közönséges cmakelistákra.Az ezekhez a fájlokhoz társított txt fájl:

      .TXT projekt (My Plugin) szett (my-plugin_sources my-plugin.c A forrásom.c A kimenetem.C My-kódoló.c A szolgálatom.c) add_library (my-plugin modul $) cél_link_librares (my-plugin libobs) install_obs_plugin_with_data (my-plugin adatok)

      Natív plugin inicializálás

      A natív plugin modul létrehozásához be kell vonnia a libobs/obs-modulot. . . .

      .C, amely minden típusú objektumot regisztrálna:

      .   () / * A közönséges INI-alapú locale (opcionális) */////////// "My Plugin", ) külső struktúra ob_source_info  .c */   ob_output_info my_output; .    ; .   ob_service_info my_service /* A szolgálatomban definiálva.  ob_module_load(üres  ( (És); ( ob_register_serviceÉs); Visszatérés  > 

      Források

      . . A források felhasználhatók audio- és videószűrők, valamint átmenetek megvalósításához is. A libobok/ob-forrás.H fájl a források végrehajtásához szükséges fejléc. .

      /* a forrásom. [. ]     . = "My_Source", .  Ob_source_type_input, . = , . = , .teremt = , .  , . = , .video_render  my_source_render, .get_width  , .    

      ..

      . .   struktúra ob_source_info ; .  ()   [.   igaz; > 

      • Szinkron videó forrás: A képforrás
      • Aszinkron videó forrás: A véletlenszerű textúra -teszt forrás
      • Hangforrás: A szinuszhullám tesztforrás
      • Audio szűrő: A Gain Audio szűrő

      A kimenetek lehetővé teszik a jelenleg megjelenő audio/videó kiadásának képességét. A streaming és a felvétel a kimenetek két általános példa, de nem az egyetlen típus típusa. . .A H fájl a kimenetek végrehajtásának dedikált fejléce. .

      Például egy kimeneti objektum megvalósításához meg kell határoznia egy obs_output_info struktúrát, és kitöltenie kell azt a kimenethez kapcsolódó információkkal és visszahívásokkal:

      . [.  struktúra    .személyazonosság  , . =   , .get_name = , .  , .  , .  , .  , .  , .  , .kóded_video_codecs  , .    

      .C, felhívná az OBS_REGISTER_OUTPUT () telefonszámot az OBS_MODULE_LOad () -ben, hogy regisztrálja a kimenetet Libobs -szal.

      /* My Plugin. [. ]     /* A kimenetemben meghatározva.c */  ob_module_load)  OBS_Register_Output(my_output . ]  igaz  

        • Az FFMPEG MUXER kimenet

        Kódolók

        A kódolók a videó/audio kódolók obspecifikus megvalósításai, amelyeket kódolókkal rendelkező kimenetekkel használnak. . .. .

        Például egy kódoló objektum megvalósításához meg kell határoznia egy obs_encoder_info struktúrát, és kitöltenie kell a kódolóval kapcsolatos információkkal és visszahívásokkal:

        . .   ob_encoder_info  =  .  "my_encoder", .típus  , .  , . = my_encoder_name, .teremt = , .elpusztítani  , .kódol = , .frissít  , .  my_encoder_extra_data, . = , . =   

        ..

        .c */ [. ] külső   ; .    Obs_register_encoder(És . ] Visszatérés  > 

        • – .
        • – . Általában elvárható, hogy legalább „CBR” sebességszabályozással rendelkezzen. .
        • – . .

        Példák a kódolókra:

          • Az FFMPEG AAC/OPUS kódoló

          A szolgáltatások a streaming szolgáltatások egyedi megvalósításai, amelyeket az áramlások kimeneteivel használnak. . .A H fájl a szolgáltatások végrehajtásának dedikált fejléce. .

          (A szerző megjegyzése: A Service API hiányos az írás óta)

          Például egy szolgáltatási objektum megvalósításához meg kell határoznia egy obs_service_info struktúrát, és kitöltenie kell a szolgáltatáshoz kapcsolódó információkkal és visszahívásokkal:

          /* szolgálatom.c */ [. ] struktúra ob_service_info    .személyazonosság = "my_service", .get_name  my_service_name, .teremt  my_service_create, .elpusztítani = my_service_destroy, .kódol = , .frissít  , .  , . =  >; 

          Aztán a Plugin-ban.C, felhívná az OBS_Register_Service () -et az Obs_Module_Load () -ben, hogy regisztrálja a szolgáltatást a Libobs segítségével.

          /* My Plugin.c */ [. ]   ob_service_info ; .  üres  ob_register_service(my_service . ]  ; > 

          Az egyetlen két meglévő szolgáltatási objektum a „Common RTMP szolgáltatások” és az „Egyedi RTMP szolgáltatás” objektumok a plugins/RTMP-szolgáltatásokban

          Beállítások

          .h) a beállítások beszerzésére vagy beállítására szolgálnak, amelyek jellemzően a Libobs objektumokhoz kapcsolódnak, majd menthetők és betölthetők a JSON szövegén keresztül. További információkért lásd az Adatbeállítások API referenciáját (obs_data_t).

          A egyenértékű egy JSON objektumnak, ahol az al-objektumok karakterlánc-táblája, és a objektumok, hasonlóan a JSON tömbökhöz (bár nem egészen azonos).

          Létrehozni egy Obs_data_t Objektum, felhívja az OBS_DATA_CREATE () vagy OBS_DATA_ARRAY_CREATE () funkciókat. és . Bármikor egy Obs_data_t Obs_data_array_t .

          Az értékek beállításához egy Objektum, a következő funkciók egyikét használja:

          / * A funkciók beállítása */   ( adat, higgadt  , higgadt csészék *  üres  *,  csészék *, hosszú    üres Obs_data_t *adat, higgadt  , kettős vall   (Obs_data_t adat,  csészék *,  );  üres  adat, higgadt csészék *név, Obs_data_t *); EXPORT üres Obs_data_set_array(Obs_data_t adat, higgadt csészék , Obs_data_array_t ); 

          Hasonlóképpen, hogy értéket szerezzen egy

          / * Funkciókat szerezzen */   csészék OBS_DATA_GET_STRING(Obs_data_t adat,   *név); EXPORT hosszú hosszú (Obs_data_t adat, higgadt csészék *név);  kettős ( adat, higgadt csészék *név); EXPORT bool ( *adat, higgadt csészék *); EXPORT Obs_data_t *Obs_data_get_obj(Obs_data_t ,   név);  Obs_data_array_t Obs_data_get_array adat, higgadt  * 

          A tipikus JSON adatobjektumokkal ellentétben a . Ez lehetővé teszi a visszaküldés ellenőrzését, ha egy adott karakterlánchoz nincs hozzárendelt érték . Minden egyes libobs objektumnak is van egy get_defaults .

          Ezek a funkciók vezérlik az alapértelmezett értékeket a következők:

          /* Alapértelmezett értékfunkciók.  EXPORT  obs_data_set_default_string(Obs_data_t *adat, higgadt csészék *név,   );   obs_data_set_default_int( , higgadt  ,   vall  üres obs_data_set_default_double(Obs_data_t adat, higgadt csészék *név, kettős ); EXPORT üres ( *adat,  csészék *név, bool vall); EXPORT üres Obs_data_t *adat, higgadt csészék *név, Obs_data_t *obj 

          Tulajdonságok

          .h) a felhasználói felület automatikus előállításához használják a Libobs objektum beállításainak módosítására (ha szükséges). Minden Libobs objektumnak van egy . A Tulajdonságok API meghatározza a konkrét tulajdonságokat, amelyek kapcsolódnak az objektum beállításaihoz, és a front-end ezeket a tulajdonságokat használja a kütyü generálására, hogy a felhasználó módosítsa a beállításokat. Például, ha logikai beállítása lenne, akkor obs_properties_add_bool () -ot használna, hogy a felhasználó megváltoztassa ezt a beállítást. További információkért lásd a Tulajdonságok API referenciáját (OBS_PROPERTIES_T).

          Példa erre:

          statikus Obs_properties_t my_source_properties(üres *adat  Obs_properties_t *   OBS_PROPERTIES_ADD_BOOL, "my_bool",  adat);  ppts;  [. ]   my_source  .get_properties = my_source_properties, . ] >; 

          A A paraméter az objektum adatainak, ha az objektum jelen van. . Lehet nulla, ha a tulajdonságokat a hozzá kapcsolódó objektum nélkül kapják meg.

          . .

          statikus  beállítás_a_modified(Obs_properties_t *,  p,  *)   engedélyezve  beállítások,   = OBS_PROPERTIES_GET(, "SEUTS_B"); obs_property_set_enabled(p, engedélyezve);    ; > .  statikus Obs_properties_t *my_source_properties( adat  Obs_properties_t     *p;   OBS_PROPERTIES_ADD_BOOL, , ()); obs_property_set_modified_callback, beállítás_a_modified OBS_PROPERTIES_ADD_TEXT(, , ob_module_text"Beállítás" ", Ob_text_default  ppts > 

          Lokalizáció

          . Ennek a módszernek a használatakor az obs_module_use_default_locale () makrót használják, amely automatikusan betölti/megsemmisíti a lokál adatait, a plugin részén extra erőfeszítés nélkül. .h) akkor használják, ha szöveges keresésre van szükség.

          Két export van a locale betöltéséhez/megsemmisítéséhez használt modulhoz: obs_module_set_locale () exportálás, és az obs_module_free_locale () export. A libobs az OBS_MODULE_SET_LOCALE () exportot hívja az aktuális nyelv beállításához, majd az OBS_MODULE_FREE_LOCALE () exportot a Libobs hívja a modul megsemmisítéséről. .

          © Copyright 2017-2023, Lain Bailey.

          . Egyes beépülő modulok lehetővé teszik az OBS Studio számára, hogy kommunikáljon bizonyos hardverekkel, például az Elgato Stream fedélzeten.

          Néhány bővítményt a Linux felhasználók számára is elérhetővé teszik a Flathubon keresztül.

          Kompatibilitás

          . Vannak azonban bizonyos esetek, amikor a plugin nem kompatibilis az OBS Studio másolatával:

          • A plugin csak egy platformon érhető el (i..
          • A plugin nem érhető el ugyanazon építészethez (i.. x86_64, nem ARM64)

          Hogy megnézhesse, milyen pluginok állnak rendelkezésre az OBS Studio 28 platformjaihoz.0, lásd az OBS Studio 28 plugin kompatibilitási listáját.

          Telepítse vagy távolítsa el a bővítményeket

          Az OBS Studio sok legnépszerűbb pluginja telepítőkkel érkezik. Általában az alább felsorolt ​​helyekre telepítik a plugineket.

          Ha manuálisan kell telepítenie a beépülő modulot, akkor a releváns fájloknak valószínűleg ezen mappákba kell menniük. .

          ablakok (minden felhasználó)

          C: \ Program Files \ Obs-Studio \ Obs-Plugins \ 64bit


          .2.4 és csak előzetes)

          C: \ Program Files \ Obs-Studio \ Obs-Plugins \ 32bit

          ablakok (egyetlen felhasználó)

          %AppData%\ Obs-Studio \ Obs-Plugins

          Mac operációs rendszer

          ~/Könyvtár/alkalmazás támogatás/OBS-Studio/Plugins

          Linux

          ~/.Config/Obs-Studio/Plugins

          Linux
          (Flatpak)

          Telepítse a bővítményeket a Flatpak használatával

          Ha az OBS Studio -t egyéni helyre telepíti vagy hordozható módot használja, akkor a telepítő célmappáját az egyéni helyére kell módosítania Data/pluginek mappa.