OBS Studio Feature Proposal: Borderless Windowed Projector

moyii

New Member
Title: Implement an Option for Borderless Mode in Windowed Projectors to Improve Single-Monitor Workflow and Capture Accuracy.

Target Version: OBS Studio 32.0.1(64bit).



I. Problem Statement (The Pain Point)​



The current Windowed Projector functionality, when used to separate a Scene or Source for preview, creates a standard operating system window that forces the display of a title bar and border.

This presents two major issues for the user community:

  1. Imprecise Capture: When utilizing Window Capture to grab the projector output (e.g., for sharing in Zoom, Teams, or another software), the user must manually crop the captured window (often by holding the Alt key in OBS) to remove the title bar. This manual cropping is inaccurate, time-consuming, and prone to failing if screen scaling or resolution changes.
  2. Workflow Interference: The border and title bar occupy valuable screen real estate and introduce unnecessary visual clutter, preventing the window from serving as a clean, discreet, self-check preview.


II. Critical Use Case & Current Drawbacks​



Users have a strong, practical need for a borderless, low-latency live preview window on a single monitor setup. The methods currently employed to achieve this are highly inefficient and resource-intensive:

Current Workflow GoalInefficient WorkaroundDrawbacks / User Pain Points
Borderless, Low-Latency PreviewOBS Virtual Camera + External Player (e.g., PotPlayer, MPV) is used to display the virtual camera feed.1. Resource Waste: This creates a redundant pipeline, introducing double the overhead for encoding, decoding, and rendering the video stream, leading to unnecessary CPU/GPU load. 2. High Complexity: It requires complicated low-latency cache configuration within the external player (like the demuxer-lavf-o=audio_buffer_size setting in MPV) to prevent severe stuttering and lag. 3. Unnecessary Components: Since OBS has already rendered the frame, pushing it out through a virtual device and reading it back in a third-party player is fundamentally inefficient and completely avoidable.


III. Proposed Solution​



We propose adding an optional configuration within the existing Windowed Projector feature to allow users to disable the standard OS window frame.



Suggested Implementation Details:​



  1. Right-Click Toggle: Add an option when right-clicking an active Windowed Projector: "Toggle Borderless Mode".
  2. Global Setting: Add a checkbox within Settings > General > Projectors (or equivalent menu) to set a global preference: "$\square$ Launch Windowed Projectors in Borderless Mode by default."
  3. Technical Approach: The borderless mode should change the underlying Windows API style (e.g., removing WS_CAPTION and similar styles, potentially switching to WS_POPUP) to eliminate OS decorations while retaining the windowed functionality.


IV. Benefits and Value Proposition​



Implementing this feature offers high value with relatively low implementation complexity:

  1. Eliminates Redundant Overhead: It removes the need for the inefficient "Virtual Camera + External Player" workaround, conserving system resources for the user's primary streaming or recording tasks.
  2. Guarantees Capture Accuracy: It enables perfectly accurate, pixel-for-pixel capture of the projector output using Window Capture, without the risk of accidentally including or unevenly cropping the OS title bar.
  3. Enhances Single-Monitor Productivity: It delivers a clean, modern, PiP-like preview experience, a feature often requested by the community and offered by some competing applications.
 
I hope this will get some traction. Microsoft sets a default CPU affinity to the devices and allows the driver to choose what it needs to do. In most cases, the driver has no idea about the types of hardware its really using. I found that the current game capture methods cannot keep up with the GPU when I gave my GPU a new CPU affinity policy. That fixed OBS's frame pacing issues when I enable HAGS. I was able to play Cyberpunk with full raytracing enabled without any jitter or hesitation.

Cyberpunk with full raytracing could only be captured at full speed with the Game Capture, which is a bit closer to what is being proposed here....for example. The desktop capture, windowed capture, and virtual cameras could not keep up with the GPU in realtime. In retrospect, the Desktop Capture affects the games being played as well, even after changing the CPU affinity policy, so the OBS Virtual Camera and disabling some old Windows 8 and 10 moderation behavior improved things. I'm highly in favor of what is being proposed here.
 
Back
Top