Skip to content

Program view displaying wrong resolution with Studio Mode and Output Mode Advance /w different recording and streaming resolutions #12171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
TheSquiddyLink opened this issue May 18, 2025 · 3 comments

Comments

@TheSquiddyLink
Copy link

Operating System Info

Windows 11

Other OS

No response

OBS Studio Version

31.0.3

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/FRTbezQGsJFYu52I

OBS Studio Crash Log URL

No response

Expected Behavior

Program should be a 1440p (Canvas) resolution when transitioned using an API via OBS WebSocket), or when OBS is launched the default scene on the Program View should be 1440p like canvas and Preview.

Current Behavior

Only when the scene is changed without being loaded to the preview, for example when changed with the OBS WebSocket, or when OBS loads, the Program view will be at 1080p, rather than the canvas resolution of 1440p.

Image

This is happening because in OBS I am using two encoders at once with the following settings:

  • Canvas: 2560x1440
  • Output -> Streaming: Rescaled Output (Bilinear) 1920x1080
  • Output -> Recording: Rescale Output (Disabled) 2560x1440

It seems that for some reason if the scene was transitioned to without it being loaded in the preview first, it will use the resolution of the Streaming output.

The services used for the WebSocket are: https://obs-web.niek.tv/ as well as https://macro-deck.app/

Steps to Reproduce

  1. Set Base (Canvas) Resolution to 2560x1440 (Image One)
  2. Set Output mode to Advanced
  3. On Streaming set Rescale Output to Bilinear and 1920x1080 (Image Two)
  4. On Recording set Rescale Output to Disabled and 2560x1440` (Image Three)
  5. Enable Studio Mode
  6. Set up OBS WebSocket connection | Or Transition a visible scene to the program, and select a different scene on the preview
  7. Close OBS
  8. Open OBS
  9. Loaded Scene should now be at the wrong resolution
  10. If using a WebSocket, any scenes changed to will have this issue, however once they are loaded in the preview this issue is resolved

Image One:
Image
Image Two:
Image
Image Three
Image

Anything else we should know?

I understand that this is a pretty weird issue, and most people would not be encountering this problem.
I would be more than happy to provide any videos, screenshots, reports, or other information that might be needed.
If necessary you can contact me in Discord @SquibsLand

@Penwy
Copy link
Contributor

Penwy commented May 18, 2025

with the steps provided I can repro on master (235be8c) from a clean scene collection

@Penwy
Copy link
Contributor

Penwy commented May 26, 2025

Bisect pointed at 1565ca8 (or the next, can't run in between) as the first culprit, somewhat unsurprisingly.

I also confirmed this only happens when a sceneitem's scale_ref is different from the canvas resolution.

@TheSquiddyLink
Copy link
Author

Just found out something in addition to this issue, if you have all of the above steps, but for one of the scenes you have a local video file, and it starts as 'stopped' when the source becomes active, even if you loaded the scene beforehand to the preview the video source will be at the incorrect resolution, but all other elements will be are the proper resolutions. To resolve this first transition from image 1 to the program, then transition back, after doing so the preview will be "paused"

I think that because the video source never plays while on the preview, it wont be loaded to the 1440p resolution. Its possible that the fix regarding 1565ca8 would fix the issue, however if not, my current idea for a fix is just to load the first frame of the video beforehand, since when the video is "stopped" it has 0 for all values in the transform.

Something to note, is that when the video pauses after transitioning from the program to the preview (a different scene was moved to program) the video will be in a state neither paused or stopped. You can see in the last image that it shows the restart button next to the stop button, if the video was paused it would instead be a play button. If stopped the buttons would remain the same, but the video would have 0 for all transforms, and the transitioning issue would occur again.

Here are the steps just in case the above didn't make sense

  1. (Follow all steps in original issue)
  2. Add a video source to the scene (Video used was 1920x1080)
  3. Stop the source if it is not stopped already
  4. Enable loop and Restart playback when source becomes active
  5. Video should display nothing, transforms will confirm this (If you can see a frame of the video, even if paused, push the stop button and then it should go back to no transforms)
  6. Transition to Program
  7. Video should now be at the wrong resolution but still playing
  8. Transition back
  9. Video should now be corrected in preview
  10. Press stop
  11. Transition
  12. The video should once again be at the wrong resolution only if you pushed stop, if you went to a different scene when transitioning it will have no issues

If you all want a video recording of this let me know and I can do that, it is also likely that fixing the original issue might resolve this one, but I wanted to at least inform you all just in case. If you all want me to make a new issue for this I can, since I know that can help with organization. Let me know if you need anything!

Scene in preview mode
Image

Transitioning from the above to program
Image

Transform as in image 1
Image

Transform when fixed (Transitioned off of program)
Image

Player when fixed (Transitioned off of program)
Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants