Question / Help OBS is Only Using 10% of My CPU Needs at Least 60% or More

Legato2400

New Member
I have the AMD 1600x and I would love for OBS to use my powerful CPU to its max or to 60%. As it stands right now I'm trying to stream at 1920x1080p at 60fps and OBS is only using 10% of my cpu and I'm getting micro stutters because its barely using my CPU. I have been using the 64bit version of OBS studio and would love some help, maybe there is a custom code to getting this working in the x264 option?
 
maybe you using NVENC, because on my Ryzen 1700 with 1080p60fps settings i'm using around 25-30% of my CPU with very fast preset already. Also i noticed that after 30% of cpu usage my fps in games takes a heavy drops, so you probably don't want to go higher than that unless it's dedicated streaming PC
 
maybe you using NVENC, because on my Ryzen 1700 with 1080p60fps settings i'm using around 25-30% of my CPU with very fast preset already. Also i noticed that after 30% of cpu usage my fps in games takes a heavy drops, so you probably don't want to go higher than that unless it's dedicated streaming PC

The 25-30% is like the total usage of the cpu when I'm only playing the game it's like 16%. The problem is that OBS is capping it self very hard to where it is only using 5% of each thread. If we had an option to change the cap to whatever percentage we want you could easily stream at Medium preset or lower.
 
OBS does not cap itself, it uses as much cpu as it needs to.
You also didn't post a log.
If that was true then it would have no problem encoding x264 and using my cpu to the maximun like any other encoding software.

Also I did not post a log because this is not a bug, I'm just pointing out wasted potential in the software.
 
Again, there is no wasted potential in the software, OBS uses x264 to encode which has proven itself over many years. If there is something holding back the encoding it's cause is outside of OBS.
But please post a log, there can be other causes of stuttering.
 
09:40:05.039: CPU Name: AMD Ryzen 5 1600X Six-Core Processor
09:40:05.039: CPU Speed: 3586MHz
09:40:05.039: Physical Cores: 6, Logical Cores: 12
09:40:05.039: Physical Memory: 16312MB Total, 12672MB Free
09:40:05.039: Windows Version: 10.0 Build 16299 (revision: 371; 64-bit)
09:40:05.039: Running as administrator: false
09:40:05.039: Aero is Enabled (Aero is always on for windows 8 and above)
09:40:05.039: Windows 10 Gaming Features:
09:40:05.039: Game DVR: On
09:40:05.040: Sec. Software Status:
09:40:05.041: Windows Defender Antivirus: enabled (AV)
09:40:05.041: Windows Firewall: enabled (FW)
09:40:05.041: Windows Defender Antivirus: enabled (ASW)
09:40:05.042: Portable mode: false
09:40:05.143: OBS 21.1.0 (64bit, windows)
09:40:05.143: ---------------------------------
09:40:05.144: ---------------------------------
09:40:05.144: audio settings reset:
09:40:05.144: samples per sec: 44100
09:40:05.144: speakers: 2
09:40:05.145: ---------------------------------
09:40:05.145: Initializing D3D11...
09:40:05.145: Available Video Adapters:
09:40:05.146: Adapter 1: NVIDIA GeForce GTX TITAN Black
09:40:05.146: Dedicated VRAM: 2097348608
09:40:05.146: Shared VRAM: 4257374208
09:40:05.146: output 1: pos={0, 0}, size={1920, 1200}, attached=true
09:40:05.148: Loading up D3D11 on adapter NVIDIA GeForce GTX TITAN Black (0)
09:40:05.188: D3D11 loaded successfully, feature level used: 45056
09:40:05.817: ---------------------------------
09:40:05.817: video settings reset:
09:40:05.817: base resolution: 1920x1080
09:40:05.817: output resolution: 1920x1080
09:40:05.817: downscale filter: Lanczos
09:40:05.817: fps: 58/1
09:40:05.817: format: NV12
09:40:05.817: YUV mode: 601/Partial
09:40:05.820: Audio monitoring device:
09:40:05.820: name: Default
09:40:05.820: id: default
09:40:05.821: ---------------------------------
09:40:05.822: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/chrome_elf.dll' not found, loading of module failed
09:40:05.837: [CoreAudio encoder]: Adding CoreAudio AAC encoder
09:40:05.909: [AMF] AMF Test failed due to one or more errors.
09:40:05.909: Failed to initialize module 'enc-amf.dll'
09:40:05.925: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libcef.dll' not found, loading of module failed
09:40:05.926: LoadLibrary failed for '../../obs-plugins/64bit/libEGL.dll': The specified procedure could not be found.
09:40:05.926: (127)
09:40:05.926: Module '../../obs-plugins/64bit/libEGL.dll' not loaded
09:40:05.926: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libGLESv2.dll' not found, loading of module failed
09:40:05.930: [browser_source: 'Version: 1.31.0']
09:40:05.935: NVENC supported
09:40:05.964: [obs-ndi] hello ! (version 4.3.0)
09:40:05.964: [obs-ndi] Trying 'C:\Program Files\NewTek\NewTek NDI Redist\v3'
09:40:05.964: [obs-ndi] Can't find the NDI library
09:40:12.288: Failed to initialize module 'obs-ndi.dll'
09:40:12.339: Couldn't find VLC installation, VLC video source disabled
09:40:12.346: No blackmagic support
09:40:12.354: ---------------------------------
09:40:12.354: Loaded Modules:
09:40:12.354: win-wasapi.dll
09:40:12.354: win-mf.dll
09:40:12.354: win-dshow.dll
09:40:12.354: win-decklink.dll
09:40:12.354: win-capture.dll
09:40:12.354: vlc-video.dll
09:40:12.354: text-freetype2.dll
09:40:12.354: rtmp-services.dll
09:40:12.354: obs-x264.dll
09:40:12.354: obs-vst.dll
09:40:12.354: obs-transitions.dll
09:40:12.354: obs-text.dll
09:40:12.354: obs-qsv11.dll
09:40:12.354: obs-outputs.dll
09:40:12.354: obs-ndi.dll
09:40:12.354: obs-filters.dll
09:40:12.354: obs-ffmpeg.dll
09:40:12.354: obs-browser.dll
09:40:12.354: image-source.dll
09:40:12.354: frontend-tools.dll
09:40:12.354: enc-amf.dll
09:40:12.354: coreaudio-encoder.dll
09:40:12.354: ---------------------------------
09:40:12.354: ==== Startup complete ===============================================
09:40:12.371: All scene data cleared
09:40:12.371: ------------------------------------------------
09:40:12.449: WASAPI: Device 'Speakers (Logitech G933 Gaming Headset)' initialized
09:40:12.461: WASAPI: Device 'Microphone (Logitech G933 Gaming Headset)' initialized
09:40:12.464: Switched to scene 'Scene'
09:40:12.464: ------------------------------------------------
09:40:12.464: Loaded scenes:
09:40:12.464: - scene 'Scene':
09:40:12.464: - source: 'Display Capture' (monitor_capture)
09:40:12.464: ------------------------------------------------
09:40:12.507: adding 46 milliseconds of audio buffering, total audio buffering is now 46 milliseconds
09:40:46.529: ---------------------------------
09:40:46.529: video settings reset:
09:40:46.529: base resolution: 1920x1080
09:40:46.529: output resolution: 1920x1080
09:40:46.529: downscale filter: Lanczos
09:40:46.529: fps: 57/1
09:40:46.529: format: NV12
09:40:46.529: YUV mode: 601/Partial
09:40:46.543: Settings changed (outputs, video)
09:40:46.543: ------------------------------------------------
09:41:11.938: ---------------------------------
09:41:11.938: video settings reset:
09:41:11.938: base resolution: 1920x1080
09:41:11.938: output resolution: 1920x1080
09:41:11.938: downscale filter: Bicubic
09:41:11.938: fps: 57/1
09:41:11.938: format: NV12
09:41:11.938: YUV mode: 601/Partial
09:41:11.952: Settings changed (video)
09:41:11.952: ------------------------------------------------
09:41:50.918: adding 23 milliseconds of audio buffering, total audio buffering is now 69 milliseconds
09:44:01.073: Starting stream due to hotkey
09:44:01.073: ---------------------------------
09:44:01.073: [x264 encoder: 'streaming_h264'] preset: faster
09:44:01.073: [x264 encoder: 'streaming_h264'] profile: high
09:44:01.073: [x264 encoder: 'streaming_h264'] settings:
09:44:01.073: rate_control: CBR
09:44:01.073: bitrate: 5257
09:44:01.073: buffer size: 5257
09:44:01.073: crf: 0
09:44:01.073: fps_num: 57
09:44:01.073: fps_den: 1
09:44:01.073: width: 1920
09:44:01.073: height: 1080
09:44:01.073: keyint: 250
09:44:01.073:
09:44:01.074: [x264 encoder: 'streaming_h264'] custom settings: threads=12 ref=4 aq-mode=3
09:44:01.082: [CoreAudio AAC: 'Track1']: settings:
09:44:01.082: mode: AAC
09:44:01.082: bitrate: 160
09:44:01.082: sample rate: 44100
09:44:01.082: cbr: on
09:44:01.082: output buffer: 1536
09:44:01.082: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://live-den.twitch.tv/app...
09:44:01.105: [rtmp stream: 'adv_stream'] Interface: Intel(R) I211 Gigabit Network Connection (ethernet, 1000 mbps)
09:44:01.803: [rtmp stream: 'adv_stream'] Connection to rtmp://live-den.twitch.tv/app successful
09:44:01.805: ==== Streaming Start ===============================================
09:44:56.928: adding 23 milliseconds of audio buffering, total audio buffering is now 92 milliseconds
09:46:30.259: Stopping stream due to hotkey
09:46:31.226: [rtmp stream: 'adv_stream'] User stopped the stream
09:46:31.226: Output 'adv_stream': stopping
09:46:31.226: Output 'adv_stream': Total frames output: 8467
09:46:31.226: Output 'adv_stream': Total drawn frames: 8529 (8559 attempted)
09:46:31.226: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 30 (0.4%)
09:46:31.227: Video stopped, number of skipped frames due to encoding lag: 577/8517 (6.8%)
09:46:31.229: ==== Streaming Stop ================================================
09:48:36.449: adding 23 milliseconds of audio buffering, total audio buffering is now 116 milliseconds
09:50:49.628: ---------------------------------
09:50:49.628: video settings reset:
09:50:49.628: base resolution: 1920x1080
09:50:49.628: output resolution: 1920x1080
09:50:49.628: downscale filter: Bicubic
09:50:49.628: fps: 55/1
09:50:49.628: format: NV12
09:50:49.628: YUV mode: 601/Partial
09:50:49.648: Settings changed (video)
09:50:49.648: ------------------------------------------------
09:51:00.082: Starting stream due to hotkey
09:51:00.083: ---------------------------------
09:51:00.083: [x264 encoder: 'streaming_h264'] preset: faster
09:51:00.083: [x264 encoder: 'streaming_h264'] profile: high
09:51:00.083: [x264 encoder: 'streaming_h264'] settings:
09:51:00.083: rate_control: CBR
09:51:00.083: bitrate: 5257
09:51:00.083: buffer size: 5257
09:51:00.083: crf: 0
09:51:00.083: fps_num: 55
09:51:00.083: fps_den: 1
09:51:00.083: width: 1920
09:51:00.083: height: 1080
09:51:00.083: keyint: 250
09:51:00.083:
09:51:00.083: [x264 encoder: 'streaming_h264'] custom settings: threads=12 ref=4 aq-mode=3
09:51:00.091: [CoreAudio AAC: 'Track1']: settings:
09:51:00.091: mode: AAC
09:51:00.091: bitrate: 160
09:51:00.091: sample rate: 44100
09:51:00.091: cbr: on
09:51:00.091: output buffer: 1536
09:51:00.092: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://live-den.twitch.tv/app...
09:51:00.123: [rtmp stream: 'adv_stream'] Interface: Intel(R) I211 Gigabit Network Connection (ethernet, 1000 mbps)
09:51:00.863: [rtmp stream: 'adv_stream'] Connection to rtmp://live-den.twitch.tv/app successful
09:51:00.865: ==== Streaming Start ===============================================
09:52:28.040: Stopping stream due to hotkey
09:52:28.906: [rtmp stream: 'adv_stream'] User stopped the stream
09:52:28.906: Output 'adv_stream': stopping
09:52:28.906: Output 'adv_stream': Total frames output: 4799
09:52:28.906: Output 'adv_stream': Total drawn frames: 4885
09:52:28.906: Video stopped, number of skipped frames due to encoding lag: 158/4842 (3.3%)
09:52:28.908: ==== Streaming Stop ================================================
10:38:07.217: adding 46 milliseconds of audio buffering, total audio buffering is now 162 milliseconds
 
I did some X264 encoding test with XMedia Recode to show if OBS was not capped so low.

AMD Ryzen 1600x
original video time 2:38 1920x1080 60 FPS
Software: XMedia Recode
output X264 bitrate 5300 Profile High Level 3.1

0:49 Superfast 195 FPS
0:50 Veryfast 194 FPS
1:02 Faster 153 FPS
1:22 Fast 113 FPS
1:30 Medium 105 FPS
2:46 Slow 56 FPS
 
Some ppl on the forum had to set the memory access mode to Local to get good performance. This is specific to Ryzen, though I do not know where this option is as I do not own a Ryzen.

Also have you tried without using the threads x264 setting and the other ones?
 
okay sounds interesting, thanks for the help. I only hope one day having so many threads wont feel like a complete waste for streaming.
 
The 25-30% is like the total usage of the cpu when I'm only playing the game it's like 16%. The problem is that OBS is capping it self very hard to where it is only using 5% of each thread. If we had an option to change the cap to whatever percentage we want you could easily stream at Medium preset or lower.

hmm here is picture of my CPU usage while streaming (https://prnt.sc/j91l8v) I have setup my affinity for OBS in a way that it's only using threads from 6-15. That way i was able to push it harder while not taking that much hit on game FPS
 
Get rid of both "ref=4" and "aq-mode=3", do a 5 minute or longer test stream of high action video, and post that log file.

Let the Preset handle the settings, don't try to invent something better than the presets. The presets really are very good ramps of quality versus CPU usage, and trying to pick and choose things between them is going to have bad results unless you've done a lot of testing. Which you haven't done, or else you wouldn't have posted here.

In this case, aq-mode 3 is an experimental setting no preset even uses, and 4 reference frames is a setting between what the medium and slow presets use. Its no wonder your encode looks like it has bad performance for only being on "Faster". You're not really on "Faster" at all, but some kind of messed up Faster-Slow hybrid. Don't do this.

I have no issue with the threads=x command, but you should know that by default x264 opens 1.5 threads per virtual CPU. Your CPU has 12 virtual CPUs, so OBS / x264 wants to open 18 threads. I also often use a custom threads=x command to limit this. But if your goal is to hit a certain CPU usage, your threads=x command may be working against that.
 
Last edited:
Back
Top