Details on Transform Dialog Window to create 1808x1920 video from 1050x1680 monitor without blurring.

Rockn-Roll

New Member
I'm trying to use OBS 26.1.1 (64-bit, windows). I'm looking for some details on what the controls are showing and what effect they have when they are changed.

Sans those details I need to create a 1080x1920 screen capture, but my computer monitor is only 1050x1680 and when I play the video using the default settings it's blurry which I believe is due to OBS stretching and changing the aspect ratio. I would like to capture the 1050x1680 window but center it in on background image that is 1080x1920. Sans that I would like to capture a 945/1680 section of the screen and stretch it to 1080x1920 which would at least keep the aspect ratio.
 

FerretBomb

Active Member
You are going to get quite a bit of blur regardless. Unless you're upscaling to a full-integer multiplier (like going from 240p to 480p) interpolation will have to occur, and on an upscale it is never really going to look good.

As 1050x1680 is a 10:16 aspect ratio, you won't be able to go to a 9:16 without some letterboxing or column-cropping.
My recommendation would be to set your Canvas size to 1080x1920, capture the screen at 1050x1680, then use the corner drag handles in the preview to resize it up to fill the canvas... either with letterboxes, or sizing the capture up high enough to fill the height with left-right over-spill past the canvas area.
I'd then advise right-clicking the capture source in the Sources list, going to the Scale Filtering entry, and switching it to Area. You can try the others, but Area is meant to preserve as much detail as possible when upscaling a source, normally for pixel-art or retro games.

Best solution would of course be to get a 1080x1920 monitor and run it at native resolution.
 

koala

Active Member
This kind of stretching (upscaling) will always introduce significant blurring or distorting. Especially if only scaling only a little bit like from 1680->1920. All the original pixels will be smeared over an area of 2 pixels in the upscaled image.

It's not possible to upscale and fit a 1680x1050 video into 1920x1080 with good quality. Either you mess with the aspect ratio, or you mess with the upscaling.

Possible alternatives with better picture quality:
  • get a 1920x1080 monitor (really)
  • depending on your video hardware, it may be possible to use a virtual desktop resolution of 1920x1080 that is downscaled to 1680x1050 by the video driver. It may even be your monitor is able to downscale a 1920x1080 signal internally. This way your desktop will look ugly, but the videos are true and clean 1920x1080.
  • produce a 1280x720 video, and for this set your desktop resolution to 1280x720
  • set a canvas of 1920x1080 in OBS, and insert an unscaled 1680x1050 display capture into the center. Leave the 15 pixels small black bars on top and on the bottom black - nobody will notice them. And put something interesting extra info into the black bars on the left and right. Or put the image not in the center but to the right or to the left and have one large black bar of 250x1080 pixels, where you can better insert additional info, for example a small webcam image of yourself, or some text, or some visuals.
 

Rockn-Roll

New Member
Thanks for your replies. I somehow managed to capture a 945x1680 section of my screen onto a black background that is 1080x1920 with no stretching, upscaling, downscaling, or whatever. I still don't know what the controls are actually doing...I simply just kept clicking on stuff in the Transform dialog window and output settings.

However, there's still some loss of quality even with "Indistiguishable Quality" for the Recording Quality in the Output Settings...specifically in the text that is being captured. I selected Lossless Recording Quality which created an AVI file but when I try to play them I get an error indicating that the CODEC was missing . There are no additional settings when selecting Lossless so I don't know what CODEC it is using, where to get it, or how to change it to a CODEC that I already have. However, I have attached a screenshot of the AVI file header which appears to indicate that the CODEC is hdr|avih8 or just h8 or something like that. I'm hoping that if I can find and install the CODEC I'll be able to load it into my video editing software and transcode it into a 1080x1920 mp4 video. My final result should be a 1080x1920 mp4 video with no loss of quality...or is that asking too much?
 

Attachments

  • AVI Header.png
    AVI Header.png
    17.2 KB · Views: 2

Rockn-Roll

New Member
No...wait...the recording is cutting off the right side of my screen. So, I still need some help recording.

As 1050x1680 is a 10:16 aspect ratio, you won't be able to go to a 9:16 without some letterboxing or column-cropping.

I want letterboxing if by that you mean black bars surrounding my 1050x1680 window. I don't know what you mean by "column-cropping", but if my understanding of letterboxing is correct then don't explain.

My recommendation would be to set your Canvas size to 1080x1920, capture the screen at 1050x1680, then use the corner drag handles in the preview to resize it up to fill the canvas... either with letterboxes, or sizing the capture up high enough to fill the height with left-right over-spill past the canvas area.

I went to Settings and selected 1920x1080 for Base (Canvas) Resolution as shown in the attached screenshot...is that what you meant by "Canvas size"? I don't see a control labeled "Capture Screen Resolution", so what control are you asking me to use to "capture the screen at 1050x1680"? When I click on the red lower right corner handle in the preview and drag larger it cuts off some of the video as you can see in the attached Before and After screenshots.

I'd then advise right-clicking the capture source in the Sources list, going to the Scale Filtering entry, and switching it to Area. You can try the others, but Area is meant to preserve as much detail as possible when upscaling a source, normally for pixel-art or retro games.

Best solution would of course be to get a 1080x1920 monitor and run it at native resolution.

I set the Scale Filtering to Area, but didn't see any difference. I think I will get a 1080x1920 monitor with my COVID stimulus payment because even if I get a lossless recording I will still get some losses by playing it back at 1050x1680.
 

Attachments

  • After.png
    After.png
    79.2 KB · Views: 3
  • Before.png
    Before.png
    56.7 KB · Views: 3
  • Canvas.png
    Canvas.png
    6.6 KB · Views: 2

Rockn-Roll

New Member
  • depending on your video hardware, it may be possible to use a virtual desktop resolution of 1920x1080 that is downscaled to 1680x1050 by the video driver. It may even be your monitor is able to downscale a 1920x1080 signal internally. This way your desktop will look ugly, but the videos are true and clean 1920x1080.
  • produce a 1280x720 video, and for this set your desktop resolution to 1280x720
  • set a canvas of 1920x1080 in OBS, and insert an unscaled 1680x1050 display capture into the center. Leave the 15 pixels small black bars on top and on the bottom black - nobody will notice them. And put something interesting extra info into the black bars on the left and right. Or put the image not in the center but to the right or to the left and have one large black bar of 250x1080 pixels, where you can better insert additional info, for example a small webcam image of yourself, or some text, or some visuals.
It looks like I will need to get a 1080x1920 monitor. I have an nVidia GeForce GTX 970, but I don't see an option to create a "virtual desktop resolution" and my monitor was made before 1080 was available so no can do. I suppose I can set my resolution to 1280x720, but my final video will need to be 1080x1920 which would result in scaling it up which would cause a reduction in quality. I can set the canvas to 1920x1080, but how do I "insert an upscaled 1680x1050 into the center"? And, wouldn't "upscaling" a video cause a reduction in quality? Thanks for the help.
 

Rockn-Roll

New Member
  • set a canvas of 1920x1080 in OBS, and insert an unscaled 1680x1050 display capture into the center. Leave the 15 pixels small black bars on top and on the bottom black - nobody will notice them. And put something interesting extra info into the black bars on the left and right. Or put the image not in the center but to the right or to the left and have one large black bar of 250x1080 pixels, where you can better insert additional info, for example a small webcam image of yourself, or some text, or some visuals.

Wait...by "insert" do you mean record a 1680x1050 video then create a new 1920x1080 video and right click on the preview window and select "Add" and choose Media Source and select the 1680x1050 video file then change the top two controls (Position) in the Transform dialog window to 120 and 30 respectively? Because that works.
 

koala

Active Member
There is a fifth option I forgot:
  • set your desktop resolution in Windows to 1680x945. This reduces your desktop resolution to 16:9 aspect ratio, but it can be upscaled to 1920x1080 without distortion and without black bars, because it is aspect ratio 16:9. However, it makes no sense to upscale the video - you can just create a video with 1680x945 as canvas resolution and let the media player do any upscaling while playing the video.
I don't know why you insist in creating a 1920x1080 video, although your computer isn't able to create this resolution with your current monitor. Instead, just create a video with your current monitor resolution and let the media player do any upscaling while playing the video.
 
Top