Question / Help Stream lag when less than 120fps setting?

fubary0

New Member
Hey guys, I got a strange problem: my stream has horrible lags/frame skipping if the streaming fps is under 120. Anyone know what causes this and what could be the potential fix?

Example: 60fps stream: http://www.twitch.tv/fubary0/b/677005924?t=120m
120fps stream:http://www.twitch.tv/fubary0/b/677765597?t=32m

This is strange because I thought it would happen the other way around?! I just want to stream 30/60fps because streaming 120fps lowers my ingame fps a lot. One thing I discovered is that if I limit fps to 60ingame, 60fps setting is fine, but I want to have steady 244 because I have 120Hz display..?
 
Ah, right. I cannot post the full log of the stream I linked with 60fps, noticed there is lots of this message.

Code:
17:26:36: ---------------------- Cleared D3D9 Capture ----------------------
17:26:36: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:26:36: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:26:36: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:26:36: successfully set up d3d9 hooks
17:26:39: D3D9Present called
17:26:39: DoD3D9GPUHook: success
17:26:39: D3D9Reset called
17:26:39: ---------------------- Cleared D3D9 Capture ----------------------
17:26:39: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:26:39: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:26:39: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:26:39: successfully set up d3d9 hooks
17:26:40: D3D9EndScene called
17:26:40: D3D9Present called
17:26:40: DoD3D9GPUHook: success
17:26:40: D3DSURFACE_DESC {
17:26:40:     Format: D3DFMT_A8R8G8B8
17:26:40:     Type: D3DRTYPE_SURFACE
17:26:40:     Usage: D3DUSAGE_RENDERTARGET 
17:26:40:     Pool: D3DPOOL_DEFAULT
17:26:40:     MultiSampleType: D3DMULTISAMPLE_NONE
17:26:40:     MultiSampleQuality: 0
17:26:40:     Width: 1024
17:26:40:     Height: 768
17:26:40: };
17:26:40: successfully capturing d3d9 frames via GPU
17:41:36: D3D9Reset called
17:41:36: ---------------------- Cleared D3D9 Capture ----------------------
17:41:36: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:41:36: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:41:36: WARNING: Another hook is already present while trying to hook d3d9.dll, hook target is unknown. If you experience crashes, try disabling the other hooking application
17:41:36: successfully set up d3d9 hooks
17:41:39: D3D9EndScene called
17:41:39: D3D9Present called
17:41:39: DoD3D9GPUHook: success
17:41:39: D3DSURFACE_DESC {
17:41:39:     Format: D3DFMT_A8R8G8B8
17:41:39:     Type: D3DRTYPE_SURFACE
17:41:39:     Usage: D3DUSAGE_RENDERTARGET 
17:41:39:     Pool: D3DPOOL_DEFAULT
17:41:39:     MultiSampleType: D3DMULTISAMPLE_NONE
17:41:39:     MultiSampleQuality: 0
17:41:39:     Width: 1024
17:41:39:     Height: 768
17:41:39: };
17:41:39: successfully capturing d3d9 frames via GPU
17:46:28: ---------------------- Cleared D3D9 Capture ----------------------
17:46:28: received restart event, capturing
17:46:28: DoD3D9GPUHook: success
17:46:28: D3D9Reset called

Posting start of the log in another post since it goes over 10k chars
 
Code:
And the start of the log
[code]
11:29:21: Open Broadcaster Software v0.651b - 64bit ( ^ω^)
11:29:21: -------------------------------
11:29:21: CPU Name: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
11:29:21: CPU Speed: 3502MHz
11:29:21: Physical Memory:  8136MB Total, 5033MB Free
11:29:21: stepping id: 7, model 42, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
11:29:21: monitor 1: pos={1920, 0}, size={1920, 1080}
11:29:21: monitor 2: pos={0, 0}, size={1920, 1080}
11:29:21: Windows Version: 6.1 Build 7601 S
11:29:21: Aero is Disabled
11:29:21: -------------------------------
11:29:21: OBS Modules:
11:29:21: Base Address     Module
11:29:21: 000000003FEE0000 OBS.exe
11:29:21: 00000000DD2A0000 OBSApi.dll
11:29:21: 00000000F70C0000 DShowPlugin.dll
11:29:21: 00000000F7080000 GraphicsCapture.dll
11:29:21: 00000000F7840000 NoiseGate.dll
11:29:21: 00000000F7050000 PSVPlugin.dll
11:29:21: 00000000F7020000 scenesw.dll
11:29:21: ------------------------------------------
11:29:21: Adapter 1
11:29:21:   Video Adapter: AMD Radeon HD 6900 Series
11:29:21:   Video Adapter Dedicated Video Memory: 4261715968
11:29:21:   Video Adapter Shared System Memory: 3997566976
11:29:21:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
11:29:21:   Video Adapter Output 2: pos={1920, 0}, size={1920, 1080}, attached=true
11:29:21: =====Stream Start: 2015-07-10, 11:29:21===============================================
11:29:21:   Multithreaded optimizations: On
11:29:21:   Base resolution: 1280x720
11:29:21:   Output resolution: 1024x576
11:29:21: ------------------------------------------
11:29:21: Loading up D3D10 on AMD Radeon HD 6900 Series (Adapter 1)...
11:29:21: ------------------------------------------
11:29:21: Audio Format: 48000 Hz
11:29:21: ------------------------------------------
11:29:21: Audio Channels: 2 Ch
11:29:21: Playback device Default
11:29:21: ------------------------------------------
11:29:21: Using desktop audio input: Kaiuttimet (Plantronics GameCom 780)
11:29:21: Global Audio time adjust: 0
11:29:21: Using 5.1 surround speaker setup
11:29:21: ------------------------------------------
11:29:21: Using auxilary audio input: Mikrofoni (Plantronics GameCom 780)
11:29:21: Mic time offset: 0
11:29:21: ------------------------------------------
11:29:21: Audio Encoding: AAC
11:29:21:     bitrate: 128
11:29:21: ------------------------------------------
11:29:21:     device: Logitech HD Webcam C270,
11:29:21:     device id \\?\usb#vid_046d&pid_0825&mi_00#7&38d8df5b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083},
11:29:21:     chosen type: I420, usingFourCC: false, res: 1280x720 - 1280x720, frameIntervals: 333333-2000000
11:29:21:     use buffering: false - 0, fourCC: 'I420'
11:29:21:     audio device: Disable,
11:29:21:     audio device id Disabled,
11:29:21:     audio time offset 0,
11:29:21:
11:29:21: Using directshow input
11:29:21: Using graphics capture
11:29:21: Scene buffering time set to 700
11:29:21: ------------------------------------------
11:29:21: Video Encoding: x264
11:29:21:     fps: 60
11:29:21:     width: 1024, height: 576
11:29:21:     preset: veryfast
11:29:21:     profile: high
11:29:21:     keyint: 250
11:29:21:     CBR: yes
11:29:21:     CFR: yes
11:29:21:     max bitrate: 3000
11:29:21:     buffer size: 3000
11:29:21: ------------------------------------------
11:29:56: FlushBufferedVideo: Flushing 20 packets over 317 ms
11:29:57: Total frames encoded: 2066, total frames duplicated: 0 (0.00%)
11:29:57: Total frames rendered: 2096, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
11:29:57:
11:29:57: Profiler time results:
11:29:57:
11:29:57: ==============================================================
11:29:57: video thread frame - [100%] [avg time: 1.211 ms] [children: 88.5%] [unaccounted: 11.5%]
11:29:57: | scene->Preprocess - [50.1%] [avg time: 0.607 ms]
11:29:57: | GPU download and conversion - [38.4%] [avg time: 0.465 ms] [children: 36.5%] [unaccounted: 1.9%]
11:29:57: | | flush - [34.9%] [avg time: 0.423 ms]
11:29:57: | | CopyResource - [1.49%] [avg time: 0.018 ms]
11:29:57: | | conversion to 4:2:0 - [0.0826%] [avg time: 0.001 ms]
11:29:57: Convert444Threads - [100%] [avg time: 0.26 ms] [children: 99.2%] [unaccounted: 0.769%]
11:29:57: | Convert444toNV12 - [99.2%] [avg time: 0.258 ms]
11:29:57: encoder thread frame - [100%] [avg time: 0.594 ms] [children: 0.337%] [unaccounted: 99.7%]
11:29:57: | sending stuff out - [0.337%] [avg time: 0.002 ms]
11:29:57: ==============================================================
11:29:57:
11:29:57:
11:29:57: Profiler CPU results:
11:29:57:
11:29:57: ==============================================================
11:29:57: video thread frame - [cpu time: avg 0.483 ms, total 1014.01 ms] [avg calls per frame: 1]
11:29:57: | scene->Preprocess - [cpu time: avg 0.468 ms, total 982.806 ms] [avg calls per frame: 1]
11:29:57: | GPU download and conversion - [cpu time: avg 0.014 ms, total 31.2 ms] [avg calls per frame: 1]
11:29:57: | | flush - [cpu time: avg 0.007 ms, total 15.6 ms] [avg calls per frame: 1]
11:29:57: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
11:29:57: | | conversion to 4:2:0 - [cpu time: avg 0.007 ms, total 15.6 ms] [avg calls per frame: 1]
11:29:57: Convert444Threads - [cpu time: avg 0.11 ms, total 452.403 ms] [avg calls per frame: 2]
11:29:57: | Convert444toNV12 - [cpu time: avg 0.11 ms, total 452.403 ms] [avg calls per frame: 2]
11:29:57: encoder thread frame - [cpu time: avg 0.015 ms, total 31.2 ms] [avg calls per frame: 1]
11:29:57: | sending stuff out - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
11:29:57: ==============================================================
11:29:57:
11:29:57: =====Stream End: 2015-07-10, 11:29:57=================================================
11:31:12: =====Stream Start: 2015-07-10, 11:31:12===============================================
11:31:12:   Multithreaded optimizations: On
11:31:12:   Base resolution: 1280x720
11:31:12:   Output resolution: 1024x576
11:31:12: ------------------------------------------
11:31:12: Loading up D3D10 on AMD Radeon HD 6900 Series (Adapter 1)...
11:31:12: ------------------------------------------
11:31:12: Audio Format: 48000 Hz
11:31:12: ------------------------------------------
11:31:12: Audio Channels: 2 Ch
11:31:12: Playback device Default
11:31:12: ------------------------------------------
11:31:12: Using desktop audio input: Kaiuttimet (Plantronics GameCom 780)
11:31:12: Global Audio time adjust: 0
11:31:12: Using 5.1 surround speaker setup
11:31:12: ------------------------------------------
11:31:12: Using auxilary audio input: Mikrofoni (Plantronics GameCom 780)
11:31:12: Mic time offset: 0
11:31:12: ------------------------------------------
11:31:12: Audio Encoding: AAC
11:31:12:     bitrate: 128
11:31:12: ------------------------------------------
11:31:12:     device: Logitech HD Webcam C270,
11:31:12:     device id \\?\usb#vid_046d&pid_0825&mi_00#7&38d8df5b&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083},
11:31:12:     chosen type: I420, usingFourCC: false, res: 1280x720 - 1280x720, frameIntervals: 333333-2000000
11:31:12:     use buffering: false - 0, fourCC: 'I420'
11:31:12:     audio device: Disable,
11:31:12:     audio device id Disabled,
11:31:12:     audio time offset 0,
11:31:12:
11:31:12: Using directshow input
11:31:12: Using graphics capture
11:31:13: Scene buffering time set to 700
11:31:13: ------------------------------------------
11:31:13: Video Encoding: x264
11:31:13:     fps: 60
11:31:13:     width: 1024, height: 576
11:31:13:     preset: veryfast
11:31:13:     profile: high
11:31:13:     keyint: 250
11:31:13:     CBR: yes
11:31:13:     CFR: yes
11:31:13:     max bitrate: 3000
11:31:13:     buffer size: 3000
11:31:13: ------------------------------------------
11:31:24: FlushBufferedVideo: Flushing 20 packets over 317 ms
11:31:24: Total frames encoded: 641, total frames duplicated: 1 (0.16%)
11:31:24: Total frames rendered: 671, number of late frames: 1 (0.15%) (it's okay for some frames to be late)

edit: just to make sure I got the right log I will just stream something fast with 60fps and post it's log asap
 
Turn on Aero. It speeds up Window capture greatly, and game capture somewhat. Also, set a proper keyframe interval (of 2) in your Advanced settings.

You don't need to downscale if you're running at 2800kbps, with 720@60fps. Still advised to drop to 720p@30, 2000kbps unless you're a partnered caster. This will result in less stuttering/buffering for your viewers.

Can turn off CFR (not CBR) unless you're going to edit the local-recording version with Sony Vegas. Twitch wants CBR, but doesn't care about CFR.

May want to switch from the High to the Main profile if you're streaming to Twitch, as it's what they're expecting on their end.

May also want to turn off your overlay hook (overwolf, msi afterburner, etc) as it could be causing issues with the capture. Don't appear to be duping or skipping too many frames.
 
Back
Top