Question / Help Which Resolution Scaler should I use?

Pat Simmons

New Member
There's two resolution scalers: one in "Output" and one in "Video" which one should I use to improve performance? How are they different and what do they each do?
 
video scaler - works before data is passed to encoder. if you scale here from 1080p to 720p encoder only works on 720p source having less data to process - its gpu scaler so its cpu cheap
output scaler - works after encoding, so you can encode 1:1 1080p from video tab, and rescale after to 720p. imho you can get a bit better quality this way but requires more cpu as you encode 1080p and rescale on cpu also
 

Gol D. Ace

Member
output scaler - works after encoding
but requires more cpu as you encode 1080p

The scaler works on the CPU (AFAIK) but it will not pass the original resolution to the encoder.
It will scale before encoding just like the shader based scalers.

The log confirms this
Code:
20:58:09.882: video settings reset:
20:58:09.882:    base resolution:  1280x720
20:58:09.882:    output resolution: 1280x720
20:58:09.882:    fps:  60/1
20:58:09.882:    format:  NV12

20:58:36.232: [x264 encoder: 'streaming_h264'] preset: veryfast
20:58:36.232: [x264 encoder: 'streaming_h264'] profile: main
20:58:36.232: [x264 encoder: 'streaming_h264'] settings:
20:58:36.232:    bitrate:  2500
20:58:36.232:    buffer size: 2500
20:58:36.232:    crf:  0 (0 when CBR is enabled)
20:58:36.232:    fps_num:  60
20:58:36.232:    fps_den:  1
20:58:36.232:    width:  852
20:58:36.232:    height:  480
20:58:36.232:    keyint:  120
20:58:36.232:    vfr:  off
20:58:36.232:    cbr:  on
 
Well maybe im wrong but for me there is no info here when scaling takes place, you feed original 720p to encoder and it outputs 480p but when scaling happened is not clear from this log
What I wrote to Pat is what I have seen on this forums some time ago and it was confirmed by 1 or 2 posts. Also a slightly better final quality when video tab is set to 1:1 would suggest that output tab scaler works after encoding
 

Gol D. Ace

Member
The encoded data goes into the stream or file so you can't really scale the frames after they have being encoded.
You need to scale them before encoding.
 

Gol D. Ace

Member
GPU vs CPU and quality is also a factor.
The different shader based scalers look different.

Dunno what type of scaling the rescale output option is using.
 

sam686

Member
One problem with FFmpeg and OBS-Studio (output setting), is OBS-Studio is hard coded to use a poor quality fast_bilinear with no option to change scaling to regular bilinear, bicubic or lanczos, for users of fast CPU and slow GPU.

Scaling in video is done in GPU as RGB, before color conversion.
FFmpeg scaling (in output) is done in CPU, but may be worst quality in OBS-Studio as a result of scaling after color conversion to a reduced color resolution of NV12 or i420. Up-scaling in output will show this blurry color problem, where up-scaling in video have sharper colors. This also affects downscale if scaling by a small difference.
 
Top