Der Obs-Browser führt eine plattformübergreifende Browserquelle, die von CEF (Chromium-Embedded-Gerüst) in OBS Studio betrieben wird. Mit einer Browserquelle kann der Benutzer webbasierte Overlays in seine Szenen integrieren, mit vollständigem Zugriff auf moderne Web-APIs.
Darüber hinaus ermöglicht Obs-Browser die Service-Integration (Dienste von Drittanbietern) und Browser-Docks (Webseiten, die in die Schnittstelle selbst geladen wurden) auf allen unterstützten Plattformen, mit Ausnahme von Wayland (Linux).
Dieses Plugin ist standardmäßig in offiziellen Paketen unter Windows, MacOS, dem Ubuntu PPA und dem offiziellen Flatpak (meisten Linux -Verteilungen) enthalten .
Obs-Browser bietet ein globales Objekt, das den Zugriff auf eine obspezifische Funktionalität von JavaScript ermöglicht. Dies kann verwendet werden, um ein Overlay zu erstellen, das sich dynamisch an Änderungen in OBS anpasst.
Wenn Sie TypeScript verwenden, sind die Definitionen für die OBS-Browser-Bindungen über NPM und Garn verfügbar.
# 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 )
} )
Beschreibungen für diese Ereignisse finden Sie hier.
Erforderliche Berechtigungen: Keine
/**
* @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 )
} )
Erforderliche Berechtigungen: 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 )
} )
Erforderliche Berechtigungen: 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 )
} )
Erforderliche Berechtigungen: Read_User
/**
* @callback ScenesCallback
* @param {string[]} scenes
*/
/**
* @param {ScenesCallback} cb - The callback that receives the scenes.
*/
window . obsstudio . getScenes ( function ( scenes ) {
console . log ( scenes )
} )
Erforderliche Berechtigungen: Read_User
/**
* @callback TransitionsCallback
* @param {string[]} transitions
*/
/**
* @param {TransitionsCallback} cb - The callback that receives the transitions.
*/
window . obsstudio . getTransitions ( function ( transitions ) {
console . log ( transitions )
} )
Erforderliche Berechtigungen: 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 )
} )
Erforderliche Berechtigungen: Basic
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . saveReplayBuffer ( )
Erforderliche Berechtigungen: Fortgeschrittene
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startReplayBuffer ( )
Erforderliche Berechtigungen: Fortgeschrittene
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopReplayBuffer ( )
Erforderliche Berechtigungen: Fortgeschrittene
/**
* @param {string} name - Name of the scene
*/
window . obsstudio . setCurrentScene ( name )
Erforderliche Berechtigungen: Fortgeschrittene
/**
* @param {string} name - Name of the transition
*/
window . obsstudio . setCurrentTransition ( name )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startStreaming ( )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopStreaming ( )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startRecording ( )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopRecording ( )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . pauseRecording ( )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . unpauseRecording ( )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startVirtualcam ( )
Erforderliche Berechtigungen: alle
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopVirtualcam ( )
Diese Methode ist Vermächtnis. Registrieren Sie stattdessen einen Event -Hörer.
/**
* 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 ) {
} ;
Diese Methode ist Vermächtnis. Registrieren Sie stattdessen einen Event -Hörer.
/**
* 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 beinhaltet die Integration mit den Anbietern von OBS-Webocket. Der zu verwendende Anbieter Name ist obs-browser
, und verfügbare Anfragen sind:
emit_event
- nimmt event_name
und? event_data
-Parameter. Emittiert ein benutzerdefiniertes Ereignis an alle Browserquellen. Um Veranstaltungen zu abonnieren, siehe hierZu diesem Zeitpunkt stehen keine Anbieterveranstaltungen zur Verfügung.
OBS -Browser kann nicht eigenständig gebaut werden. Es wird als Teil von OBS Studio gebaut.
Durch die Befolgung der Anweisungen können Browserquelle und benutzerdefinierte Browser -Docks auf allen drei Plattformen ermöglicht werden. Sowohl BUILD_BROWSER
als auch CEF_ROOT_DIR
sind erforderlich.
Befolgen Sie die Build -Anweisungen und laden Sie den CEF -Wrapper herunter und setzen Sie CEF_ROOT_DIR
in CMAKE, um auf den extrahierten Wrapper zu verweisen.
Verwenden Sie das MACOS voll Build -Skript. Dadurch wird der OBS -Browser automatisch heruntergeladen und aktiviert.
Befolgen Sie die Build -Anweisungen und wählen Sie die Option "Wenn bauen mit Browserquelle". Dies beinhaltet Schritte zum Herunterladen/Extrahieren des CEF -Wrappers und der Einstellung der erforderlichen CMake -Variablen.