Remux changes framerate?


I'm recording at a fixed FPS (.mkv 30 FPS) and when I remux, OBS changes the file to a variable framerate (.mp4) file. Lightworks requires a fixed framerate (and the free version is quite limited to file formats). Thus, I have to use some third party program to do the conversions - which I'd prefer to not have to do. The other option (I suppose) is to record direct to .mp4 - but again, I'd prefer to not have to do that.

I'm wondering why doing the remuxing is changing the framerate type (from fixed to variable).

As some feedback (and perhaps a request), it would be nice if we could have an option (checkbox?) to enable something like "Keep original framerate".


Forum Admin
Remuxing doesn't change the underlying h.264 video file. Remuxing takes the video file and the AAC audio file and moves it from a MKV container to an MP4 container, which is why it is so quick.

How are you checking the framerate before and after the conversion?


Here's some clips from the program:

From an .mkv file:
Frame rate mode : Constant
Frame rate : 30.000 FPS

From the remuxed .mp4 file:
Frame rate mode : Variable
Frame rate : 30.000 FPS
Minimum frame rate : 29.425 FPS
Maximum frame rate : 1 024.000 FPS


Actually, I'm now wondering how OBS is saving my .mkv file. Doing some more editing today and Windows explorer (bear with me here) is reporting that my .mkv files are 1000 FPS files. EyeFrame is saying that my files (when I import them) are 1000 FPS files (the "Rate" column initially says 1000 for each of the files I drop into it). MediaInfo says they're 30 FPS Constant files. I'm wondering if somehow OBS is saving the files as constant framerate files but somehow writing some "codec header" info saying they're variable rate files.
More info from various programs:
  • While playing in VLC it reports under Codec information "Frame rate: 1000" (it doesn't seem to report "live" info)
  • MPC-HC (x64) shows pretty much 30 FPS (+0.100/-0.005 ish) live while playing
  • ffprobe (from ffmpeg site) reports the .mkv file as 1k fps, report follows:
Input #0, matroska,webm, from 'test.mkv':
ENCODER : Lavf57.84.100
Duration: 00:00:00.97, start: 0.000000, bitrate: 375 kb/s
Stream #0:0: Video: h264 (High), yuvj420p(pc, progressive), 1280x720, 1k fps, 60 tbr, 1k tbn, 60 tbc (default)
DURATION : 00:00:00.966000000
Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (default)
title : Track1
DURATION : 00:00:00.789000000
That was on a 1 second test file I made (purely for the small file size), but it reports the same on a 1 hour 23 minute video I made yesterday as well.

Something isn't being written correctly to the .mkv files methinks.