How to set OBS to record in constant frame rate?

Originals37

New Member
Hi, as some of you probably know working with variable frame rate in software like premiere pro can be quite annoying.

Is there any way how to set OBS to record in CFR (constant frame rate) instead of VFR (variable frame rate)?

I have tried to look in settings but couldn't find anything.
 
Obs tries to record at a set framerate, which is set through Video > Settings.

It may be unable to constantly record it if your system is under too much load when playing a game, and dropping frames, but that should be noticeable when recording/streaming.
 

FerretBomb

Active Member
Normally issues in Premiere come from people ignoring the DO NOT RECORD TO MP4 warning that pops up whenever it's selected.
It's there for a reason.
Premiere hates the mp4 files that OBS creates. Most video editing suites do.
Record to MKV if you need multi-track audio, or FLV if you do not. Then REMUX to MP4 from OBS' File menu, Remux Recordings. It takes seconds, and Premiere actually works nicely with remuxed mp4 files.
 

Originals37

New Member
Normally issues in Premiere come from people ignoring the DO NOT RECORD TO MP4 warning that pops up whenever it's selected.
It's there for a reason.
Premiere hates the mp4 files that OBS creates. Most video editing suites do.
Record to MKV if you need multi-track audio, or FLV if you do not. Then REMUX to MP4 from OBS' File menu, Remux Recordings. It takes seconds, and Premiere actually works nicely with remuxed mp4 files.
That is exactly what I am doing... I asked about constant frame rate.
 

ChainsawMan

New Member
This issue was reported in 2020 with OBS 26, they still didn't fix it. https://github.com/obsproject/obs-studio/issues/3466
In order for you to fix it, don't remux with OBS and remux with Shutter Encoder. Select Ext. as .mp4 and type in choose function:
ffmpeg -map 0 -c copy -video_track_timescale 60
Since Premiere Pro has issue with .mp4 files being longer, you can either replace .mp4 to .mpg or extract audio and video files with Shutter Encoder and link them in Premiere.
Single Audio .m4a
ffmpeg -c:a copy -vn
Multiple Audio .m4a
ffmpeg -map 0 -c copy -vn
Video .mp4
ffmpeg -c:v copy -an -video_track_timescale 60

If you don't want to do this, then you need to wait for this issue to be fixed or use OBS 25.
 

pkellner

New Member
Sorry to revive this thread, but I'm having the same issue with Premiere Pro and Adobe tells me there is not way to make OBS solve the problem. I notice I'm on OBS 27 and this post says something about OBS 25 having a fix.

I gather that I need to produce constant frame rate files. What's the best way to make that happen with OBS 27 now?
 

DayGeckoArt

Member
Normally issues in Premiere come from people ignoring the DO NOT RECORD TO MP4 warning that pops up whenever it's selected.
It's there for a reason.
Premiere hates the mp4 files that OBS creates. Most video editing suites do.
Record to MKV if you need multi-track audio, or FLV if you do not. Then REMUX to MP4 from OBS' File menu, Remux Recordings. It takes seconds, and Premiere actually works nicely with remuxed mp4 files.

If you use NVENC HEVC there's no option to record to MKV
 

PhreakGirl

New Member
Sorry to revive this thread, but I'm having the same issue with Premiere Pro and Adobe tells me there is not way to make OBS solve the problem. I notice I'm on OBS 27 and this post says something about OBS 25 having a fix.

I gather that I need to produce constant frame rate files. What's the best way to make that happen with OBS 27 now?

I use HandBrake to convert video / audio to Constant Frame rate. It's quick, easy & free.
 

prantikv

New Member
@Originals37 were you able to find a solution to this? I am recording in mkv and then remuxing to mp4 and get the clip mismatch warning in premiere pro. Searching the same is there a way set vfr to cfr?
 

travissickle

New Member
@Originals37 were you able to find a solution to this? I am recording in mkv and then remuxing to mp4 and get the clip mismatch warning in premiere pro. Searching the same is there a way set vfr to cfr?
In searching for an answer, I'm told that adobe will blame video formats not working on the vfr, however, if you search you'll also find that the detection of vfr for premiere pro is not accurate.

I think the issue comes from the REMUX of the MKV file. However, I'm not sure how accurate this is or if there is a real fix.
 

Nathaniel_Wu

New Member
This issue was reported in 2020 with OBS 26, they still didn't fix it. https://github.com/obsproject/obs-studio/issues/3466
The issue and a follow-up issue have all been closed, but the problem still persists, no options within OBS could resolve it. Maybe it's no longer a problem for Premiere, but it still is for Final Cut Pro.
The `-video_track_timescale` option for ffmpeg resolved the issue for me. Remuxing is a bit annoying and not perfect, because the output is somehow not strictly 0% VFR for me (which can be checked using the `-filter:v vfrdet` option with ffmpeg), but the VFR rate is low enough that the impact is minimal in the editing software. Also for some reason the remuxed footage shows up as 60fps in Final Cut Pro instead of 59.94fps which is what I set in OBS and ffmpeg.
 

Nathaniel_Wu

New Member
@Nathaniel_Wu reason why variable frame rate appeared in the mp4 files of OBS was explained in (you need to read whole thread):
I'm sure there's a good reason for it to happen and for OBS to keep it this way, but the issue it causes with video editing software is also real. I just needed a fix to my video files so I could edit them with the correct frame timing.
 

Suslik V

Active Member
@Nathaniel_Wu the "frame timing" is correct. I think, it is even more "correct" than you expect. It is more about the time jitter between the frames or frame length. Frame taken at specific time should be displayed at exactly same time (technically, on display, player should display frames with this recorded time jitter). In other words, frame (or in general, the "sample") taken 1 ms later should be displayed (played back) 1 ms later too. By rounding deltas, you physically "moving" timestamps of the displayed frames while each of these frames should be displayed at slightly different times. This rounding breaks smoothness of the original flow (recorded move of the object). But if the deltas variations are insignificant - just ignore it. Here, less precise deltas - are a suitable workaround.

If your issue has different origin, you can report it: https://github.com/obsproject/obs-studio/issues
 

Nathaniel_Wu

New Member
@Nathaniel_Wu the "frame timing" is correct. I think, it is even more "correct" than you expect. It is more about the time jitter between the frames or frame length. Frame taken at specific time should be displayed at exactly same time (technically, on display, player should display frames with this recorded time jitter). In other words, frame (or in general, the "sample") taken 1 ms later should be displayed (played back) 1 ms later too. By rounding deltas, you physically "moving" timestamps of the displayed frames while each of these frames should be displayed at slightly different times. This rounding breaks smoothness of the original flow (recorded move of the object). But if the deltas variations are insignificant - just ignore it. Here, less precise deltas - are a suitable workaround.
What I meant is that I need recordings to show up in video editing software in a CFR fashion. I'm aware that the timestamps are more physically correct with the current way in OBS, but it just doesn't help anyone who wants to edit the recordings with Premiere Pro and Final Cut Pro, which expect strict CFR video and don't work well with VFR videos. If you import VFR videos recorded by OBS into them, some frames will appear duplicated and some will be inaccessible. These software are closed-source and unlikely to change their design anytime soon.
I'm not asking you or anyone else to change the OBS design, and I was just trying to help someone else by confirming that the solution @ChainsawMan posted still works, because others will have the same problem and may find this post when they search for solutions.
 

jasone

New Member
go to OBS settings >> output >> recording >> advanced >> and add 'force-cfr=1' to the custom muxer. Premiere Pro may still show VFR but this is may fix the issue.
How does one know to type this in a box. Did you make it up? Geez....it works. Thanks.
 
Top