OBS has a special source type called Window Capture, but if you’re trying to use it to record a tutorial or lesson it doesn’t always work well because Window Capture doesn’t capture any additional popups, windows, or menus. It literally will only capture the one window you specify whether it is currently visible or not.
This works fine for most windowed games or other basic windows, and can actually be really handy if you don’t have multiple monitors but want to record a window even if it is not currently visible. But if you’re trying to record some sort of software training or tutorial, the window capture source falls short. Watch the video, or continue below:
With Window Capture, if you open up a properties panel or whatever, OBS won’t record it. And using the Display Capture source type to record full screen isn’t always ideal because all the icons end up super small when people watch the video on their phone or tablet.
What you may have tried in the past is using the Display Capture source to capture your monitor, and cropped it down to the window by holding the
ALT key, then scaling it up to fit the canvas. But it’s such a pain to try and get the crop exactly perfect and the window ratio perfect, so you end up with either black bars around the screen or you’ve cut off part of the window, or you have part of your desktop showing.
How do you capture all popups and menus with OBS Window Capture?
Don’t use the Window Capture source type! Use Display Capture, but instead of trying to manually crop and scale everything, automate it! Let me show you how how.
NOTE: Now keep in mind, you might have a different resolution monitor or scale factor (I have a 4k monitor scaled at 200%), and your canvas resolution settings might be different than mine. But for this video, I’m going to start out by having my base canvas resolution match the resolution of my monitor, and I’ll assume we’re going to be exporting to 1920×1080 for the final video. If you’re doing something different, adjust accordingly.
How to accurately resize a window
You need to accurately resize and position the program window to a 16:9 ratio (or whatever output ratio you’ll be recording in) so that it will fill the entire canvas perfectly when it’s scaled, without leaving any black bars on the canvas or cropping out any of the window.
The secret to doing that is to use a little free utility called sizer. (It’s for PC, I’m not sure if there’s a Mac or linux equivalent.) With sizer, you can right-click the corner of any window and choose a resolution from the menu, and it will resize the window for you. If you have a 4k monitor that’s scaled to 200% like me, I recommend setting up a custom size of 2560×1440.
Follow these steps to create a custom window configuration in sizer:
- With sizer installed, right-click the bottom corner of the window and select Configure Sizer.
- Click Add Size.
- Set width to 2560 and height to 1440.
- Set “Move to” to Top Left.
Now, when you want to record a window, just right-click the bottom corner of the window and select the custom size you created. Then use a custom configured Display Capture source to record it.
Accurately crop a window with OBS Display Capture Source
In OBS, add a new Display Capture source if you haven’t done so already. You can scale and crop a source manually, but it’s really hard to do it accurately. Instead, let’s use the transform properties to type in accurate transformations. (Don’t worry, you only need to do this once. Next time you open OBS these settings will not need to be changed.)
NOTE: If you’re lazy, you can just go to Settings > Video > and set your base (canvas) resolution to match the size of your custom window size. Since we set the window to position itself at the top left of the screen, the window will be perfectly framed in the canvas, and the extra desktop area will overflow off the canvas, but if you want the source window to be correctly cropped, continue reading.
- Right-click the display capture source and select Transform > Edit Transform.
- Click Reset to bring the source back to its original settings (if needed).
- Subtract the window size from your monitor size to figure out how many pixels you need to crop from the right and bottom of the window. (ie. Width: 3840 – 2560 = 1280. Height: 2160 – 1440 = 720. )
- Enter the width in the Crop:Right field and the height in the Crop:Bottom field.
- Close the Transform window.
- Open Settings > Video. Set Base (Canvas) Resolution to match the window resolution; 2560×1440 in my case. (If you don’t want to change your base (canvas) resolution, you can just right-click the source > Transform > Fit to Screen.)
Now you should have a display capture source that is cropped perfectly to a window and is fit perfectly on the canvas. When you stream or record, OBS will record everything just as it’s shown on that part of the screen. You’ll see all windows, menus, popups, etc.
Next time you need to record, you don’t have to worry about aligning anything, just use sizer to resize and position any window and you’ll be good to go for recording in OBS.
The only real drawback to this is if you have a drop-down menu or context menu that extends beyond the edge of the window, it won’t be captured.