All Projects → obsproject → Obs Browser

obsproject / Obs Browser

Licence: gpl-2.0
CEF-based OBS Studio browser plugin

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Obs Browser

wecbrtc-WPFDemo
iConfRTC WebRTC Video Conferencing WPF Demo (c#).
Stars: ✭ 19 (-95.01%)
Mutual labels:  cef
CefGlue
.NET binding for The Chromium Embedded Framework (CEF)
Stars: ✭ 44 (-88.45%)
Mutual labels:  cef
FoldingBrowser
FoldingCoin & CureCoin All-In-One Installer
Stars: ✭ 48 (-87.4%)
Mutual labels:  cef
Uranium
Fast and versatile implementation of CEF for Unreal Engine
Stars: ✭ 51 (-86.61%)
Mutual labels:  cef
nimCEF
Nim wrapper for the Chromium Embedded Framework
Stars: ✭ 27 (-92.91%)
Mutual labels:  cef
NIM PC Demo
云信Windows(PC) C/C++ Demo源码仓库
Stars: ✭ 200 (-47.51%)
Mutual labels:  cef
mlapptools
MATLAB class containing methods for programmatic uifigure modification
Stars: ✭ 23 (-93.96%)
Mutual labels:  cef
cefau3
Chromium Embedded Framework for AutoIt3
Stars: ✭ 23 (-93.96%)
Mutual labels:  cef
BlazorCefApp
Build windows desktop GUI app via CEF / WinForms / Blazor server-site
Stars: ✭ 28 (-92.65%)
Mutual labels:  cef
jcefbuild
Binary builds of java-cef
Stars: ✭ 160 (-58.01%)
Mutual labels:  cef
boletosimples-docs
Documentação da API do Boleto Simples - Sistema para emissão de boletos com registro
Stars: ✭ 23 (-93.96%)
Mutual labels:  cef
browser-window
A simple, cross-platform, async/await aware browser GUI toolkit for Rust.
Stars: ✭ 21 (-94.49%)
Mutual labels:  cef
qt cef poc
Proof of concept of simple browser w/ CEF and Qt
Stars: ✭ 26 (-93.18%)
Mutual labels:  cef
gstcefsrc
A simple gstreamer wrapper around Chromium Embedded Framework
Stars: ✭ 46 (-87.93%)
Mutual labels:  cef
Journey
JCEF-powered cross-platform web browser
Stars: ✭ 85 (-77.69%)
Mutual labels:  cef
nsyslog-parser
Syslog Parser. Accepts RFC 3164 (BSD) and RFC 5424 formats
Stars: ✭ 14 (-96.33%)
Mutual labels:  cef
QtCef
A Cef Qt port , inject C++ API to Cef js context using reflection based on Qt's meta object system
Stars: ✭ 76 (-80.05%)
Mutual labels:  cef
Qcefview
A QWidget encapsulating the CEF named QCefView
Stars: ✭ 279 (-26.77%)
Mutual labels:  cef
chromium-swt
Create and render web UIs in Java SWT and Eclipse RCP applications.
Stars: ✭ 121 (-68.24%)
Mutual labels:  cef
GModCEFCodecFix
Automatic Patching/Updating of GMod CEF
Stars: ✭ 68 (-82.15%)
Mutual labels:  cef

obs-browser

obs-browser introduces a cross-platform Browser Source, powered by CEF (Chromium Embedded Framework), to OBS Studio. A Browser Source allows the user to integrate web-based overlays into their scenes, with complete access to modern web APIs.

On Windows, this also adds support for Service Integration (linking third party services) and Browser Docks (webpages loaded into the interface itself). macOS support for service integration & browser docks is in the works, and Linux support is planned.

This plugin is included by default on official packages on Windows and macOS. While Linux is supported, the official ppa does not currently include the browser source due to a conflict with GTK.

JS Bindings

obs-browser provides a global object that allows access to some OBS-specific functionality from JavaScript. This can be used to create an overlay that adapts dynamically to changes in OBS.

Get Browser Plugin Version

/**
 * @returns {number} OBS Browser plugin version
 */
window.obsstudio.pluginVersion
// => 1.24.0

Register for event callbacks

/**
 * @typedef {Object} OBSEvent
 * @property {object} detail - data from event
 */

window.addEventListener('obsSceneChanged', function(event) {
	var t = document.createTextNode(event.detail.name)
	document.body.appendChild(t)
})

Available events

Descriptions for these events can be found here.

  • obsSceneChanged
  • obsSourceVisibleChanged
  • obsSourceActiveChanged
  • obsStreamingStarting
  • obsStreamingStarted
  • obsStreamingStopping
  • obsStreamingStopped
  • obsRecordingStarting
  • obsRecordingStarted
  • obsRecordingPaused
  • obsRecordingUnpaused
  • obsRecordingStopping
  • obsRecordingStopped
  • obsReplaybufferStarting
  • obsReplaybufferStarted
  • obsReplaybufferSaved
  • obsReplaybufferStopping
  • obsReplaybufferStopped
  • obsVirtualcamStarted
  • obsVirtualcamStopped
  • obsExit

Get the current scene

/**
 * @typedef {Object} Scene
 * @property {string} name - name of the scene
 * @property {number} width - width of the scene
 * @property {number} height - height of the scene
 */

/**
 * @param {function} callback
 * @returns {Scene}
 */
window.obsstudio.getCurrentScene(function(scene) {
	console.log(scene)
})

Get OBS output status

/**
 * @typedef {Object} Status
 * @property {boolean} recording - not affected by pause state
 * @property {boolean} recordingPaused
 * @property {boolean} streaming
 * @property {boolean} replaybuffer
 * @property {boolean} virtualcam
 */

/**
 * @param {function} callback
 * @returns {Status}
 */
window.obsstudio.getStatus(function (status) {
	console.log(status)
})

Save OBS Replay Buffer

/**
 * Does not accept any parameters and does not return anything
 */
window.obsstudio.saveReplayBuffer()

Register for visibility callbacks

This method is legacy. Register an event listener instead.

/**
 * 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) {
	
};

Register for active/inactive callbacks

This method is legacy. Register an event listener instead.

/**
 * 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) {
	
};

Building

OBS Browser cannot be built standalone. It is built as part of OBS Studio.

By following the instructions, this will enable Browser Source & Custom Browser Docks on all three platforms. Both BUILD_BROWSER and CEF_ROOT_DIR are required.

On Windows

Follow the build instructions and be sure to download the CEF Wrapper and set CEF_ROOT_DIR in CMake to point to the extracted wrapper.

On macOS

Use the macOS Full Build Script. This will automatically download & enable OBS Browser.

On Linux

Follow the build instructions and choose the "If building with browser source" option. This includes steps to download/extract the CEF Wrapper, and set the required CMake variables.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].