VRR (G-Sync/FreeSync) support?

Rob Ainscough

New Member
I've read conflicting information about OBS Studio supporting VRR (Variable Refresh Rates). I'm using an Elgato 4K Pro MKII PCIe capture card (with VRR pass-thru support to G-sync monitor) in a separate PC and my output computer has G-sync enabled. It's my understanding that OBS can record a VRR signal to a constant rate (say 30 or 60 FPS) MP4 ... it just samples the image input and writes to whatever format is defined (essentially sampling the video signal).

Since nVidia's own recording software (nVidia app) can record regardless of G-sync settings to a file and it will output correctly (no frame missing/skipping), I would assume OBS on a separate PC could do that same?

Could someone give me a definitive yes or no on the VRR recording ability of OBS Studio?

Thanks, Rob.
 
No takers? So no one has tried to recording a Gsync/FreeSync video signal thru Elgato 4K Pro MKII using OBS Studio? I thought G-Sync/FreeSync was a pretty common usage for gamers and those recording gamers?
 
That wasn't my question, can OBS Studio record a signal that is VRR. I know the Elgato 4K Pro MKII can passthru a VRR signal but can OBS Studio record it? I know it needs to be converted to a constant frame rate, but can OBS do that when the original signal source is VRR?
 
No. If the frame is too late then previous frame will be duplicated.

VRR (Variable Refresh Rate) only exist to fit to VFR (Variable Frame Rate) source. Likely, other tools simply records VFR. Sometimes you can round the timestamps, so, effectively, the VFR video may report CFR (Constant Frame Rate), See for example: https://obsproject.com/forum/thread...rd-in-constant-frame-rate.148781/#post-544114 . But in this case the frames likely were rendered (by the source) at different times, so image slightly differs (moving object shifted more, so should be displayed later - and all players do this on playback of such videos; but when you wish to combine it with other CFR videos, in editor, then no go, you need to either insert intermediate frame or live with the perception of not so smooth motion).
 
I found this older thread here:

Which went unanswered in final question ... here is what I think "might" work (or should work, don't know if OBS will be able to sample:

In game: VRR enabled set max FPS to 40 (LG supports VRR from 40-144 Hz)
Monitor: VRR enabled
Windows 11: VRR enabled
nVidia: enable VRR window and full screen

Output to separate PC with Elgato 4K Pro MKII and run the VRR passthru to LG GSync monitor.

In OBS, set recording FPS to 30 output to CFR.
 
I found this older thread here:

Which went unanswered in final question ... here is what I think "might" work (or should work, don't know if OBS will be able to sample:

In game: VRR enabled set max FPS to 40 (LG supports VRR from 40-144 Hz)
Monitor: VRR enabled
Windows 11: VRR enabled
nVidia: enable VRR window and full screen

Output to separate PC with Elgato 4K Pro MKII and run the VRR passthru to LG GSync monitor.

In OBS, set recording FPS to 30 output to CFR.
I think there's a fundamental misunderstanding, but let's see if we can get on the same page.

Factually, OBS is constant framerate (CFR) throughout. The compositing of frames is on a constant cadence, and sources themselves are programmed from the perspective of a constant framerate (async sources are a little different, but ultimately these are "sampled" as you say to the CFR of the rest of the pipeline, to hand-wave it a bit).

If you take a variable framerate (VFR) source and try to make it CFR, it requires making a decision on how to do that. Typically and effectively in OBS, it simply grabs the "most recent" frame when it needs to, at the CFR cadence.

What variable refresh rate (VRR) looks like also follows this principle. For example, Display Capture of a VRR display is ultimately sampled for CFR in OBS.

Now, the capture card. This is where I've looked into more than the average person (by a lot), and I suppose I'll focus on the DirectShow Windows APIs specifically (what is used in OBS for Video Devices sources on Windows). While DShow isn't inherently CFR, again, OBS still is. Same goes for UVC devices to my understanding (i.e. what many Elgato capture cards are). However, you'll find quite often that the way webcams and capture devices are implemented is to deliver CFR, essentially.

Bringing this closer to home, I have an Elgato 4K X. It also supports VRR passthrough. But as far as I know, the drivers for it provide absolutely no way to capture VFR -- it'll always sample the closest frame for CFR at the requested frame rate. I couldn't find any capture card that supports VFR capture (and trust me, I wanted to lol)

So you have two things fundamentally working against you capturing true VFR. First, OBS only supports CFR output, and is designed as such throughout. Second, while your capture card supports VRR passthrough, it only supports CFR capture (unless everyone, including Elgato themselves, have somehow misunderstood their device's capabilities).

Ultimately, when you take VRR output from a PC and capture it with the capture card, it is still CFR. The only reason the Nvidia App is different (it can record VFR) is because it has all the timing information and frames available to it and is designed that way. Even if you record with the Nvidia App on the PC that the capture card is connected to, you don't have any VFR source. Normally, it captures a game running locally, and thus has variable framerate. But the capture card only effectively captures as CFR, so there's no VFR to display for the Nvidia App to capture as VFR.

That was a lot of words... I hope that clears things up, but let me know if it does or doesn't!

P.S. the way some apps "simulate" VFR/VRR is via much-higher rates. If you run a game that fluctuates between, say, 40-90fps but record at 240fps CFR, it's still not VFR but the high rate allows better alignment of the lower frame rates (albeit while duplicating many frames and still sightly misaligning them, ultimately). Similarly, if I recall correctly, Moonlight+Sunshine (local game streaming apps) can do something like this too as a "poor man's VFR", I believe that was their wording in the settings.
 
Back
Top