OBS 29.1 not capturing true 50fps from AVerMedia BU110 HDMI capture device

RicRoller

New Member
An issue that seems to be a limitation of OBS Studio's "Video Capture Device" source...
  • I am attempting to make a recording from a Panasonic SD700E camcorder (HDMI output 1920x1080 @ 50fps progressive) via an AVerMedia "ExtremeCap UVC" (BU110) device
  • The AVerMedia device (unlike many cheap USB-connected HDMI capture devices) is capable of having its capture frame rate set via the DirectShow interface API
  • Although in the definition of the source in OBS I explicitly set 50fps as the capture frame rate, this does not appear to be passed to the device
  • The effect is that the recorded video when played is not perfectly smooth, and when stepped frame-by-frame in a media player shows periodic skips and duplicated frames. But it is reported by MediaInfo as being exactly 50.000fps

So what I am fairly sure is happening is:
  • OBS Studio does not appear to pass any instruction to set the frame rate of the AVerMedia capture device when it issues the DirectShow command(s) to open it.
  • So the capture device operates at its default of 60fps (so duplicate frames will be presented to OBS Studio)
  • OBS Studio then appears simply to "decimate" (throwing away the surplus frames) to get back to the 50fps that I set in the source's settings
  • The rest of the processing and the recording is performed at 50fps - but the damage is already done!
I have attached a log file of a session where I started OBS Studio, made a short recording and shut it down, together with screenshots of the source setting and the output and video settings

PC: Windows 11 Pro 22H2 (hardware independent (happens on three different PCs))
OBS version: 29.1.0 (64 bit)

Is this simply a bug, or is there some advanced setting or another way to open a DirectShow capture device and pass in a parameter to override the device default frame rate (such an override is possible if using VLC Player, FFMPEG or AVerMedia's own capture app)

Thanks,
Richard
 

Attachments

  • 2023-05-08 20-15-19.txt
    16.1 KB · Views: 5
  • Capture device properties.jpg
    Capture device properties.jpg
    97.7 KB · Views: 26
  • OBS settings - output.jpg
    OBS settings - output.jpg
    101 KB · Views: 27
  • OBS settings - video.jpg
    OBS settings - video.jpg
    49.6 KB · Views: 26

RicRoller

New Member
Found a solution (or workaround...) - manually enable buffering in the source's properties.
  • No improvement after installing the latest 29.1.1 update patch
  • I observed that if I deactivated and reactivated the AVerMedia capture device source and then immediately started recording, it would work correctly for a while (true 50fps capture with no decimation (skipped/duplicated frames)
  • But after a random time (usually around 1 or 2 minutes) the issue would return mid-recording; the decimation started up again (less than perfect smoothness of playback, skipped/duplicated frames if stepping frame-by-frame)
  • I tried manually changing the items in the source properties one by one (where they were listed as "Default" or "Auto-detect")
  • "Buffering" was initially set at its default from when the source was added ("Auto-detect"); for the AVerMedia device OBS chose to turn buffering OFF
  • Manually setting "Buffering" to "Enabled", a true 50fps recording was obtained with no decimation etc.)
So there appears to be some quirk/bug in how OBS Studio fetches the video from the AVerMedia device that causes it to revert to its default 60fps; enabling the buffering appears to hide it!

Screen-grab of "working" source properties attached
 

Attachments

  • Capture device properties - working (with buffering).jpg
    Capture device properties - working (with buffering).jpg
    62.7 KB · Views: 44
Top