Question / Help Difference between Rescale Output and Output Resolution?

storrm

Member
As per the title, whats the difference between these two options? is one less resource intensive than the other? Which is the most efficient method to use i.e. should I Rescale output (Settings/Output) or Output (Scaled) Resolution (Settings/Video).

Thanks.
 

C-Dude

Member
Always use Output resolution whenever possible. It looks better and gives you an option to chose a downscale filter. Rescale output is used if you want to record and stream at different resolutions. Ex. you want to record at 1080p and stream at 720p. You would set your Output resolution to 1080p and rescale output in stream tab to 720p. That's really the only reason you would wan to use rescale output.
 

oXijEx3

New Member
So, will OBS apply the Same filter thats selected in the Video menu section as whats in the Out put menu "Rescale output" option ... Or does it use a different/ bi linear filter, It seems that image quality is better when i rescale the output to 720 P but then that limits the recording resolution.

IE Stream Set to Rescale output to 1280x720, Record set to Native Video 2560X1440 ...
 

oXijEx3

New Member
In addition if i am correct and the Rescale Output doesn't apply the downscale filter option in the Stream menu, it should...
 

koala

Active Member
The "rescale output" option in the recording or streaming menu uses a CPU-based rescaler, while "Output (scaled) Resolution" uses a GPU-based rescaler.

Keep in mind the way frames are handled by OBS. First, you have a canvas. The canvas has the "Base (canvas) Resolution". You place the your sources on the canvas and they are mixed together and filters applied to get a picture. This all takes place on the GPU. The picture buffer of the canvas is kept on the graphics card (GPU). After the picture is composed, it is rescaled on the GPU to the "Output (Scaled) Resolution" and then downloaded (copied) to CPU memory.

From CPU memory, it is fed into the encoder (x264). You can have up to 2 encoders active: one for streaming, one for recording. If you use 2 encoders, the pictures are duplicated: one is fed into the streaming encoder, and the other into the recording encoder.

On each of the encoders, the picture may be rescaled a second time (if you configured the "rescale output").

The compressed frames from the encoders are then fed into the output facility. For streaming, they may be sent via tcp/ip to the rtmp server. For recording, they may be saved to harddisk.
It's possible to use the stream encoder for recording as well to reduce system load, or to exactly record what you stream. If you do this, you lose the possibility to set a different "Rescale Output" resolution for recording, because you have only one encoder running, thus only one possibility to rescale at the encoder-stage.

From that information it's clear which rescaling option you should use:
  • If you produce only one output, rescale using "Output (Scaled) Resolution" only. Or don't rescale at all and set "Base (canvas) Resolution" to your final resolution. What you chose depends on the size of your sources.
  • If you produce two outputs, one streaming and one recording, and you want both look the same with the same resolution, do the same and use the stream encoder for recording.
  • If you produce two outputs, one streaming and one recording, and you want a different resolution for recording than for streaming, or you want a higher quality encoding for recording, configure different encoders for streaming and for recording. Set the "Output (Scaled) Resolution" to the bigger resolution of the two. For the smaller resolution of the two, set "rescale output" option of the encoder to your desired resolution. This way, both encoders produce different resolution with the minimum amount of rescalings.
An example for the most complex scenario: you have a game running at 2560x1440 and want to stream at 1280x720 and record at 1920x1080 at the same time.
Then you set "Base (canvas) Resolution" to 2560x1440 and place your game and additional sources in it. You set "Output (scaled) Resolution" to 1920x1080. You configure the stream encoder with CBR and bitrate of perhaps 5000. You configure the recording encoder with CRF/CQP and a quality of perhaps 18-20. For the stream encoder, you set "rescale output" to 1280x720, and for the recording encoder, you don't rescale output. To not overload your machine with this scenario, it is probably the best to use a hardware encoder (NVENC or Quicksync) for at least one of the encoders, preferable for the recording encoder, because it has the higher load because of the higher resolution and higher data rate.

If you instead keep "Output (scaled) Resolution" at 2560x1440 and "rescale output" the stream encoder to 1280x70 and "rescale output" the recording encoder to 1920x1080, you get lower quality of the recording and much higher resource/CPU utilization, because you transfer double the amount of data from GPU to CPU and you do 2 rescalings on the CPU instead of 1 rescaling on GPU and 1 rescaling on CPU. So don't do that.
 

oXijEx3

New Member
@oXijEx3 ,
Rescale Output
Question about downscaling
What's different between these options?
Which Resolution Scaler should I use?
and some other threads has additional info on the option. In short, they differ and differ a lot.
Thanks for that, Hmm i'm a bit stuck now as to what to do...
I currently record my stream with NVenc @ 25000 @ 2560X1440 on very high and Stream x264 @ 5000 @ 1280X720 on slower, I guess i'll have to go back to my drawing board as to how i want to set up my stream now as it would seem i don't wan't to really rescale using the output option.

I guess it is a trade off though, having High Quality Recording for later video creation or a potentially better looking stream. It is a shame that you can not configure the rescaling options as i have a TR1950X encoding the stream so i have plenty of overhead available for better scaling quality options.

edit
I use a GTX1060 to encode NVENC 1440P recordings...
 

oXijEx3

New Member
I use a Elgato 4k60 in my Streaming PC to capture so it is getting a cloned display input of 2560X1440 @ 144Hz and i don't want to use the gaming rig to record at 2560 as with my system it introduces micro stuttering/input lag
 

oXijEx3

New Member
Sorry about the three posts, but i guess im now looking at Streaming and recording in 1080P so i can use a better scaling filter... Cause tbh 1440P - 720P using the CPU bilinear filter is shit compared with the Lanczos Filter
 
Top