Plugins – OBS Studio 29.1.
Contents
Linux
(Flatpak)
Complementos
. La capacidad de capturar y/o emitir audio/video, hacer una grabación, salida a una transmisión RTMP, codificarse en x264 son ejemplos de cosas que se logran a través de módulos de complementos.
.
Escribiendo su primer complemento? .
Estos son algunos encabezados notables comúnmente utilizados por complementos:
- Libobs/Obs-Module.H – El encabezado principal utilizado para crear módulos de complementos.
- .H – El encabezado principal de Libobs. Este archivo incluye automáticamente los siguientes archivos:
- Libobs/Obsurce.
- .
- .
- Libobs/Observicio.H – Se utiliza para implementar servicios en módulos de complementos
- .
- .
- libobs/gráficos/gráficos.
.
. Por ejemplo, si creabas un complemento llamado “My-Plugin”, tendrías algo como My-Plugin.c donde se realiza la inicialización del complemento, mi fuente..C para la definición de una salida personalizada, etc.
mi-/-A NOSOTROS.ini mi-enchufar/Cmakelists.TXT -/mi-. -enchufar-fuente.C mi-mi-. -/-. mi--servicio.
Este sería un ejemplo de una cmakelists común.
......c) add_library (módulo my-plugin $) target_link_libraries (my-plugin libobs) install_obs_plugin_with_data (datos my-plugin)
.H encabezado, use obs_declare_module () macro, luego cree una definición de la función obs_module_load () . . Consulte la referencia de la API del módulo para obtener más información.
.
. #incluir "my-plugin", "En-Us" estructura obs_source_info /* Definido en mi fuente.C */ externo my_output; .C */ estructura obs_encoder_info my_encoder; /* Definido en mi codificador.C */ estructura obs_service_info .C */ obs_module_load) obs_register_source my_output (my_encoder); Y verdadero;
Fuentes
Las fuentes se utilizan para realizar videos y/o audio en transmisión. . . Los libobs/Obsurce.. .
. . my_source .identificación = , .tipo , .Output_flags = Obs_source_video, . , .crear = my_source_create, .destruir = my_source_destroy, .actualizar my_source_update, . = , .Get_Width my_source_width, . my_source_height >;
..
/* my-plugin.C */ . /* Definido en mi fuente. bool vacío obs_register_source(Y [. devolver
Algunos ejemplos simples de fuentes:
- Filtro de video: el filtro de video de prueba
- Filtro de audio: el filtro de audio ganancia
Las salidas permiten la capacidad de emitir el audio/video de representación actualmente. La transmisión y la grabación son dos ejemplos comunes de salidas, pero no los únicos tipos de salidas. Las salidas pueden recibir los datos sin procesar o recibir datos codificados. .h El archivo es el encabezado dedicado para implementar salidas. Consulte la referencia de la API de salida (Obs_output_t) para obtener más información.
Por ejemplo, para implementar un objeto de salida, debe definir una estructura obs_output_info y llenarlo con información y devoluciones de llamada relacionadas con su salida:
/* mi salida. . ] obs_output_info . = "my_output", .banderas | , .get_name = my_output_name, . my_output_create, . = my_output_destroy, .comenzar , . , .ENCODED_PACKET my_output_data, .get_total_bytes my_output_total_bytes, .encoded_video_codecs "H264", . = >;
..
.C */ [. estructura my_output . (vacío) obs_register_output [.
- Salidas de video/audio codificadas:
- La salida de FLV
- La salida ffmpeg muxer
Codificadores
. . .h El archivo es el encabezado dedicado para implementar codificadores. Consulte la referencia de la API del codificador (obs_encoder_t) para obtener más información.
.C */ [. ] estructura = .identificación = "my_encoder", . = Obs_encoder_video, .codec = "H264", . my_encoder_name, . , .destruir = my_encoder_destroy, . , .actualizar = , . = , .get_sei_data = , . my_encoder_video_info >;
..
.C */ [. estructura /* Definido en mi codificador.C */ bool obs_module_load( obs_register_encodermy_encoder); [. ] devolver >
- – Este valor debe usarse para codificadores de video y audio: tasa de bits, en kilobits.
- “Control de clasificación” – Esta es una configuración utilizada para codificadores de video. . .
- – . .)
-
- El codificador x264
- El codificador QuickSync
- El codificador FFMPEG AAC/OPUS
Servicios
. . .. .
(Nota del autor: la API del servicio está incompleta a partir de este escrito)
/* mi servicio. [. estructura .identificación = , .get_name = my_service_name, . = my_service_create, . = my_service_destroy, .codificar = my_service_encode, . = my_service_update, . = my_service_url, .obtener la clave = my_service_key >;
..
/* my-plugin.C */ [. externo obs_service_info ; . bool obs_module_load) (Y); [. ] >
Configuración
Configuración (ver libobs/obs-data.. Consulte la referencia de API de configuración de datos (obs_data_t) para obtener más información.
es el equivalente de un objeto JSON, donde es una tabla de cadenas de subobjetos, y el obs_data_array_t se usa de manera similar para almacenar una variedad de objetos, similares a las matrices JSON (aunque no del todo idénticas).
obs_data_array_t . obs_data_t y obs_data_array_t Los objetos se cuentan con referencia, por lo que cuando haya terminado con el objeto, llame a obs_data_release () o obs_data_array_release () para liberar esas referencias. Cada vez un obs_data_t o .
Para establecer valores para un
/ * Establecer funciones */ EXPORTAR vacío obs_data_set_string(obs_data_t *, nombre, carbonizarse Val obs_data_set_int(obs_data_t *datos, estúpido carbonizarse *, largo largo Val); EXPORTAR obs_data_set_double( datos, carbonizarse *nombre, doble obs_data_set_boolobs_data_t *datos, estúpido carbonizarse nombre, vacío ( , *nombre, *obj); obs_data_set_arrayobs_data_t datos, estúpido *nombre, obs_data_array_t );
obs_data_t
/ * Obtener funciones */ EXPORTAR obs_data_t *datos, carbonizarse * EXPORTAR largo ( datos, estúpido *); EXPORTAR obs_data_t datos, carbonizarse *); bool obs_data_t *, carbonizarse * EXPORTAR obs_data_t obs_data_get_objobs_data_t *, carbonizarse * EXPORTAR ( datos, carbonizarse nombre);
obs_data_t . objeto cuando esos datos se cargan desde una cadena JSON o archivo JSON. .
. vacío ( datos, estúpido carbonizarse nombre, * EXPORTAR ( datos, *nombre, largo datos, carbonizarse , doble ); EXPORTAR (obs_data_t , estúpido carbonizarse *nombre, EXPORTAR (obs_data_t , *nombre, obs_data_t *obj
.h) se utilizan para generar automáticamente la interfaz de usuario para modificar la configuración de un objeto Libobs (si lo desea). Cada objeto Libobs tiene un devolución de llamada que se utiliza para generar propiedades. . . Consulte la referencia de API de propiedades (obs_properties_t) para obtener más información.
Un ejemplo de esto:
estático obs_properties_t *( obs_properties_t = obs_properties_create(); obs_properties_add_bool(, "my_bool", ("Mybool")); No utilizado_parámetro(datos devolver ; . ] .get_properties = , . ]
El . . .
. .
Por ejemplo, si desea una propiedad booleana A para ocultar la propiedad de texto B:
( *PPTS, pag, bool activado = obs_data_get_bool, "shiting_a" pag = , obs_property_set_enabled, ); /* Devolver verdadero para actualizar widgets de propiedad, falso > . estático *datos) obs_properties_t PPTS = obs_properties_create obs_property_t * = , , ("Settinga")); , setting_a_modified obs_properties_add_text, , obs_module_text"Settingb", ); devolver PPTS; >
Localización
. . .h) se usa cuando se necesita una búsqueda de texto.
Hay dos exportaciones el módulo utilizado para cargar/destruir la configuración regional: la exportación obs_module_set_locale (), y el obs_module_free_locale () export. . Si desea implementar una implementación local personalizada para su complemento, desea definir estas exportaciones junto con Obs_Module_Text () extern en lugar de confiar en OBS_MODULE_USE_DEFAULT_LOCALE () Macro.
© Copyright 2017-2023, Lain Bailey.
. .
Algunos complementos también están disponibles para los usuarios de Linux a través de Flathub.
Compatibilidad
La mayoría de los complementos se desarrollan para ser utilizables en todas las plataformas donde OBS Studio está disponible.
- El complemento solo está disponible en una plataforma (yo.. Windows, no macOS)
- ..
- El complemento no se ha actualizado para la versión de OBS que está utilizando
.0, consulte la lista de compatibilidad del complemento OBS Studio 28.
Instalar o eliminar complementos
Muchos de los complementos más populares de OBS Studio vienen con instaladores. En general, instalan complementos en las ubicaciones que se enumeran a continuación.
Si necesita instalar un complemento manualmente, los archivos relevantes probablemente deben ir en una estas carpetas. Consulte primero la documentación del complemento.
Windows (todos los usuarios)
C: \ Archivos de programa \ OBS-Studio \ OBS-Plugins \ 64bit
..Mac OS
~/Biblioteca/soporte de aplicaciones/OBS-Studio/complementos
.config/OBS-Studio/complementos
.
- .H – El encabezado principal de Libobs. Este archivo incluye automáticamente los siguientes archivos: