obsproject/obs-studio
OBS Studio - Free and open source software for live streaming and screen recording
How obs-studio is put together
OBS Studio is a cross-platform desktop application for live streaming and recording, written primarily in C and C++ with a Swift-based renderer backend for macOS. The architecture centers on the core library `libobs`, which implements sources, scenes, outputs, encoders, services, hotkeys, audio/video pipelines, and a plugin/module system. Platform graphics backends are isolated in `libobs-d3d11` (Direct3D 11), `libobs-metal` (Metal, in Swift), and `libobs-opengl` (OpenGL across Windows/X11/Wayland/macOS), while the Qt-style frontend (`frontend/`) hosts the main application entry point and UI logic. Data flows from capture sources through libobs's video/audio mixers to GPU-based encoding and outputs/services; plugins under `plugins/` extend functionality (e.g., rtmp-services, win-capture) and ship remotely-updatable JSON data packages fetched from obsproject.com.
Languages
Frameworks
Infrastructure
Major components
libobs
Core library implementing sources, scenes, encoders, outputs, services, audio/video processing, hotkeys, configuration (obs-data), and dynamic plugin/module loading.
frontend
Main application layer with entry point (obs-main.cpp), OBSApp application class, theming, and studio API surface.
libobs-d3d11
Direct3D 11 graphics subsystem providing textures, buffers, shaders, sampler states, stage surfaces, and display duplication on Windows.
libobs-metal
Swift-implemented Apple Metal graphics backend with bridging header exposing libobs types to Swift render objects.
libobs-opengl
OpenGL graphics subsystem with platform glue for Windows, X11/EGL, Wayland/EGL, and macOS Cocoa.
libobs-winrt
Windows Runtime integration for WinRT-based capture and dispatching.
plugins/rtmp-services
Streaming service definitions shipped as versioned services.json with a package manifest pointing at a remote update URL.
plugins/win-capture
Windows capture plugin shipping versioned compatibility.json with its own remote update package.
A busy week of internal cleanup: safer GIF handling, stricter build dependencies, and better Windows screen capture detection.
5 weeksWeek of 2026-08-17
Week of 2026-08-17latest
A busy week of internal cleanup: safer GIF handling, stricter build dependencies, and better Windows screen capture detection.
Week of 2026-08-10
A quiet maintenance week capped by the release of version 32.2.2.
Week of 2026-08-03
Small video-encoding fix plus housekeeping on the automated testing systems.
Week of 2026-07-27
Theme improvements for users, removal of an old Windows workaround, and updated macOS build targets.
Week of 2026-07-20
The 32.2.1 patch release shipped alongside fixes for screen sharing duplication and Windows capture logging.
Over the past five weeks, OBS Studio's development focused on polish and stability ahead of a release: the team shipped version 32.2.1 and then 32.2.2 with small fixes, while cleaning up internals like GIF decoding and build requirements. Platform work continued on Windows (better fullscreen capture detection, clearer error logging) and macOS (newer build targets), alongside routine maintenance of automated testing infrastructure.
Week by week
2026-08-17A busy week of internal cleanup: safer GIF handling, stricter build dependencies, and better Windows screen capture detection.latest6 changes
Refactor
Improved fullscreen window detection on Windows
Windows game and screen capture is now better at recognizing when a window is truly fullscreen.
Refactor
GIF decoding internals hidden from public interfaces
The code that decodes animated GIF images was restructured so its inner workings are no longer exposed in files other developers depend on, preventing compatibility breakage.
Chore
Updated bundled GIF library to version 1.0.0
The third-party library OBS uses to display GIF images was upgraded to its latest official release.
Chore
Tightened security library requirement
The build now requires a specific major version range of the MbedTLS encryption library, avoiding versions known to be incompatible.
Fix
Fixed source button renaming behavior
Fixed an issue where renaming a source in the main interface didn't update correctly everywhere it appeared.
Refactor
Removed unused widget property from the interface
A leftover setting in the user interface code that no longer served a purpose was removed.
2026-08-10A quiet maintenance week capped by the release of version 32.2.2.3 changes
Chore
Released version 32.2.2
The software's internal version number was bumped to mark a new small patch release.
Fix
Fixed spacing glitch in permissions dialog
Corrected a visual layout issue in the dialog that shows permission-related messages.
Refactor
Modernized form code
Internal settings-form code was updated to use clearer, fully spelled-out value names for easier maintenance.
2026-08-03Small video-encoding fix plus housekeeping on the automated testing systems.3 changes
Fix
Fixed AMD hardware encoding frame timing
Corrected a calculation issue that could misalign certain video frames when using AMD graphics cards for encoding.
Chore
Dropped Ubuntu 24.04 from automated testing
The automated build-and-test system no longer runs jobs on Ubuntu 24.04.
Chore
Updated macOS package manager unconditionally in CI
The automated builds now always refresh their Mac package manager tooling rather than doing so conditionally.
2026-07-27Theme improvements for users, removal of an old Windows workaround, and updated macOS build targets.5 changes
Feature
Added info notices to theme files
Custom themes can now include helpful informational notes displayed to users.
Fix
Removed old Windows DLL-loading safeguard
An older protective workaround around how Windows loads system files was removed as it's no longer needed.
Chore
Raised minimum macOS build version to 26
The automated build machines now use macOS 26 as their baseline operating system.
Chore
Set macOS 13 as deployment target
Finished OBS apps for Mac now officially require macOS 13 or newer to run.
Fix
Silenced harmless warnings in Mac virtual camera
Cleaned up warning messages in the Mac virtual camera component so real problems are easier to spot.
2026-07-20The 32.2.1 patch release shipped alongside fixes for screen sharing duplication and Windows capture logging.6 changes
Fix
Prevented duplicate screen share sources on Linux
On Linux, the same shared screen can no longer be added twice as separate sources, which caused confusion.
Chore
Released version 32.2.1
The software's internal version number was bumped to mark a new patch release.
Fix
Better error reporting for Windows game capture installation
If the background component used for capturing games fails to install or update, OBS now records clear details in its log file.
Chore
More update rollback points for Mac users
Mac users now have five stored previous versions available when applying automatic updates.
Fix
Resolved capture helper paths to full locations
Windows capture components now use complete absolute file paths internally, avoiding issues when the app is launched from different folders.
Fix
Fixed default thumbnail placement
Corrected where placeholder thumbnails appear in the interface before a preview image loads.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required