Question / Help Obs keeps duplicating frames and makes stream/recodring micro stutter

crisvsv

New Member
Man i am desperate...my stream or recording is not smooth at 60 fps, , looks like a 30 fps almost. It should not do this.
I have I7 4790, 8 bg ram single channel, gtx 590, and tried everything still get the stutery feel., especially in Armored Warfare, other games look much smother. The issue is here even if i have more than 60 fps in game, but still duplicates those frames (i understand this when having low fps) , i can see the duplicated frames when going frame by frame....2 frames next to each other almost identical, tiny artifacts are different, but frame is identical. I tried every setting in obs and NVidia, still having the micro sutters.
I tried CFR, VFR, some custom commands... its just the video card too old? But it does not make sense...i have even 70 fps in game, but stream is not as smooth as the actual game...I tried splitting cpu affinities...etc etc. Even at 30 fps recording stream, it stutters and video is choppy. I tried even to record with minimum resolution and lowest preset...still getting those frames... lowered the game also to minimum...the same.
I can use only x264..no quicksink or nvenc..

I use clr browser as well, with chat, stream box webcam...have not tried to disable those but i really don't think they are the problem...

This is log of a short test, you can see that i have 10 % duplicated frames...I tried some custom settings, they did not do any harm, without them is the same.

Here is my last stream http://www.twitch.tv/crisvsv/v/40753638
Pls help me how can i get rid of those duplicates??
Sorry for mistakes is really late here, night caught me trying settings ...

Code:
====Stream Start: 2016-02-06, 02:01:24===============================================
02:01:24:   Multithreaded optimizations: On
02:01:24:   Base resolution: 1920x1080
02:01:24:   Output resolution: 1280x720
02:01:24: ------------------------------------------
02:01:24: Loading up D3D10 on NVIDIA GeForce GTX 590 (Adapter 1)...
02:01:24: ------------------------------------------
02:01:24: Audio Format: 48000 Hz
02:01:24: ------------------------------------------
02:01:24: Audio Channels: 2 Ch
02:01:24: Playback device {0.0.0.00000000}.{37a9da2e-a9b2-435a-9fed-4aaddc7ccaae}
02:01:24: ------------------------------------------
02:01:24: Using desktop audio input: Speakers (Realtek High Definition Audio)
02:01:24: Global Audio time adjust: 0
02:01:24: ------------------------------------------
02:01:24: Using auxilary audio input: Microphone (Realtek High Definition Audio)
02:01:24: Mic time offset: 0
02:01:24: ------------------------------------------
02:01:24: Audio Encoding: AAC
02:01:24:     bitrate: 96
02:01:24: ------------------------------------------
02:01:24:     device: USB PC Camera VC305,
02:01:24:     device id \\?\usb#vid_0ac8&pid_305b#5&8498a73&0&6#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
02:01:24:     chosen type: RGB24, usingFourCC: false, res: 1280x960 - 1280x960, frameIntervals: 100000-1666667
02:01:24:     use buffering: false - 0, fourCC: 00000000
02:01:24:     audio device: Disable,
02:01:24:     audio device id Disabled,
02:01:24:     audio time offset 0,
02:01:24:
02:01:25: Using directshow input
02:01:25: Using text output
02:01:25: Using text output
02:01:25: Using text output
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Trying to hook process: armoredwarfare.exe
02:01:25: Trying to hook process: armoredwarfare.exe
02:01:25: Scene buffering time set to 700
02:01:25: Using custom x264 settings: "bframes=5 direct=temporal ipratio=1 pbratio=1 keyint-min=30 scenecut=20 threads=8"
02:01:25: ------------------------------------------
02:01:25: Video Encoding: x264
02:01:25:     fps: 60
02:01:25:     width: 1280, height: 720
02:01:25:     preset: veryfast
02:01:25:     profile: main
02:01:25:     keyint: 120
02:01:25:     CBR: yes
02:01:25:     CFR: yes
02:01:25:     max bitrate: 2000
02:01:25:     buffer size: 4000
02:01:25: ------------------------------------------
02:01:25: SharedTexCapture hooked
02:01:25: CLRHost:: Browser 42: Status message:
02:01:25: CLRHost:: Browser 42: Failed to set referrer policy: The value 'no-referrer' is not one of 'always', 'default', 'never', or 'origin'. Defaulting to 'never'. @http://www.twitchalerts.com/alert-box/v3/282BD8344AB763435F3310
02:01:25: CLRHost:: Browser 41: Status message:
02:01:28: GraphicsCaptureSource::NewCapture:  eliminating old capture
02:01:28: SharedTexCapture hooked
02:01:55: FlushBufferedVideo: Flushing 47 packets over 766 ms
02:01:56: Total frames encoded: 1800, total frames duplicated: 182 (10.11%)
02:01:56: Total frames rendered: 1739, number of late frames: 9 (0.52%) (it's okay for some frames to be late)
02:01:56:
02:01:56: Profiler time results:
02:01:56:
02:01:56: ==============================================================
02:01:56: video thread frame - [100%] [avg time: 3.402 ms] [children: 78.3%] [unaccounted: 21.7%]
02:01:56: | scene->Preprocess - [16.4%] [avg time: 0.558 ms]
02:01:56: | GPU download and conversion - [61.9%] [avg time: 2.105 ms] [children: 18.8%] [unaccounted: 43.1%]
02:01:56: | | flush - [18.4%] [avg time: 0.627 ms]
02:01:56: | | CopyResource - [0.235%] [avg time: 0.008 ms]
02:01:56: | | conversion to 4:2:0 - [0.0882%] [avg time: 0.003 ms]
02:01:56: Convert444Threads - [100%] [avg time: 0.897 ms] [children: 99.6%] [unaccounted: 0.446%]
02:01:56: | Convert444toNV12 - [99.6%] [avg time: 0.893 ms]
02:01:56: encoder thread frame - [100%] [avg time: 1.284 ms] [children: 2.88%] [unaccounted: 97.1%]
02:01:56: | sending stuff out - [2.88%] [avg time: 0.037 ms]
02:01:56: ==============================================================
02:01:56:
02:01:56:
02:01:56: Profiler CPU results:
02:01:56:
02:01:56: ==============================================================
02:01:56: video thread frame - [cpu time: avg 0.601 ms, total 1046.88 ms] [avg calls per frame: 1]
02:01:56: | scene->Preprocess - [cpu time: avg 0.404 ms, total 703.125 ms] [avg calls per frame: 1]
02:01:56: | GPU download and conversion - [cpu time: avg 0.152 ms, total 265.625 ms] [avg calls per frame: 1]
02:01:56: | | flush - [cpu time: avg 0.152 ms, total 265.625 ms] [avg calls per frame: 1]
02:01:56: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
02:01:56: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
02:01:56: Convert444Threads - [cpu time: avg 0.808 ms, total 2734.38 ms] [avg calls per frame: 2]
02:01:56: | Convert444toNV12 - [cpu time: avg 0.808 ms, total 2734.38 ms] [avg calls per frame: 2]
02:01:56: encoder thread frame - [cpu time: avg 0.864 ms, total 1515.63 ms] [avg calls per frame: 1]
02:01:56: | sending stuff out - [cpu time: avg 0.017 ms, total 31.25 ms] [avg calls per frame: 1]
02:01:56: ==============================================================
02:01:56:
02:01:56: =====Stream End: 2016-02-06, 02:01:56=================================================
 

dping

Active Member
Man i am desperate...my stream or recording is not smooth at 60 fps, , looks like a 30 fps almost. It should not do this.
I have I7 4790, 8 bg ram single channel, gtx 590, and tried everything still get the stutery feel., especially in Armored Warfare, other games look much smother. The issue is here even if i have more than 60 fps in game, but still duplicates those frames (i understand this when having low fps) , i can see the duplicated frames when going frame by frame....2 frames next to each other almost identical, tiny artifacts are different, but frame is identical. I tried every setting in obs and NVidia, still having the micro sutters.
I tried CFR, VFR, some custom commands... its just the video card too old? But it does not make sense...i have even 70 fps in game, but stream is not as smooth as the actual game...I tried splitting cpu affinities...etc etc. Even at 30 fps recording stream, it stutters and video is choppy. I tried even to record with minimum resolution and lowest preset...still getting those frames... lowered the game also to minimum...the same.
I can use only x264..no quicksink or nvenc..

I use clr browser as well, with chat, stream box webcam...have not tried to disable those but i really don't think they are the problem...

This is log of a short test, you can see that i have 10 % duplicated frames...I tried some custom settings, they did not do any harm, without them is the same.

Here is my last stream http://www.twitch.tv/crisvsv/v/40753638
Pls help me how can i get rid of those duplicates??
Sorry for mistakes is really late here, night caught me trying settings ...

Code:
====Stream Start: 2016-02-06, 02:01:24===============================================
02:01:24:   Multithreaded optimizations: On
02:01:24:   Base resolution: 1920x1080
02:01:24:   Output resolution: 1280x720
02:01:24: ------------------------------------------
02:01:24: Loading up D3D10 on NVIDIA GeForce GTX 590 (Adapter 1)...
02:01:24: ------------------------------------------
02:01:24: Audio Format: 48000 Hz
02:01:24: ------------------------------------------
02:01:24: Audio Channels: 2 Ch
02:01:24: Playback device {0.0.0.00000000}.{37a9da2e-a9b2-435a-9fed-4aaddc7ccaae}
02:01:24: ------------------------------------------
02:01:24: Using desktop audio input: Speakers (Realtek High Definition Audio)
02:01:24: Global Audio time adjust: 0
02:01:24: ------------------------------------------
02:01:24: Using auxilary audio input: Microphone (Realtek High Definition Audio)
02:01:24: Mic time offset: 0
02:01:24: ------------------------------------------
02:01:24: Audio Encoding: AAC
02:01:24:     bitrate: 96
02:01:24: ------------------------------------------
02:01:24:     device: USB PC Camera VC305,
02:01:24:     device id \\?\usb#vid_0ac8&pid_305b#5&8498a73&0&6#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
02:01:24:     chosen type: RGB24, usingFourCC: false, res: 1280x960 - 1280x960, frameIntervals: 100000-1666667
02:01:24:     use buffering: false - 0, fourCC: 00000000
02:01:24:     audio device: Disable,
02:01:24:     audio device id Disabled,
02:01:24:     audio time offset 0,
02:01:24:
02:01:25: Using directshow input
02:01:25: Using text output
02:01:25: Using text output
02:01:25: Using text output
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Using graphics capture
02:01:25: Trying to hook process: armoredwarfare.exe
02:01:25: Trying to hook process: armoredwarfare.exe
02:01:25: Scene buffering time set to 700
02:01:25: Using custom x264 settings: "bframes=5 direct=temporal ipratio=1 pbratio=1 keyint-min=30 scenecut=20 threads=8"
02:01:25: ------------------------------------------
02:01:25: Video Encoding: x264
02:01:25:     fps: 60
02:01:25:     width: 1280, height: 720
02:01:25:     preset: veryfast
02:01:25:     profile: main
02:01:25:     keyint: 120
02:01:25:     CBR: yes
02:01:25:     CFR: yes
02:01:25:     max bitrate: 2000
02:01:25:     buffer size: 4000
02:01:25: ------------------------------------------
02:01:25: SharedTexCapture hooked
02:01:25: CLRHost:: Browser 42: Status message:
02:01:25: CLRHost:: Browser 42: Failed to set referrer policy: The value 'no-referrer' is not one of 'always', 'default', 'never', or 'origin'. Defaulting to 'never'. @http://www.twitchalerts.com/alert-box/v3/282BD8344AB763435F3310
02:01:25: CLRHost:: Browser 41: Status message:
02:01:28: GraphicsCaptureSource::NewCapture:  eliminating old capture
02:01:28: SharedTexCapture hooked
02:01:55: FlushBufferedVideo: Flushing 47 packets over 766 ms
02:01:56: Total frames encoded: 1800, total frames duplicated: 182 (10.11%)
02:01:56: Total frames rendered: 1739, number of late frames: 9 (0.52%) (it's okay for some frames to be late)
02:01:56:
02:01:56: Profiler time results:
02:01:56:
02:01:56: ==============================================================
02:01:56: video thread frame - [100%] [avg time: 3.402 ms] [children: 78.3%] [unaccounted: 21.7%]
02:01:56: | scene->Preprocess - [16.4%] [avg time: 0.558 ms]
02:01:56: | GPU download and conversion - [61.9%] [avg time: 2.105 ms] [children: 18.8%] [unaccounted: 43.1%]
02:01:56: | | flush - [18.4%] [avg time: 0.627 ms]
02:01:56: | | CopyResource - [0.235%] [avg time: 0.008 ms]
02:01:56: | | conversion to 4:2:0 - [0.0882%] [avg time: 0.003 ms]
02:01:56: Convert444Threads - [100%] [avg time: 0.897 ms] [children: 99.6%] [unaccounted: 0.446%]
02:01:56: | Convert444toNV12 - [99.6%] [avg time: 0.893 ms]
02:01:56: encoder thread frame - [100%] [avg time: 1.284 ms] [children: 2.88%] [unaccounted: 97.1%]
02:01:56: | sending stuff out - [2.88%] [avg time: 0.037 ms]
02:01:56: ==============================================================
02:01:56:
02:01:56:
02:01:56: Profiler CPU results:
02:01:56:
02:01:56: ==============================================================
02:01:56: video thread frame - [cpu time: avg 0.601 ms, total 1046.88 ms] [avg calls per frame: 1]
02:01:56: | scene->Preprocess - [cpu time: avg 0.404 ms, total 703.125 ms] [avg calls per frame: 1]
02:01:56: | GPU download and conversion - [cpu time: avg 0.152 ms, total 265.625 ms] [avg calls per frame: 1]
02:01:56: | | flush - [cpu time: avg 0.152 ms, total 265.625 ms] [avg calls per frame: 1]
02:01:56: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
02:01:56: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
02:01:56: Convert444Threads - [cpu time: avg 0.808 ms, total 2734.38 ms] [avg calls per frame: 2]
02:01:56: | Convert444toNV12 - [cpu time: avg 0.808 ms, total 2734.38 ms] [avg calls per frame: 2]
02:01:56: encoder thread frame - [cpu time: avg 0.864 ms, total 1515.63 ms] [avg calls per frame: 1]
02:01:56: | sending stuff out - [cpu time: avg 0.017 ms, total 31.25 ms] [avg calls per frame: 1]
02:01:56: ==============================================================
02:01:56:
02:01:56: =====Stream End: 2016-02-06, 02:01:56=================================================

remove those crap custom x264 settings, all of them

set custom buffer to the same as bitrate, 3000 for both is about perfect

you have 10 game captures in your scene, two of which are capturing the same game. put each game in its own scene
and only capture a game once.

Make these changes then post a LINK to your logfile from the help menu. not the text, the github link when you select upload logfile.
 

crisvsv

New Member
I just tried now to enable vsync and looks perfect. I will do as you say also.With v-sync i have only 1% duplicated frames. lol.
Thanks! I will do as you say also.
 

dping

Active Member
Did a stream today , I attach link to it, you can see i was switching from vs sync on to off a few times at the beginning, and without vsync is very choppy, so in this game that is the problem. Strangely, in BF3 the stream is much worse with v-sync on (thank God, cause it adds input lag).

Stream : http://www.twitch.tv/crisvsv/v/41331338

And log for this stream : https://gist.github.com/9f81f43f133660961121

Thanks you for help!
vsync wasn't your issue imo you were duplicating 10% of your frames in OBS due to those aweful custom x264 settings.
 

crisvsv

New Member
No it wasn't about those settings., those don't affect stream performance toggled them on an orff and did no difference. It's about v sync. Believe me. Only v sync on make the stream smoother, you can see it in that stream.
I have tested it until i could not anymore (4 am in the morning) .
I can do a stream with only v sync off and you will see i will have more doubled frames. This game's engine is so baldy optimized ...it does this.
 

dping

Active Member
No it wasn't about those settings., those don't affect stream performance toggled them on an orff and did no difference. It's about v sync. Believe me. Only v sync on make the stream smoother, you can see it in that stream.
I have tested it until i could not anymore (4 am in the morning) .
I can do a stream with only v sync off and you will see i will have more doubled frames. This game's engine is so baldy optimized ...it does this.
Hah, yes they do. you set obs for 8 threads, it is best to let OBS chose what threads it needs to use. second you had 5 bframes, 3 is standard and is all that is needed.

Anyway, as soon as you switched off the custom x264 settings you went from 10% of your frames down to 2. check your log.
 
Top