Does OBS supports VFR (Variable Frame Rate) and how enable it?

leodom

New Member
Hello, I did my best to find a solution or an indication on the forum or elsewhere on internet but all I can find is how to disable variable frame rate, and I would be interested to know how to MAKE OBS record/stream in VFR.

I think most of you know that if OBS it's not perfectly in sync with the source it's capturing, the video will stutter during playback.
So if I want to capture a video game as smooth as possible say at 60fps, I have two options:
1) set the refresh rate of the display to a multiple of 60Hz
2) cap the fps of game to a multiple of 60fps

Two limitation arises:
1)I can't leave the fps as high as my graphics card can handle if I don't want massive stutter in the captured video
2) Free-sync or G-Sync which allow to have smooth experience during gameplay, are not useful for the smoothness of the captured video, because the FPS has to as stable as possible to have a smooth capture, and Variable refresh rate tend to produce the opposite, as less you cap the FPS.

If OBS could produce a video in VFR mode, that should resolve the problem, unless I'm mistaken of course.
I know VFR that could cause issues with editing software, but that is another matter.

So how enable VFR in OBS? I don't find any option in the settings, at least in the version 30.2.2 (the last as I'm writing)

Thank you in advance for the support

 

leodom

New Member
Thanks for your reply.

I really hoped that OBS could capture based on the last frame available along with the time stamp, since I read on a various posts that to have CFR you need to add "force-cfr=1 in the "Custom Muxer Settings" field in the recording tab, so I guessed it could actually support VFR; on other posts I even read that the option I search was under the Output tab in the setting in older versions.

Maybe it could be possible using Custom FFmpeg in the "Type" filed under the output tab.
 

koala

Active Member
Setting muxer or ffmpeg options will not change OBS behavior. To write variable frame rate, OBS must detect the variable clock ticks of the source with the variable frame rate to sync itself to it, then capture with this variable frame rate and process the frame flow through the OBS internals with this variable frame rate. However, this is not how OBS works. OBS will always process frames according to a fixed internal clock you set in Settings > Video > FPS.
 

Suslik V

Active Member
I read on a various posts that to have CFR you need to add ... in the "Custom Muxer Settings" field
What usually reported as VFR by users of OBS is instability of frame duration when it was encoded into a file (most mysterious when converted to other container format mkv -> mp4. In the examples, see: https://obsproject.com/forum/thread...ord-in-constant-frame-rate.148781/post-646594 , deviation can be only about 0.001sec per frame). Frame drops caused by hardware overload are more common on this forum. So, most of the reports comes from instability (hardware/software) rather than from "hidden feature" of OBS.
 

leodom

New Member
Thanks @Suslik V and @koala .
So anyone of you know if there is a way to capture variable fps source without stuttering?
I mean using specific Hardware/Software solutions.
 
Top