Question / Help Preview lag in OBS (no dropped frames or in-game lag)

Flamecookie

New Member
I'm using a capture device for my SNES. When i preview a game in amarec, everything looks nice and smooth, i could almost play the game in the preview screen and recording works fine.

When i add amarec as a video capture device in OBS and preview it, everything looks laggy and really jittery but theres not much of a delay, this happens when i stream too. It's like OBS and amarec doesn't want to cooperate. I've also had this problem with other softwares such as xsplit and FMLE. I tried adding the capture device (xcapture-1) directly into OBS (no amarec) and it's pretty much the same if not worse. Just to note, i'm not dropping any frames or anything according to OBS. Im matching the FPS in amarec with obs and i've tried various types of settings but it's no use.

I can't imagine that it's suppose to be this bad. I'm beginning to think it's my PC thats acting up, but next week i will try with my friends laptop to see if theres any difference. Why does this occur? is it most likely a hardware issue? Here is my log:

Code:
18:18:05: Open Broadcaster Software v0.612b - 32bit (´・ω・`)
18:18:05: -------------------------------
18:18:05: CPU Name: Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz
18:18:05: CPU Speed: 3392MHz
18:18:05: Physical Memory:  4095MB Total, 4095MB Free
18:18:05: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
18:18:05: monitor 1: pos={0, 0}, size={1920, 1080}
18:18:05: Windows Version: 6.1 Build 7601 S
18:18:05: Aero is Disabled
18:18:05: -------------------------------
18:18:05: OBS Modules:
18:18:05: Base Address     Module
18:18:05: 01290000         OBS.exe
18:18:05: 6BB70000         OBSApi.dll
18:18:05: 6CE00000         DShowPlugin.dll
18:18:05: 6CDE0000         GraphicsCapture.dll
18:18:05: 6CDC0000         NoiseGate.dll
18:18:05: 6CD10000         PSVPlugin.dll
18:18:05: ------------------------------------------
18:18:05: Adapter 1
18:18:05:   Video Adapter: NVIDIA GeForce GTX 760 (192-bit)
18:18:05:   Video Adapter Dedicated Video Memory: 3154837504
18:18:05:   Video Adapter Shared System Memory: 3977848832
18:18:05:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
18:18:05: =====Stream Start: 2014-02-21, 18:18:05===============================================
18:18:05:   Multithreaded optimizations: On
18:18:05:   Base resolution: 1920x1080
18:18:05:   Output resolution: 768x432
18:18:05: ------------------------------------------
18:18:05: Loading up D3D10 on NVIDIA GeForce GTX 760 (192-bit) (Adapter 1)...
18:18:05: ------------------------------------------
18:18:05: Audio Format: 48000hz
18:18:05: Playback device Default
18:18:05: ------------------------------------------
18:18:05: Using desktop audio input: Speakers (Realtek High Definition Audio)
18:18:05: ------------------------------------------
18:18:05: Using auxilary audio input: Microphone (Realtek High Definition Audio)
18:18:05: ------------------------------------------
18:18:05: Audio Encoding: AAC
18:18:05:     bitrate: 128
18:18:05: ------------------------------------------
18:18:05:     device: (null),
18:18:05:     device id (null),
18:18:05:     chosen type: RGB32, usingFourCC: false, res: 720x480 - 720x480, frameIntervals: 333666-333666
18:18:05:     use buffering: false - 0, fourCC: 00000000
18:18:05:     audio device: AmaRec Audio Capture,
18:18:05:     audio device id (null),
18:18:05: 
18:18:05:     device audio info - bits per sample: 16, channels: 2, samples per sec: 48000, block size: 4
18:18:05: Using directshow input
18:18:05: Scene buffering time set to 700
18:18:05: ------------------------------------------
18:18:05: Video Encoding: x264
18:18:05:     fps: 30
18:18:05:     width: 768, height: 432
18:18:05:     preset: veryfast
18:18:05:     profile: main
18:18:05:     keyint: 60
18:18:05:     CBR: yes
18:18:05:     CFR: yes
18:18:05:     max bitrate: 2000
18:18:05:     buffer size: 1000
18:18:05: ------------------------------------------
18:18:06: Audio timestamp for device 'AmaRec Video Capture' was behind target timestamp by 6881054
18:22:35: Total frames encoded: 8087, total frames duplicated: 14 (0.17%)
18:22:35: Total frames rendered: 8079, number of late frames: 2 (0.02%) (it's okay for some frames to be late)
18:22:36: 
18:22:36: Profiler time results:
18:22:36: 
18:22:36: ==============================================================
18:22:36: video thread frame - [100%] [avg time: 1.164 ms] [children: 31.6%] [unaccounted: 68.4%]
18:22:36: | scene->Preprocess - [24.1%] [avg time: 0.28 ms]
18:22:36: | GPU download and conversion - [7.56%] [avg time: 0.088 ms] [children: 6.01%] [unaccounted: 1.55%]
18:22:36: | | flush - [4.3%] [avg time: 0.05 ms]
18:22:36: | | CopyResource - [1.37%] [avg time: 0.016 ms]
18:22:36: | | conversion to 4:2:0 - [0.344%] [avg time: 0.004 ms]
18:22:36: Convert444Threads - [100%] [avg time: 0.166 ms] [children: 98.2%] [unaccounted: 1.81%]
18:22:36: | Convert444toNV12 - [98.2%] [avg time: 0.163 ms]
18:22:36: encoder thread frame - [100%] [avg time: 0.314 ms] [children: 0.318%] [unaccounted: 99.7%]
18:22:36: | sending stuff out - [0.318%] [avg time: 0.001 ms]
18:22:36: ==============================================================
18:22:36: 
18:22:36: 
18:22:36: Profiler CPU results:
18:22:36: 
18:22:36: ==============================================================
18:22:36: video thread frame - [cpu time: avg 0.167 ms, total 1357.21 ms] [avg calls per frame: 1]
18:22:36: | scene->Preprocess - [cpu time: avg 0.001 ms, total 15.6 ms] [avg calls per frame: 1]
18:22:36: | GPU download and conversion - [cpu time: avg 0.021 ms, total 171.602 ms] [avg calls per frame: 1]
18:22:36: | | flush - [cpu time: avg 0.013 ms, total 109.201 ms] [avg calls per frame: 1]
18:22:36: | | CopyResource - [cpu time: avg 0.001 ms, total 15.6 ms] [avg calls per frame: 1]
18:22:36: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:22:36: Convert444Threads - [cpu time: avg 0.076 ms, total 1232.41 ms] [avg calls per frame: 2]
18:22:36: | Convert444toNV12 - [cpu time: avg 0.074 ms, total 1201.21 ms] [avg calls per frame: 2]
18:22:36: encoder thread frame - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:22:36: | sending stuff out - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
18:22:36: ==============================================================
18:22:36: 
18:22:36: =====Stream End: 2014-02-21, 18:22:36=================================================
 
Ah, I think I see the reason why. It's most likely due to two factors: First factor is possibly because OBS is at 30 fps, and the target is at 29.97 fps, which can cause jitter every once in a while due to capture frame overlap (fixed in the rewrite), and the second problem could be because you're playing a side-scroller, which the h264 codec doesn't always handle very well.
 
So theres not much i can do? i tried matching the targets fps with obs, that helped a little but it's still pretty bad. When i test an RPG it doesn't really look identical to the amarec window either. Is there any way to tweak the x264 codec somehow? What does custom x264 encoder settings do?
 
My last attempt is to enable intel quick sync. I will remove my current graphics card and use the integrated intel card instead.
 
You don't need to remove your graphics card to use QSV, if your motherboard and CPU support it. Just make sure it's enabled in the BIOS, that you have the drivers installed for it, and tick the box in OBS. If it's grayed out there and you've done the rest, you may need to temporarily plug a second monitor into your motherboard's video header (or use a virtual display) to enable the IGP.
 
With the xcapture-1 i can't use both. :P

1koe.png
 
I'd meant in OBS, not the XCAPTURE software. You may not have all the requirements met to enable QSV. Again, need a mobo that supports it, CPU that does, BIOS enabled, drivers installed.
 
Back
Top