Obs-Browser presenta una fuente de navegador multiplataforma, alimentada por CEF (marco incrustado de cromo), a OBS Studio. Una fuente del navegador permite al usuario integrar superposiciones basadas en la web en sus escenas, con acceso completo a las API web modernas.
Además, OBS-Browser permite la integración del servicio (vinculando los servicios de terceros) y los muelles del navegador (páginas web cargadas en la interfaz en sí) en todas las plataformas compatibles, excepto Wayland (Linux).
Este complemento se incluye de forma predeterminada en paquetes oficiales en Windows, MacOS, el PPA de Ubuntu y el FlatPak oficial (la mayoría de las distribuciones de Linux).
Obs-Browser proporciona un objeto global que permite el acceso a alguna funcionalidad específica de JavaScript. Esto se puede usar para crear una superposición que se adapte dinámicamente a los cambios en OBS.
Si está utilizando TypeScript, las definiciones de tipo para los enlaces OBS-Browser están disponibles a través de NPM e hilo.
# npm
npm install --save-dev @types/obs-studio
# yarn
yarn add --dev @types/obs-studio
/**
* @returns {string} OBS Browser plugin version
*/
window . obsstudio . pluginVersion
// => 2.17.0
/**
* @callback EventListener
* @param {CustomEvent} event
*/
/**
* @param {string} type
* @param {EventListener} listener
*/
window . addEventListener ( 'obsSceneChanged' , function ( event ) {
var t = document . createTextNode ( event . detail . name )
document . body . appendChild ( t )
} )
Las descripciones de estos eventos se pueden encontrar aquí.
Se requieren permisos: ninguno
/**
* @typedef {number} Level - The level of permissions. 0 for NONE, 1 for READ_OBS (OBS data), 2 for READ_USER (User data), 3 for BASIC, 4 for ADVANCED and 5 for ALL
*/
/**
* @callback LevelCallback
* @param {Level} level
*/
/**
* @param {LevelCallback} cb - The callback that receives the current control level.
*/
window . obsstudio . getControlLevel ( function ( level ) {
console . log ( level )
} )
Se requieren permisos: Read_obs
/**
* @typedef {Object} Status
* @property {boolean} recording - not affected by pause state
* @property {boolean} recordingPaused
* @property {boolean} streaming
* @property {boolean} replaybuffer
* @property {boolean} virtualcam
*/
/**
* @callback StatusCallback
* @param {Status} status
*/
/**
* @param {StatusCallback} cb - The callback that receives the current output status of OBS.
*/
window . obsstudio . getStatus ( function ( status ) {
console . log ( status )
} )
Se requieren permisos: Read_user
/**
* @typedef {Object} Scene
* @property {string} name - name of the scene
* @property {number} width - width of the scene
* @property {number} height - height of the scene
*/
/**
* @callback SceneCallback
* @param {Scene} scene
*/
/**
* @param {SceneCallback} cb - The callback that receives the current scene in OBS.
*/
window . obsstudio . getCurrentScene ( function ( scene ) {
console . log ( scene )
} )
Se requieren permisos: Read_user
/**
* @callback ScenesCallback
* @param {string[]} scenes
*/
/**
* @param {ScenesCallback} cb - The callback that receives the scenes.
*/
window . obsstudio . getScenes ( function ( scenes ) {
console . log ( scenes )
} )
Se requieren permisos: Read_user
/**
* @callback TransitionsCallback
* @param {string[]} transitions
*/
/**
* @param {TransitionsCallback} cb - The callback that receives the transitions.
*/
window . obsstudio . getTransitions ( function ( transitions ) {
console . log ( transitions )
} )
Se requieren permisos: Read_user
/**
* @callback TransitionCallback
* @param {string} transition
*/
/**
* @param {TransitionCallback} cb - The callback that receives the transition currently set.
*/
window . obsstudio . getCurrentTransition ( function ( transition ) {
console . log ( transition )
} )
Permisos requeridos: Básico
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . saveReplayBuffer ( )
Permisos requeridos: avanzado
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startReplayBuffer ( )
Permisos requeridos: avanzado
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopReplayBuffer ( )
Permisos requeridos: avanzado
/**
* @param {string} name - Name of the scene
*/
window . obsstudio . setCurrentScene ( name )
Permisos requeridos: avanzado
/**
* @param {string} name - Name of the transition
*/
window . obsstudio . setCurrentTransition ( name )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startStreaming ( )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopStreaming ( )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startRecording ( )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopRecording ( )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . pauseRecording ( )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . unpauseRecording ( )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startVirtualcam ( )
Se requieren permisos: todos
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopVirtualcam ( )
Este método es legado. Registre un oyente de eventos en su lugar.
/**
* onVisibilityChange gets callbacks when the visibility of the browser source changes in OBS
*
* @deprecated
* @see obsSourceVisibleChanged
* @param {boolean} visibility - True -> visible, False -> hidden
*/
window . obsstudio . onVisibilityChange = function ( visibility ) {
} ;
Este método es legado. Registre un oyente de eventos en su lugar.
/**
* onActiveChange gets callbacks when the active/inactive state of the browser source changes in OBS
*
* @deprecated
* @see obsSourceActiveChanged
* @param {bool} True -> active, False -> inactive
*/
window . obsstudio . onActiveChange = function ( active ) {
} ;
Obs-Browser incluye la integración con las solicitudes de proveedores de OBS-Websocket. El nombre del proveedor para usar es obs-browser
, y las solicitudes disponibles son:
emit_event
- toma event_name
y? event_data
Parámetros. Emite un evento personalizado para todas las fuentes de navegador. Para suscribirse a los eventos, ver aquíNo hay eventos de proveedores disponibles en este momento.
El navegador OBS no se puede construir independientemente. Está construido como parte de OBS Studio.
Siguiendo las instrucciones, esto habilitará las muelles de navegador y navegador personalizados en las tres plataformas. Se requieren tanto BUILD_BROWSER
como CEF_ROOT_DIR
.
Siga las instrucciones de compilación y asegúrese de descargar el envoltorio CEF y establecer CEF_ROOT_DIR
en CMake para apuntar al envoltorio extraído.
Use el script de compilación completo de macOS. Esto descargará y habilitará automáticamente el navegador OBS.
Siga las instrucciones de compilación y elija la opción "IF Building With Browser Foure". Esto incluye pasos para descargar/extraer el envoltorio CEF y establecer las variables CMake requeridas.