Question / Help Changing CPU preset doesn't seem to do anything

gnihton

New Member
Hey, I'm one of the poor sods that doesn't have the upload speeds to stream regularly, I do, however have a decent CPU (3770K), so I figured I could just change the CPU preset to compensate.

In my initial attempt to min-max (so I could find the upper bound of what my CPU could handle) I went straight to the Slow preset.

This has not only not visibly increased the quality from fast/veryfast, it has also not increased my CPU usage significantly, so I'm convinced that it is actually not working as intended since people on this forum seem to think that having a CPU preset of high would melt even the ridiculous 12 core Intel X processors, which my CPU has absolutely nothing on.

Am I right/wrong, and is there a fix? Or perhaps I'm just misunderstanding or doing something stupid?

Thanks in advance.

Code:
09:30:39: Open Broadcaster Software v0.522b - 64bit ( ^ω^)
09:30:39: -------------------------------
09:30:39: CPU Name: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
09:30:39: CPU Speed: 3510MHz
09:30:39: Physical Memory:  16328MB Total, 12047MB Free
09:30:39: stepping id: 9, model 10, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
09:30:39: monitor 1: pos={0, 0}, size={1920, 1080}
09:30:39: Windows Version: 6.1 Build 7601 S
09:30:39: Aero is Disabled
09:30:39: -------------------------------
09:30:39: OBS Modules:
09:30:39: Base Address     Module
09:30:39: 000000003F7B0000 OBS.exe
09:30:39: 00000000E5890000 OBSApi.dll
09:30:39: 00000000F6710000 DShowPlugin.dll
09:30:39: 00000000F66E0000 GraphicsCapture.dll
09:30:39: 00000000F66C0000 NoiseGate.dll
09:30:39: ------------------------------------------
09:30:39: Adapter 1
09:30:39:   Video Adapter: AMD Radeon HD 7900 Series
09:30:39:   Video Adapter Dedicated Video Memory: 3194155008
09:30:39:   Video Adapter Shared System Memory: 3997384704
09:30:40: =====Stream Start: 2013-06-19, 09:30:40===============================================
09:30:40:   Multithreaded optimizations: On
09:30:40:   Base resolution: 1920x1080
09:30:40:   Output resolution: 1280x720
09:30:40: ------------------------------------------
09:30:40: Loading up D3D10...
09:30:40: Playback device Default
09:30:40: ------------------------------------------
09:30:40: Using desktop audio input: Speakers (Realtek High Definition Audio)
09:30:40: ------------------------------------------
09:30:40: Using auxilary audio input: Microphone (4- Razer Megalodon)
09:30:40: ------------------------------------------
09:30:40: Audio Encoding: AAC
09:30:40:     bitrate: 80
09:30:40: Using Monitor Capture
09:30:40: ------------------------------------------
09:30:40: Video Encoding: x264
09:30:40:     fps: 20
09:30:40:     width: 1280, height: 720
09:30:40:     preset: slow
09:30:40:     CBR: yes
09:30:40:     CFR: no
09:30:40:     max bitrate: 650
09:30:40: ------------------------------------------
09:30:40: Syncing audio to video time (WARNING: you should not be doing this if you are just having webcam desync, that's a separate issue)
09:30:44: Using RTMP service: Twitch / Justin.tv
09:30:44:   Server selection: rtmp://live-lhr.justin.tv/app
09:30:45: SO_SNDBUF was at 64512
09:30:45: SO_SNDBUF is now 65536
09:34:46: Total frames rendered: 4932, number of frames that lagged: 1 (0.02%) (it's okay for some frames to lag)
09:34:46: RTMPPublisher::SocketLoop: Aborting due to bStopping
09:34:46: Number of times waited to send: 0, Waited for a total of 0 bytes
09:34:46: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
09:34:47: =====Stream End: 2013-06-19, 09:34:47=================================================
09:55:45: =====Stream Start: 2013-06-19, 09:55:45===============================================
09:55:45:   Multithreaded optimizations: On
09:55:45:   Base resolution: 1920x1080
09:55:45:   Output resolution: 1280x720
09:55:45: ------------------------------------------
09:55:45: Loading up D3D10...
09:55:45: Playback device Default
09:55:45: ------------------------------------------
09:55:45: Using desktop audio input: Speakers (Realtek High Definition Audio)
09:55:45: ------------------------------------------
09:55:45: Using auxilary audio input: Microphone (4- Razer Megalodon)
09:55:45: ------------------------------------------
09:55:45: Audio Encoding: AAC
09:55:45:     bitrate: 48
09:55:45: Using Monitor Capture
09:55:45: ------------------------------------------
09:55:45: Video Encoding: x264
09:55:45:     fps: 20
09:55:45:     width: 1280, height: 720
09:55:45:     preset: slow
09:55:45:     CBR: yes
09:55:45:     CFR: no
09:55:45:     max bitrate: 650
09:55:45: ------------------------------------------
09:55:45: Syncing audio to video time (WARNING: you should not be doing this if you are just having webcam desync, that's a separate issue)
09:55:59: Total frames rendered: 273, number of frames that lagged: 0 (0.00%) (it's okay for some frames to lag)
09:55:59: =====Stream End: 2013-06-19, 09:55:59=================================================
09:57:41: =====Stream Start: 2013-06-19, 09:57:41===============================================
09:57:41:   Multithreaded optimizations: On
09:57:41:   Base resolution: 1920x1080
09:57:41:   Output resolution: 1280x720
09:57:41: ------------------------------------------
09:57:41: Loading up D3D10...
09:57:42: Playback device Default
09:57:42: ------------------------------------------
09:57:42: Using desktop audio input: Speakers (Realtek High Definition Audio)
09:57:42: ------------------------------------------
09:57:42: Using auxilary audio input: Microphone (4- Razer Megalodon)
09:57:42: ------------------------------------------
09:57:42: Audio Encoding: AAC
09:57:42:     bitrate: 48
09:57:42: Using Monitor Capture
09:57:42: ------------------------------------------
09:57:42: Video Encoding: x264
09:57:42:     fps: 20
09:57:42:     width: 1280, height: 720
09:57:42:     preset: slow
09:57:42:     CBR: yes
09:57:42:     CFR: no
09:57:42:     max bitrate: 650
09:57:42: ------------------------------------------
09:57:42: Syncing audio to video time (WARNING: you should not be doing this if you are just having webcam desync, that's a separate issue)
09:57:46: Using RTMP service: Twitch / Justin.tv
09:57:46:   Server selection: rtmp://live-lhr.justin.tv/app
09:57:47: SO_SNDBUF was at 64512
09:57:47: SO_SNDBUF is now 65536
10:02:43: Total frames rendered: 6021, number of frames that lagged: 2 (0.03%) (it's okay for some frames to lag)
10:02:43: RTMPPublisher::SocketLoop: Aborting due to bStopping
10:02:43: Number of times waited to send: 0, Waited for a total of 0 bytes
10:02:43: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
10:02:43: =====Stream End: 2013-06-19, 10:02:43=================================================
10:04:02: =====Stream Start: 2013-06-19, 10:04:02===============================================
10:04:02:   Multithreaded optimizations: On
10:04:02:   Base resolution: 1920x1080
10:04:02:   Output resolution: 1280x720
10:04:02: ------------------------------------------
10:04:02: Loading up D3D10...
10:04:02: Playback device Default
10:04:02: ------------------------------------------
10:04:02: Using desktop audio input: Speakers (Realtek High Definition Audio)
10:04:02: ------------------------------------------
10:04:02: Using auxilary audio input: Microphone (4- Razer Megalodon)
10:04:02: ------------------------------------------
10:04:02: Audio Encoding: AAC
10:04:02:     bitrate: 48
10:04:02: Using graphics capture
10:04:03: ------------------------------------------
10:04:03: Video Encoding: x264
10:04:03:     fps: 20
10:04:03:     width: 1280, height: 720
10:04:03:     preset: slow
10:04:03:     CBR: yes
10:04:03:     CFR: no
10:04:03:     max bitrate: 650
10:04:03: ------------------------------------------
10:04:03: Syncing audio to video time (WARNING: you should not be doing this if you are just having webcam desync, that's a separate issue)
10:04:03: SharedTexCapture hooked
10:04:05: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
10:04:05:   New Scene
10:04:05: Using Monitor Capture
10:04:06: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
10:04:06:   New Scene
10:04:06: Using graphics capture
10:04:06: SharedTexCapture hooked
10:04:08: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
10:04:08:   New Scene
10:04:09: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
10:04:09:   New Scene
10:04:09: Using graphics capture
10:04:09: SharedTexCapture hooked
10:07:06: Total frames rendered: 3653, number of frames that lagged: 0 (0.00%) (it's okay for some frames to lag)
10:07:06: =====Stream End: 2013-06-19, 10:07:06=================================================
10:07:08: =====Stream Start: 2013-06-19, 10:07:08===============================================
10:07:08:   Multithreaded optimizations: On
10:07:08:   Base resolution: 1920x1080
10:07:08:   Output resolution: 1280x720
10:07:08: ------------------------------------------
10:07:08: Loading up D3D10...
10:07:08: Playback device Default
10:07:08: ------------------------------------------
10:07:08: Using desktop audio input: Speakers (Realtek High Definition Audio)
10:07:08: ------------------------------------------
10:07:08: Using auxilary audio input: Microphone (4- Razer Megalodon)
10:07:08: ------------------------------------------
10:07:08: Audio Encoding: AAC
10:07:08:     bitrate: 48
10:07:08: Using graphics capture
10:07:08: ------------------------------------------
10:07:08: Video Encoding: x264
10:07:08:     fps: 20
10:07:08:     width: 1280, height: 720
10:07:08:     preset: slow
10:07:08:     CBR: yes
10:07:08:     CFR: no
10:07:08:     max bitrate: 650
10:07:08: ------------------------------------------
10:07:08: Syncing audio to video time (WARNING: you should not be doing this if you are just having webcam desync, that's a separate issue)
10:07:08: SharedTexCapture hooked
10:07:12: Using RTMP service: Twitch / Justin.tv
10:07:12:   Server selection: rtmp://live-lhr.justin.tv/app
10:07:13: SO_SNDBUF was at 64512
10:07:13: SO_SNDBUF is now 65536
10:10:29: Total frames rendered: 4029, number of frames that lagged: 1 (0.02%) (it's okay for some frames to lag)
10:10:29: RTMPPublisher::SocketLoop: Aborting due to bStopping
10:10:29: Number of times waited to send: 0, Waited for a total of 0 bytes
10:10:29: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
10:10:30: =====Stream End: 2013-06-19, 10:10:30=================================================
11:14:41: 
11:14:41: Profiler results:
11:14:41: 
11:14:41: ==============================================================
11:14:41: frame - [100%] [avg time: 7.68 ms] [avg calls per frame: 1] [children: 88.8%] [unaccounted: 11.2%]
11:14:41: | scene->Preprocess - [70.7%] [avg time: 5.43 ms] [avg calls per frame: 1]
11:14:41: | video encoding and uploading - [18.1%] [avg time: 1.393 ms] [avg calls per frame: 1] [children: 18%] [unaccounted: 0.169%]
11:14:41: | | CopyResource - [0.104%] [avg time: 0.008 ms] [avg calls per frame: 0]
11:14:41: | | conversion to 4:2:0 - [0.0391%] [avg time: 0.003 ms] [avg calls per frame: 0]
11:14:41: | | call to encoder - [17.5%] [avg time: 1.346 ms] [avg calls per frame: 0]
11:14:41: | | sending stuff out - [0.299%] [avg time: 0.023 ms] [avg calls per frame: 0]
11:14:41: ==============================================================
11:14:41:
 

hilalpro

Member
What game are you trying to stream? also post a log file if possible.. viewtopic.php?f=5&t=97

While the preset helps with preserving specific aspects of the visual quality it does not really compensate for the bitrate in a streaming scenario, think of the bitrate as horse power and the preset as traction once you reach a certain speed all that matters after that is power it works exactly the same with the encoder once frames start looking too different it becomes harder for it to reference previous frames which is bad for compressing at a very limited bitrate.
 

gnihton

New Member
There's absolutely no way to compensate for bit rate?

Looks like I may just have to wait the years it takes for the Infinity rollout. England is generally so far behind for internet speeds it's unreal.

The only remaining question is why does the Slow preset not destroy my CPU.
 

gnihton

New Member
Xianahru said:
Probably because you didnt stream a game yet and only your desktop, which isnt really demanding at all.

I was streaming a game in borderless mode, which is more demanding I believe.

But yeah, I'm streaming a game on Slow preset with a CPU that is far below what apparently is recommended, and it only cut my framerate something like 30%. This is why I'm suspicious.

Edit: The '30%' being from 150-400 down to 90-250

Tried the same settings at a higher bitrate only outputting to a file, and the CPU consumption did indeed go up. I guess the bitrate was bottlenecking the bottleneck.
 

Kharay

Member
D4V3Z02 said:
Prolly gonna go back to xsplit.
Remarks like those will neither inspire people to help you nor do they really add anything useful to the conversation.

On-topic: The presets most assuredly do something; however, what some of you probably are forgetting is that no matter what, streaming is a 1-pass encode and consequently, there simply is a limit to the level of quality and compression that can be accomplished. However, if you do know what you're actually doing, the limit on this quality is actually fairly high. Even on Veryfast.

Furthermore, given the fact we're talking about streaming here, bitrate really is the single biggest defining factor at higher resolutions. For low resolutions and low bitrates a lot of improvement can be gained from tweaking x264 but at higher resolutions and bitrates, it all becomes mostly moot, I have found from experimenting a lot.
 

D4V3Z02

New Member
Kharay said:
D4V3Z02 said:
Prolly gonna go back to xsplit.
Remarks like those will neither inspire people to help you nor do they really add anything useful to the conversation.

On-topic: The presets most assuredly do something; however, what some of you probably are forgetting is that no matter what, streaming is a 1-pass encode and consequently, there simply is a limit to the level of quality and compression that can be accomplished. However, if you do know what you're actually doing, the limit on this quality is actually fairly high. Even on Veryfast.

Furthermore, given the fact we're talking about streaming here, bitrate really is the single biggest defining factor at higher resolutions. For low resolutions and low bitrates a lot of improvement can be gained from tweaking x264 but at higher resolutions and bitrates, it all becomes mostly moot, I have found from experimenting a lot.


I agree with what you said, but wierdly enough streaming on slower does nearly nothing for me at 1152*720 on OBS and has a complete other result than on xsplit. Because there it allows me to give me decent quality with 750 - 850 bitrate upload on the preset slow. I am obviously here because I want to use obs, I just dont find what I set up wrong and why OBS does that.
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
The preset is working in 0.552 as far as I can tell. I selected "slow" and my CPU usage went from approximately 15% to 70%, indicating to me that the preset was in fact, working. I'm not entirely sure what you're expecting out of the preset -- it isn't "just some quality adjustment", the amount of quality you get out of it has major diminishing returns -- I mean you can only push so much data with so few bits.

I don't do anything "special" with the x264 code. It's the bare x264 library. It's the same god forsaken library the other application uses.
 

Krazy

Town drunk
I suspect it may be impacting your CPU a lot less since you are only encoding at 20fps. Crank that up to 30, 48, 60 and compare the CPU usage between veryfast and slow at those framerates.
 

NOMUSICHERE

New Member
Just want to share my experience. My stream pc is i5 4th gen, because of 5/5 wifi internet connection I am able to stream at 2100 Kbps 720p 30 fps and I see very nice difference between superfast and medium preset which this computer can handle. I am also wondering, what kind of hardware can handle "slower" preset in 720p, 1080p. Anybody tested?
 

Krazy

Town drunk
Why on earth did you bump a year old thread? Anyway, slower preset is absolutely useless for livestreaming, even if you are using a 2PC setup. Stuff below medium isn't really suitable for real time encoding, the CPU requirements are just too high.
 

NOMUSICHERE

New Member
Sorry Krazy, it was just first pick on google... Didnt watch date of the thread. And when I try "slower" preset in obs it just looks so amazing I cannt resist to try dig something out. As I understand it correctly, i5s, i7s etc. have x264 hardware codec. Does overclocking processor affects this encoding too?
 

Krazy

Town drunk
They don't have hardware x264, they have QuickSync. It's an entirely different encoder that operates with it's own settings and encoding methods. It's a dedicated piece of the CPU chip, so overclocking has no effect on it. It also has worse picture quality for the same amount of bitrate as x264 encoding, generally.

And really, if you are using appropriate bitrates for your resolution/FPS/type of game, there's not going to be that much noticeable difference between veryfast and slower. CPU preset is about the last thing that should be adjusted as resolution/FPS/bitrate have way more impact on picture quality.
 
Top