Question / Help Video Capture Device problems (Windows 7, GV-USB2)

SA2033

New Member
Hello, I'll get right to the point.

Using Video Capture Device to add my GV-USB2 as a source in OBS, I'm running into some severe issues no matter what I do.

I'm Capturing at 720x480@30FPS with the Retro mode deinterlacing enabled, which restores the video to the proper 240p@60FPS and line doubles it back to the same vertical height. (Retro deinterlacing isn't actually deinterlacing/interpolation, but field-separation which converts the two interlaced fields in each frame into separate frames. This device merely outputs the 60 progressive frames in an interlaced format, for whatever reason.)

Issues:
1. If I ENABLE buffering the video looks perfect, however an increasing delay steadily builds over time. It would be no issue if the delay were constant, but it's impossible to sync anything as the delay starts out at ~100ms, becomes ~500ms within a few minutes, then eventually several seconds after a half hour and so on. Maybe the buffer size is growing indefinitely, but I have been unable to find anywhere to manually set or limit the buffer size in modern versions of OBS.

2. If I DISABLE buffering, there is no delay of course, but there is a lot of juddering/frame skipping. Several frames seem to get skipped every X frames, so the motion is smooth while it's happening, but seems to "stop and go." This is an exaggeration, but imagine 60 frames playing smoothly, then 10-20 frames being skipped suddenly, then 60 smooth frames again, and so on. The rate of this happening seems to be constant rather than random, also.

I would like to emphasise that there are no frames being dropped in rendering or encoding according to the stats window, and the deinterlacing is correctly set to Top Field First.

I have to wonder if these issues might be caused by OBS incorrectly treating the source as if it were still 30 FPS even after it's been Field Separated to 60 FPS by the Retro deinterlacing mode.

The only alternatives I've found are using AmarecTV which has several other issues, or rendering my device with a media player and capturing that using Game Capture. Both of these options reduce quality and are more resource-intensive, so I would really like to avoid them.

Also, it may be worth noting that the delay issue is somewhat there when using a media player to render, however it quickly builds to a maximum of (almost exactly) 500ms within a minute or so, making it easy to sync up. Amarec mysteriously has such a low amount of delay that I could even play games using the Amarec window without much trouble.

Any insights?
 

carlmmii

Active Member
I really wish the amarec solution was a reliable method, but I'm sure you've run into the exact same issues I always run into getting it to work (prioritization, 32-bit vs 64-bit, crashes, etc).

The best advice I can give you is to use yadif (2x) instead of retro, and just leave the capture unbuffered. That should at least keep the latency in check, and the yadif (2x) method should be smart enough to work through any frame skips. If you end up with periodic field shifting using this, you could try adding a filter to resize down to 720x240 with nearest neighbor, then scale back up to 720x480.

Just a side-check, could you post a log file of a recent recording attempt? Just want to be able to verify some things that may be overlooked.
 

SA2033

New Member
Not sure if this is the right log, but here.

I tried out yadif really quick, but it's definitely still extremely jerky without buffering, and I can't really accept the huge quality loss compared to Retro mode anyways.
 

Attachments

  • 2019-05-11 05-03-55.txt
    12.5 KB · Views: 49

Stiverson

New Member
I Spent heaps of hours trying to find this solution. Messed with everything, but couldn't solve it. I'm pretty sure it has something to do with the way the gv-usb2 comes in through the port. Amarec works perfectly because it reads the actual framerate being recieved (it's not constant) for whatever reason obs doesn't allow it this. They use a strict framerate.

My technological skill is marginal at best, but I'll tell you what i think happens. When buffering is enabled it waits for all 30 fps to come in and gives you smooth looking capture. Since it handles the audio correct it's going to constantly be moving ahead of the video feed. I just sucked it up and used amarectv. Still wish I could use OBS directly and would love if developers solved this issue that amarec and vmix solved so long ago. I could be completely wrong about this but it is quite frustrating seeing as the solution is out there but every answer i've seen from devs state that usb2 devices can't work with obs, but don't state the reason.

As for the yadif (2x) it 100% does not solve this issue for me. I attempted every combination of de-interlacing. I will say this, not sure what system you are capturing, but if you capture SNES, in theory the delay will be slower over time (as the snes framerate is actually 60.04xxxxxx or something) if you set the video capture device to 60 instead of 30. Let me know if you come up with a solution! hate to be the bearer of bad news. But don't want you to go through the agony of what i did.
 

Sichvot

New Member
Have you tried to disable the windows Game Mode and Game Bar?

Start..
Settings..
Gaming..
Turn Off Game Bar..
On the side bar click "Game Mode"
Turn Off Game Mode..

This stops background processes (like OBS) from being crippled by windows while trying to game.

Hopefully this helps.
 
Top