Bug Report 30fps cap in studio mode

servcovep

Member
Hey,

When I use OBS with studio mode(2screen) my fps is limited to 30 even though it is set to 60, but when I use OBS in classic mode with the one screen, it is correctly set as 60fps. This isn't just a display error, the recording is 30/60 fps as it says.

Any ideas what's causing this?

Tried in 16.6 and 17.0 on win10 64bit
 

servcovep

Member
You dont have to start the stream for this to happen. Just switch between normal and studio mode.
Code:
11:59:54.900: CPU Name: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
11:59:54.900: CPU Speed: 4008MHz
11:59:54.900: Physical Cores: 4, Logical Cores: 8
11:59:54.900: Physical Memory: 16346MB Total, 9845MB Free
11:59:54.900: Windows Version: 10.0 Build 14393 (revision: 693; 64-bit)
11:59:54.900: Running as administrator: true
11:59:54.900: Aero is Enabled (Aero is always on for windows 8 and above)
11:59:54.900: Portable mode: true
11:59:54.907: OBS 17.0.2 (64bit, windows)
11:59:54.907: ---------------------------------
11:59:54.907: ---------------------------------
11:59:54.907: audio settings reset:
11:59:54.907:     samples per sec: 44100
11:59:54.907:     speakers:        2
11:59:54.908: ---------------------------------
11:59:54.909: Initializing D3D11..
11:59:54.909: Available Video Adapters:
11:59:54.910:     Adapter 1: NVIDIA GeForce GTX 970
11:59:54.910:       Dedicated VRAM: 4256235520
11:59:54.910:       Shared VRAM:    4275451904
11:59:54.910:       output 1: pos={0, 0}, size={1920, 1080}, attached=true
11:59:54.912: Loading up D3D11 on adapter NVIDIA GeForce GTX 970 (0)
11:59:55.315: D3D11 loaded sucessfully, feature level used: 45056
11:59:55.667: ---------------------------------
11:59:55.667: video settings reset:
11:59:55.667:     base resolution:   1920x1080
11:59:55.667:     output resolution: 1920x1080
11:59:55.667:     downscale filter:  Lanczos
11:59:55.667:     fps:               60/1
11:59:55.667:     format:            NV12
11:59:55.668: ---------------------------------
11:59:55.669: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/chrome_elf.dll' not found, loading of module failed
11:59:55.673: [CoreAudio encoder]: Adding CoreAudio AAC encoder
11:59:55.674: [AMF Encoder] Unable to load 'amfrt64.dll', error code 126.
11:59:55.684: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libcef.dll' not found, loading of module failed
11:59:55.684: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libEGL.dll' not found, loading of module failed
11:59:55.684: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libGLESv2.dll' not found, loading of module failed
11:59:55.685: Failed to load 'en-US' text for module: 'obs-browser.dll'
11:59:55.685: [browser_source: 'Version: 1.28.0']
11:59:55.686: NVENC supported
11:59:55.737: Couldn't find VLC installation, VLC video source disabled
11:59:55.740: No blackmagic support
11:59:55.871: ---------------------------------
11:59:55.871:   Loaded Modules:
11:59:55.871:     win-wasapi.dll
11:59:55.871:     win-mf.dll
11:59:55.871:     win-dshow.dll
11:59:55.871:     win-decklink.dll
11:59:55.871:     win-capture.dll
11:59:55.871:     vlc-video.dll
11:59:55.871:     text-freetype2.dll
11:59:55.871:     rtmp-services.dll
11:59:55.871:     obs-x264.dll
11:59:55.871:     obs-transitions.dll
11:59:55.871:     obs-text.dll
11:59:55.871:     obs-qsv11.dll
11:59:55.871:     obs-outputs.dll
11:59:55.871:     obs-filters.dll
11:59:55.871:     obs-ffmpeg.dll
11:59:55.871:     obs-browser.dll
11:59:55.871:     image-source.dll
11:59:55.871:     frontend-tools.dll
11:59:55.871:     enc-amf.dll
11:59:55.871:     coreaudio-encoder.dll
11:59:55.871: ==== Startup complete ===============================================
11:59:55.877: All scene data cleared
11:59:55.877: ------------------------------------------------
11:59:55.892: WASAPI: Device 'Game Sounds (VB-Audio Virtual Cable)' initialized
11:59:55.901: WASAPI: Device 'Music for Stream (VB-Audio Cable B)' initialized
11:59:55.905: WASAPI: Device 'Edited Mic In (VB-Audio Hi-Fi Cable)' initialized
11:59:55.908: adding 23 milliseconds of audio buffering, total audio buffering is now 23 milliseconds
11:59:55.916: [Media Source 'division.bg']: settings:
11:59:55.916:     input:                   D:/Programs/OBS/resources/video/division.bg.mp4
11:59:55.916:     input_format:            (null)
11:59:55.916:     is_looping:              yes
11:59:55.916:     is_forcing_scale:        yes
11:59:55.916:     is_hw_decoding:          yes
11:59:55.916:     is_clear_on_media_end:   yes
11:59:55.916:     restart_on_activate:     yes
11:59:55.931: adding 23 milliseconds of audio buffering, total audio buffering is now 46 milliseconds
11:59:58.178: [Media Source 'replay.mp4']: settings:
11:59:58.178:     input:                   D:/Programs/OBS/resources/video/replays/playback/lastrecording.mp4
11:59:58.178:     input_format:            (null)
11:59:58.178:     is_looping:              no
11:59:58.178:     is_forcing_scale:        yes
11:59:58.178:     is_hw_decoding:          yes
11:59:58.178:     is_clear_on_media_end:   yes
11:59:58.178:     restart_on_activate:     yes
11:59:58.223: Switched to scene 'division'
11:59:58.223: ------------------------------------------------
11:59:58.223: Loaded scenes:
11:59:58.223: - scene 'test':
11:59:58.223:     - source: 'division.bg' (ffmpeg_source)
11:59:58.223:     - source: 'test.txt' (text_gdiplus)
11:59:58.223:         - filter: 'Scroll' (scroll_filter)
11:59:58.223:     - source: 'tip.jar' (browser_source)
11:59:58.223: - scene 'division':
11:59:58.223:     - source: 'division.gc' (game_capture)
11:59:58.223:     - source: 'division.overlay' (browser_source)
11:59:58.223: - scene 'poe':
11:59:58.223:     - source: 'poe.gc' (game_capture)
11:59:58.223: - scene 'replay':
11:59:58.223:     - source: 'division.gc' (game_capture)
11:59:58.223:     - source: 'division.overlay' (browser_source)
11:59:58.223:     - source: 'replay.mp4' (ffmpeg_source)
11:59:58.223:         - filter: 'Scaling/Aspect Ratio' (scale_filter)
11:59:58.223: ------------------------------------------------
11:59:58.696: Update check: last known remote version is 17.0.2
12:00:01.876: User switched to scene 'test'
12:00:08.499: ---------------------------------
12:00:08.499: [NVENC encoder: 'simple_h264_stream'] settings:
12:00:08.499:     rate_control: CBR
12:00:08.499:     bitrate:      25600
12:00:08.499:     cqp:          0
12:00:08.499:     keyint:       250
12:00:08.499:     preset:       llhq
12:00:08.499:     profile:      main
12:00:08.499:     level:        auto
12:00:08.499:     width:        1920
12:00:08.499:     height:       1080
12:00:08.499:     2-pass:       true
12:00:08.499:     b-frames:     2
12:00:08.499:     GPU:          0
12:00:08.499:
12:00:08.892: [CoreAudio AAC: 'simple_aac']: settings:
12:00:08.892:     mode:          AAC
12:00:08.892:     bitrate:       128
12:00:08.892:     sample rate:   44100
12:00:08.892:     cbr:           on
12:00:08.892:     output buffer: 1536
12:00:09.125: ==== Recording Start ===============================================
12:00:09.125: [ffmpeg muxer: 'simple_file_output'] Writing file 'D:/Programs/OBS/resources/video/replays/buffer/2017-01-19_12-00-08.mp4'...
12:00:15.015: [ffmpeg muxer: 'simple_file_output'] Output of file 'D:/Programs/OBS/resources/video/replays/buffer/2017-01-19_12-00-08.mp4' stopped
12:00:15.015: Output 'simple_file_output': stopping
12:00:15.015: Output 'simple_file_output': Total encoded frames: 353
12:00:15.015: Output 'simple_file_output': Total drawn frames: 353
12:00:15.016: ==== Recording Stop ================================================
12:00:17.467: Switched to Preview/Program mode
12:00:17.468: ------------------------------------------------
12:00:21.346: ---------------------------------
12:00:21.347: [NVENC encoder: 'simple_h264_stream'] settings:
12:00:21.347:     rate_control: CBR
12:00:21.347:     bitrate:      25600
12:00:21.347:     cqp:          0
12:00:21.347:     keyint:       250
12:00:21.347:     preset:       llhq
12:00:21.347:     profile:      main
12:00:21.347:     level:        auto
12:00:21.347:     width:        1920
12:00:21.347:     height:       1080
12:00:21.347:     2-pass:       true
12:00:21.347:     b-frames:     2
12:00:21.347:     GPU:          0
12:00:21.347:
12:00:21.553: [CoreAudio AAC: 'simple_aac']: settings:
12:00:21.553:     mode:          AAC
12:00:21.553:     bitrate:       128
12:00:21.553:     sample rate:   44100
12:00:21.553:     cbr:           on
12:00:21.553:     output buffer: 1536
12:00:21.582: ==== Recording Start ===============================================
12:00:21.582: [ffmpeg muxer: 'simple_file_output'] Writing file 'D:/Programs/OBS/resources/video/replays/buffer/2017-01-19_12-00-21.mp4'...
12:00:26.884: [ffmpeg muxer: 'simple_file_output'] Output of file 'D:/Programs/OBS/resources/video/replays/buffer/2017-01-19_12-00-21.mp4' stopped
12:00:26.884: Output 'simple_file_output': stopping
12:00:26.884: Output 'simple_file_output': Total encoded frames: 316
12:00:26.884: Output 'simple_file_output': Total drawn frames: 318
12:00:26.884: Output 'simple_file_output': Number of lagged frames due to rendering lag/stalls: 159 (50.0%)
12:00:26.884: ==== Recording Stop ================================================
12:00:30.505: ==== Shutting down ==================================================
12:00:30.514: Switched to scene '(null)'
12:00:31.211: WASAPI: Device 'Game Sounds (VB-Audio Virtual Cable)' Terminated
12:00:31.244: WASAPI: Device 'Music for Stream (VB-Audio Cable B)' Terminated
12:00:31.278: WASAPI: Device 'Edited Mic In (VB-Audio Hi-Fi Cable)' Terminated
12:00:31.311: All scene data cleared
12:00:31.311: ------------------------------------------------
12:00:31.393: Freeing OBS context data
12:00:31.463: == Profiler Results =============================
12:00:31.463: run_program_init: 3405.52 ms
12:00:31.463:  ┣OBSApp::AppInit: 1.348 ms
12:00:31.463:  ┃ ┗OBSApp::InitLocale: 0.829 ms
12:00:31.463:  ┗OBSApp::OBSInit: 3365.82 ms
12:00:31.463:    ┣obs_startup: 1.177 ms
12:00:31.463:    ┗OBSBasic::OBSInit: 3346.79 ms
12:00:31.463:      ┣OBSBasic::InitBasicConfig: 0.444 ms
12:00:31.463:      ┣OBSBasic::ResetAudio: 0.09 ms
12:00:31.463:      ┣OBSBasic::ResetVideo: 760.379 ms
12:00:31.463:      ┣OBSBasic::InitOBSCallbacks: 0.009 ms
12:00:31.463:      ┣OBSBasic::InitHotkeys: 0.03 ms
12:00:31.463:      ┣obs_load_all_modules: 203.399 ms
12:00:31.463:      ┃ ┣obs_init_module(coreaudio-encoder.dll): 4.081 ms
12:00:31.463:      ┃ ┣obs_init_module(enc-amf.dll): 0.24 ms
12:00:31.463:      ┃ ┣obs_init_module(frontend-tools.dll): 0.922 ms
12:00:31.463:      ┃ ┣obs_init_module(image-source.dll): 0.002 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-browser.dll): 0.041 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-ffmpeg.dll): 0.569 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-filters.dll): 0.008 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-outputs.dll): 0.002 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-qsv11.dll): 44.868 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-text.dll): 0.243 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-transitions.dll): 0.003 ms
12:00:31.463:      ┃ ┣obs_init_module(obs-x264.dll): 0.001 ms
12:00:31.463:      ┃ ┣obs_init_module(rtmp-services.dll): 0.179 ms
12:00:31.463:      ┃ ┣obs_init_module(text-freetype2.dll): 0.027 ms
12:00:31.463:      ┃ ┣obs_init_module(vlc-video.dll): 0.037 ms
12:00:31.463:      ┃ ┣obs_init_module(win-capture.dll): 0.039 ms
12:00:31.463:      ┃ ┣obs_init_module(win-decklink.dll): 1.649 ms
12:00:31.463:      ┃ ┣obs_init_module(win-dshow.dll): 1.029 ms
12:00:31.463:      ┃ ┣obs_init_module(win-mf.dll): 127.617 ms
12:00:31.463:      ┃ ┣obs_init_module(win-wasapi.dll): 0.003 ms
12:00:31.463:      ┃ ┗reset_win32_symbol_paths: 0.057 ms
12:00:31.463:      ┣OBSBasic::ResetOutputs: 4.509 ms
12:00:31.463:      ┣OBSBasic::CreateHotkeys: 0.02 ms
12:00:31.463:      ┣OBSBasic::InitService: 0.166 ms
12:00:31.463:      ┣OBSBasic::InitPrimitives: 0.155 ms
12:00:31.463:      ┗OBSBasic::Load: 2346.65 ms
12:00:31.463: obs_hotkey_thread(25 ms): min=0.002 ms, median=0.004 ms, max=0.386 ms, 99th percentile=0.16 ms, 100% below 25 ms
12:00:31.463: audio_thread(Audio): min=0 ms, median=0.048 ms, max=7.578 ms, 99th percentile=0.902 ms
12:00:31.463:  ┗receive_audio: min=0.001 ms, median=0.181 ms, max=2.937 ms, 99th percentile=0.573 ms, 0.302899 calls per parent call
12:00:31.463:    ┣buffer_audio: min=0 ms, median=0.001 ms, max=0.007 ms, 99th percentile=0.004 ms
12:00:31.463:    ┗do_encode: min=0.079 ms, median=0.178 ms, max=2.932 ms, 99th percentile=0.566 ms
12:00:31.463:      ┗encode(simple_aac): min=0.078 ms, median=0.134 ms, max=0.395 ms, 99th percentile=0.334 ms
12:00:31.463: obs_video_thread(16.6667 ms): min=0.167 ms, median=11.121 ms, max=2279.02 ms, 99th percentile=34.184 ms, 73.7602% below 16.667 ms
12:00:31.463:  ┣tick_sources: min=0 ms, median=0.011 ms, max=2278.21 ms, 99th percentile=0.036 ms
12:00:31.463:  ┣render_displays: min=0 ms, median=10.236 ms, max=32.792 ms, 99th percentile=32.604 ms
12:00:31.463:  ┗output_frame: min=0.164 ms, median=0.791 ms, max=2.266 ms, 99th percentile=1.902 ms
12:00:31.463:    ┣gs_context(video->graphics): min=0.074 ms, median=0.224 ms, max=1.465 ms, 99th percentile=1.137 ms
12:00:31.463:    ┃ ┣render_video: min=0.015 ms, median=0.058 ms, max=1.229 ms, 99th percentile=0.126 ms
12:00:31.464:    ┃ ┃ ┣render_main_texture: min=0.002 ms, median=0.04 ms, max=1.167 ms, 99th percentile=0.085 ms
12:00:31.464:    ┃ ┃ ┣render_output_texture: min=0.002 ms, median=0.006 ms, max=0.087 ms, 99th percentile=0.027 ms
12:00:31.464:    ┃ ┃ ┣render_convert_texture: min=0.001 ms, median=0.007 ms, max=0.025 ms, 99th percentile=0.017 ms
12:00:31.464:    ┃ ┃ ┗stage_output_texture: min=0 ms, median=0.002 ms, max=0.038 ms, 99th percentile=0.007 ms
12:00:31.464:    ┃ ┣download_frame: min=0 ms, median=0.002 ms, max=0.105 ms, 99th percentile=0.005 ms
12:00:31.464:    ┃ ┗gs_flush: min=0.026 ms, median=0.154 ms, max=0.592 ms, 99th percentile=0.25 ms
12:00:31.464:    ┗output_video_data: min=0.266 ms, median=0.539 ms, max=1.546 ms, 99th percentile=0.96 ms
12:00:31.464: video_thread(video): min=0 ms, median=0.001 ms, max=9.445 ms, 99th percentile=4.708 ms
12:00:31.464:  ┗receive_video: min=0 ms, median=1.591 ms, max=9.441 ms, 99th percentile=3.18 ms, 0.424166 calls per parent call
12:00:31.464:    ┗do_encode: min=0.671 ms, median=1.603 ms, max=9.44 ms, 99th percentile=3.179 ms
12:00:31.464:      ┗encode(simple_h264_stream): min=0.658 ms, median=1.528 ms, max=3.375 ms, 99th percentile=2.987 ms
12:00:31.464: =================================================
12:00:31.464: == Profiler Time Between Calls ==================
12:00:31.464: obs_hotkey_thread(25 ms): min=24.955 ms, median=25.081 ms, max=26.099 ms, 86.326% within ±2% of 25 ms (0% lower, 13.674% higher)
12:00:31.464: obs_video_thread(16.6667 ms): min=4.302 ms, median=16.667 ms, max=2279.03 ms, 73.7437% within ±2% of 16.667 ms (0.0628141% lower, 26.1935% higher)
12:00:31.464: =================================================
12:00:31.489: Number of memory leaks: 9
 
Hi,

Streaming or Recording before posting the log provides further detail e.g. yours is showing,

12:00:26.884: Output 'simple_file_output': Number of lagged frames due to rendering lag/stalls: 159 (50.0%)

12:00:21.347: [NVENC encoder: 'simple_h264_stream'] settings:
12:00:21.347: rate_control: CBR
12:00:21.347: bitrate: 25600
12:00:21.347: cqp: 0
12:00:21.347: keyint: 250
12:00:21.347: preset: llhq
12:00:21.347: profile: main
12:00:21.347: level: auto
12:00:21.347: width: 1920
12:00:21.347: height: 1080
12:00:21.347: 2-pass: true
12:00:21.347: b-frames: 2
12:00:21.347: GPU: 0

The rendering lag will limit the fps. As you are recording you don't need to use CBR swap to VBR or CQP.
 

servcovep

Member
You don't understand, I don't need to start the stream or recording for this bug to show, let me show you with a video what I mean.

 
I understand, in that video you are recording, that recording is lagging out your pc as showing with the error in the log

12:00:26.884: Output 'simple_file_output': Number of lagged frames due to rendering lag/stalls: 159 (50.0%)

this lag is causing the fps to drop.
 

servcovep

Member
and how the hell does it cause it when I set it to 2560 instead of 25600, or when I don't even start the stream or recording? how can it be a rendering lag when it doesn't render anything?
 
You can clearly see in that video you posted that the record button says stop, this means you are recording video at that time. Press stop recording :-)
 

servcovep

Member
The video just to show what it does, but the behavior is exactly the same when not streaming/recording, that's why I didn't want to post the log, because guys like you go way off track and then play idiot, thanks for the huge help.
 

Osiris

Active Member
Just to make sure, can you check GPU-Z and check what PCI-e speed it is running at?
I personally can't reproduce this, it stays at 60fps for me when enabling studio mode.
 

servcovep

Member
This is what I see in gpuz:
91581b5969.png


Just to make sure, can you check GPU-Z and check what PCI-e speed it is running at?
I personally can't reproduce this, it stays at 60fps for me when enabling studio mode.
 

EBrito

Active Member
Maybe media sources are 30 FPS and OBS in studio mode sticks to lower FPS?
(Just guessing)
 
Last edited:

Osiris

Active Member
If noone is replying, then I guess they don't encounter this problem. I personally can't reproduce it either, fps stays at 60 regardless of studio mode.
Tried using a single scene collection, and add your sources 1 by 1 to determine which one is causing it?

Also there is only 1 dev.
 
Last edited:
Top