OBS outputs different results depending on where encoding settings are placed

GinGear

New Member
A friend of mine noticed an issue with OBS; it appears it doesn't properly use recording settings?

See the above log; setting the streaming and recording encoding settings identically gives wildly different results when setting the recordings to "Use stream settings".

When enabled, you get a very compressed video:

And when disabled, and you set the encoding settings identically, you get a massive video that's way less compressed:


And the log file:
 
The recording settings differ vastly. If you look into the logfile, you will see these settings for the "very compressed" video:
Code:
05:27:10.758: [texture-amf-h264: 'advanced_video_stream'] settings:
05:27:10.758:     rate_control: CBR
05:27:10.758:     bitrate:      6000
05:27:10.758:     cqp:          20
05:27:10.758:     keyint:       60
05:27:10.758:     preset:       quality
05:27:10.758:     profile:      high
05:27:10.758:     level:        4
05:27:10.758:     b-frames:     2
05:27:10.758:     width:        1920
05:27:10.758:     height:       1080
05:27:10.758:     pre-analysis: true
05:27:10.758:     params:       (none)

And these settings for the "less compressed" video:
Code:
05:27:51.638: [texture-amf-h264: 'advanced_video_recording'] settings:
05:27:51.638:     rate_control: HQCBR
05:27:51.638:     bitrate:      6000
05:27:51.638:     cqp:          20
05:27:51.638:     keyint:       250
05:27:51.638:     preset:       quality
05:27:51.638:     profile:      high
05:27:51.638:     level:        4
05:27:51.638:     b-frames:     2
05:27:51.638:     width:        1920
05:27:51.638:     height:       1080
05:27:51.638:     pre-analysis: true
05:27:51.638:     params:       (none)

Once crucial difference between both is the keyframe interval (keyint). It's 60 (2 seconds for your 30 fps video) for the compressed video and 250 (8.32 seconds for your 30 fps) for the less compressed video. Keyframes are huge and consume a large part of the bandwidth constraints of the 6000 kbit/s bitrate you force.
The more keyframes you use, the less bandwidth is available for all the other frames, so the more keyframes you use the more all the other frames have to be compressed - or detail removed.

And it also seems despite the name this "HQCBR" rate control doesn't respect any "constant bitrate" constraint, so it'ts not really CBR 6000 but more something like CQP 20, which is vastly improved quality in comparison to any real bitrate 6000 video.
This video is 146.7 MB and 11 seconds, this is actually bitrate 107345. This has nothing to do with any bitrate 6000 constraint video.

The other video is 8.7 MB and 11 seconds, which is bitrate 6327, which is close to what you set as 6000.
 
Last edited:
Back
Top