# obs-studio | OBS Project | Knowledge Base | Instagit

OBS Studio - Free and open source software for live streaming and screen recording

GitHub Stars: 70.7k

Repository: https://github.com/obsproject/obs-studio

---

## Articles

### [obs_output_delay Configuration: Implementing Time-Shifted Output in OBS Studio](/obsproject/obs-studio/output-delay-configuration-with-obs-output-delay)

Configure obs_output_delay in OBS Studio for time-shifted streaming. Learn how to implement buffering and delay for your encoded output with ease.

- Tags: how-to-guide
- Published: 2026-03-03

### [How to Build a Custom Properties UI with obs_properties_t for OBS Studio Source Configuration](/obsproject/obs-studio/custom-properties-ui-with-obs-properties-t-for-source-configuration)

Learn to build custom properties UI for OBS Studio sources using obs_properties_t. Dynamically configure checkboxes, text fields, and more without custom UI code.

- Tags: how-to-guide
- Published: 2026-03-03

### [Understanding the Media Source State Machine in OBS Studio](/obsproject/obs-studio/media-source-state-machine-obs-media-state-playing-buffering-paused-error)

Master the OBS Studio media source state machine. Understand OBS_MEDIA_STATE_PLAYING, BUFFERING, PAUSED, and ERROR for seamless media control in your streams.

- Tags: internals
- Published: 2026-03-03

### [Multi-View Management with obs_view_t for Preview/Output Separation in OBS Studio](/obsproject/obs-studio/multi-view-management-with-obs-view-t-for-preview-output-separation)

Master multi-view management in OBS Studio. Learn how obs_view_t separates preview and output using dedicated rendering for seamless control over your streams.

- Tags: deep-dive
- Published: 2026-03-03

### [obs_display_t Display Rendering Setup: A Complete Guide for OBS Studio Developers](/obsproject/obs-studio/display-rendering-setup-with-obs-display-t)

Master obs_display_t display rendering setup in OBS Studio. This guide covers swap chains, draw callbacks, and color spaces for developers using the C API.

- Tags: how-to-guide
- Published: 2026-03-03

### [Scene Composition and obs_scene_item_t Transform Handling in OBS Studio](/obsproject/obs-studio/scene-composition-and-obs-scene-item-t-transform-handling)

Learn how OBS Studio handles scene composition and obs_scene_item_t transform data by converting user parameters into GPU-ready matrices for efficient rendering.

- Tags: internals
- Published: 2026-03-03

### [Weak Reference Management for OBS Objects: Complete Guide to obs_weak_* Types](/obsproject/obs-studio/weak-reference-management-for-objects-with-obs-weak-types)

Master weak reference management for OBS objects using obs_weak_* types. Learn thread-safe atomic reference counting to prevent use-after-free errors and manage handles effectively.

- Tags: internals
- Published: 2026-03-03

### [Module Loading Lifecycle and obs_module_t Management in OBS Studio](/obsproject/obs-studio/module-loading-lifecycle-and-obs-module-t-management)

Understand the OBS Studio module loading lifecycle discovery validation and initialization. Learn how obs_module_t is managed and modules are registered for enhanced plugin development.

- Tags: internals
- Published: 2026-03-03

### [Global Hotkey Registration and Handling with obs_hotkey Functions in OBS Studio](/obsproject/obs-studio/global-hotkey-registration-and-handling-with-obs-hotkey-functions)

Learn how OBS Studio handles global hotkeys using obs_hotkey functions. Discover registration, JSON persistence, and input processing for seamless control.

- Tags: internals
- Published: 2026-03-03

### [Audio Fader and Volume Meter Implementation with obs_fader_t and obs_volmeter_t in OBS Studio](/obsproject/obs-studio/audio-fader-and-volume-meter-implementation-with-obs-fader-t-and-obs-volmeter-t)

Learn how OBS Studio implements audio fader and volume meter functionality using obs_fader_t and obs_volmeter_t. Explore thread-safe primitives and callback APIs for precise audio control and monitoring.

- Tags: 
- Published: 2026-03-03

### [Creating Streaming Service Outputs with OBS_OUTPUT_SERVICE Protocol Support in OBS Studio](/obsproject/obs-studio/creating-streaming-service-outputs-with-obs-output-service-protocol-support)

**OBS Studio uses the `OBS_OUTPUT_SERVICE` protocol flag to bind streaming outputs to service objects that provide connection details like server URLs and stream keys, enabling a modular streaming architecture where outputs han...

- Tags: 
- Published: 2026-03-03

### [Implementing ROI (Region of Interest) Encoding with OBS_ENCODER_CAP_ROI](/obsproject/obs-studio/implementing-roi-region-of-interest-encoding-with-obs-encoder-cap-roi)

**OBS Studio enables per-region quality control through the `OBS_ENCODER_CAP_ROI` capability, allowing encoders like x264, NVENC, QSV, and AMF to apply priority-based QP adjustments to specific rectangular areas of each video f...

- Tags: 
- Published: 2026-03-03

### [Encoder Packet Timing in OBS Studio: Understanding CTS, FER, FERC, and PIR Timestamps](/obsproject/obs-studio/encoder-packet-timing-understanding-cts-fer-ferc-pir-timestamp-fields)

**OBS Studio tracks four nanosecond-precision timestamps—CTS, FER, FERC, and PIR—to measure rendering latency, encoder pipeline delay, and end-to-end frame delivery time.**

- Tags: internals
- Published: 2026-03-03

### [Managing Multiple Canvas Outputs with obs_canvas_t in OBS Studio](/obsproject/obs-studio/managing-multiple-canvas-outputs-with-obs-canvas-t)

Master multiple canvas outputs using the obs_canvas_t API in OBS Studio. Effortlessly manage independent rendering targets and dedicated video mixes for simultaneous outputs.

- Tags: how-to-guide
- Published: 2026-03-03

### [Building Video/Audio Filters with OBS_SOURCE_TYPE_FILTER: A Complete Developer's Guide](/obsproject/obs-studio/building-video-audio-filters-with-obs-source-type-filter)

**To build a video or audio filter in OBS Studio, define an `obs_source_info` structure with `.type` set to `OBS_SOURCE_TYPE_FILTER` and implement the `filter_video` or `filter_audio` callbacks to process frames in-place or ret...

- Tags: how-to-guide
- Published: 2026-03-03

### [Implementing Custom Source Plugins with OBS_SOURCE_TYPE_INPUT in OBS Studio](/obsproject/obs-studio/implementing-custom-source-plugins-with-obs-source-type-input)

**To implement a custom input source plugin in OBS Studio, define an `obs_source_info` struct with `type` set to `OBS_SOURCE_TYPE_INPUT`, implement the required callbacks including `create`, `destroy`, `get_width`, `get_height`...

- Tags: 
- Published: 2026-03-03

### [Audio Balance Processing with OBS_BALANCE_TYPE_SINE_LAW vs SQUARE_LAW vs LINEAR in OBS Studio](/obsproject/obs-studio/audio-balance-processing-with-obs-balance-type-sine-law-vs-square-law-vs-linear)

**OBS Studio applies three distinct mathematical laws—Sine Law, Square Law, and Linear—to calculate stereo channel amplitudes when panning audio sources, with Sine Law providing equal-power panning as the default implementation.**

- Tags: internals
- Published: 2026-03-03

### [How to Choose Between OBS_SCALE_BICUBIC, OBS_SCALE_LANCZOS, and OBS_SCALE_BILINEAR in OBS Studio](/obsproject/obs-studio/video-scaling-algorithms-choosing-between-obs-scale-bicubic-obs-scale-lanczos-obs-scale-bilinear)

Learn how to choose the best video scaling algorithm OBS_SCALE_BICUBIC, OBS_SCALE_LANCZOS, or OBS_SCALE_BILINEAR for OBS Studio to optimize quality and performance based on your needs.

- Tags: how-to-guide
- Published: 2026-03-03

### [Creating Source Transitions with OBS_SOURCE_TYPE_TRANSITION: A Complete Developer Guide](/obsproject/obs-studio/creating-source-transitions-with-obs-source-type-transition)

Learn to create source transitions in OBS Studio using OBS_SOURCE_TYPE_TRANSITION. This developer guide covers essential callbacks and creation methods for custom transitions.

- Tags: developer-guide
- Published: 2026-03-03

### [Multi-Track Audio and Video Output Configuration with OBS_OUTPUT_MULTI_TRACK Flags](/obsproject/obs-studio/multi-track-audio-and-video-output-configuration-with-obs-output-multi-track-flags)

Learn how to configure multi-track audio and video output in OBS Studio using OBS OUTPUT MULTI TRACK flags. Route encoded packets efficiently with track indices.

- Tags: how-to-guide
- Published: 2026-03-03

### [Implementing Custom Encoders with OBS_ENCODER_CAP_DYN_BITRATE for Dynamic Bitrate Control](/obsproject/obs-studio/implementing-custom-encoders-with-obs-encoder-cap-dyn-bitrate-for-dynamic-bitrate-control)

Implement dynamic bitrate control in custom OBS encoders using OBS_ENCODER_CAP_DYN_BITRATE. Set the capability flag and provide an update callback for real time codec reconfiguration.

- Tags: deep-dive
- Published: 2026-03-03

### [How OBS_SOURCE_ASYNC Works in OBS Studio: Asynchronous Video Sources Explained](/obsproject/obs-studio/how-does-obs-source-async-work-and-when-to-use-it-for-async-video-sources)

Understand OBS_SOURCE_ASYNC to decouple video capture from OBS Studio's render thread. Learn how async video sources push raw frames for better performance.

- Tags: internals
- Published: 2026-03-03

