Code:General Format : Matroska Format version : Version 4 File size : 4.65 GiB Duration : 1 h 59 min Overall bit rate : 5 588 kb/s Frame rate : 59.940 FPS Writing application : Lavf61.7.100 Writing library : Lavf61.7.100 ErrorDetectionType : Per level 1 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L3.2 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, Reference frames : 4 frames Codec ID : V_MPEG4/ISO/AVC Duration : 1 h 59 min Bit rate mode : Constant Nominal bit rate : 6 872 kb/s Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 59.940 (60000/1001) FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.124 Time code of first frame : 05:00:01;16 Writing library : AVC Coding Default : Yes Forced : No Color range : Limited VENDOR_ID : [0][0][0][0] Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : A_AAC-2 Duration : 1 h 59 min Channel(s) : 2 channels Channel layout : L R Sampling rate : 48.0 kHz Frame rate : 46.875 FPS (1024 SPF) Compression mode : Lossy Language : English Default : Yes Forced : No VENDOR_ID : [0][0][0][0]Code:ffmpeg -i source.mkv -c:a copy -c:v copy output.mp4Where is the text coming from? Why does the frame rate change?Code:General Format : MPEG-4 Format profile : Base Media Codec ID : isom (isom/iso2/avc1/mp41) File size : 4.66 GiB Duration : 1 h 59 min Overall bit rate mode : Constant Overall bit rate : 5 598 kb/s Frame rate : 53.389 FPS Tagged date : 2026-02-16 14:37:30 UTC Writing application : Lavf61.9.102 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L3.2 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, Reference frames : 4 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 1 h 59 min Bit rate mode : Constant Bit rate : 5 471 kb/s Nominal bit rate : 6 872 kb/s Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Frame rate mode : Variable Frame rate : 53.389 FPS Minimum frame rate : 0.006 FPS Maximum frame rate : 62.500 FPS Original frame rate : 59.940 (60000/1001) FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.111 Time code of first frame : 05:00:01;16 Stream size : 4.55 GiB (98%) Codec configuration box : avcC Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : mp4a-40-2 Duration : 1 h 59 min Bit rate mode : Constant Bit rate : 112 kb/s Channel(s) : 2 channels Channel layout : L R Sampling rate : 48.0 kHz Frame rate : 46.875 FPS (1024 SPF) Compression mode : Lossy Stream size : 95.1 MiB (2%) Language : English Default : Yes Alternate group : 1 Text #1 ID : 1-CC1 Format : EIA-608 Muxing mode : SCTE 128 / DTVCC Transport Muxing mode, more info : Muxed in Video #1 Duration : 1 h 59 min Start time (commands) : 5124095 h Bit rate mode : Constant Stream size : 0.00 Byte (0%) Text #2 ID : 1-CC3 Format : EIA-608 Muxing mode : SCTE 128 / DTVCC Transport Muxing mode, more info : Muxed in Video #1 Duration : 1 h 59 min Start time (commands) : 5124095 h Bit rate mode : Constant Stream size : 0.00 Byte (0%)
+ Reply to Thread
Results 1 to 10 of 10
-
-
This happens for the mp4/mov container only.
The reason is, that the timebase is not exactly divisible by the frame rate.
You can fix this with clever FFmpeg-GUI.
Load your mp4, extract streams, check the video stream only, click extract, set raw stream.
Load the created .h264 raw stream, you'are asked for the framerate, enter 59.94
The file is streamcopied to a new mp4 file and automatically loaded.
Click multiplex, drag your original mp4 into, on the left deselect it's videostream only (all other streams should be selected), set mp4 as container and click multiplex.
Done.Last edited by ProWo; 16th Feb 2026 at 09:27.
-
Your source is mkv. MKV muxing is not lossless and strips some values that ffmpeg needs to mux back to MP4. Since ffmpeg does not have the information, it has to calculate it causing the variable framerate. It comes out variable due to the different time base calculations.
If you have access to VideoReDo, perform a Quick Stream Fix on the mkv with mp4 output and it will be constant framerate.
Or you can add this to the ffmpeg command:
but you may need to rebuild the raw elementary streams.Code:-fps_mode cfr -r 60000/1001
See here:
https://forum.videohelp.com/threads/405114-ffmpeg-MKV-to-MP4-without-rencode-makes-out...-rate-variable
The text is closed captions. They are embeded in the video and were always there. You just did not see it in the mkv container. -
Try opening your MP4 with MKVToolNix GUI and remuxing it as an MKV. You'll probably find MediaInfo no longer says it's VFR. If so, it's just a timebase issue for MP4s and nothing to worry about.
Avisynth functions Resize8 Mod - Audio Speed/Meter/Wave - FixBlend.zip - Position.zip
Avisynth/VapourSynth functions CropResize - FrostyBorders - CPreview (Cropping Preview) -
That gets me the same VFR output. Which makes even less sense.
I want an MP4, not an MKV. I'm trying to pull the clip into Adobe Premiere, which doesn't support MKV or, I'm assuming, VFR, as the sync is completely screwed and parts of it play out in slow motion. -
I suggested remuxing as an MKV simply as a test, as MKVToolNix saves statistic tags to the MKV that MediaInfo can read, rather than having to guess. Although MediaInfo reporting this for your MKV seems somewhat odd:
Time code of first frame: 05:00:01;16
I'd try remuxing the original MKV as another MKV with MKVToolNixGUI, while specifying a default FPS for the video stream of 60000/1001p. Also check the "fix bitstream timing info" option. If the new MKV plays okay and the audio is in sync, try remuxing it as an MP4 instead.Avisynth functions Resize8 Mod - Audio Speed/Meter/Wave - FixBlend.zip - Position.zip
Avisynth/VapourSynth functions CropResize - FrostyBorders - CPreview (Cropping Preview) -
None of the above suggestions got me a CFR file. clever-ffmpeg and demuxing to .264 then remuxing both got me a VFR file with the frame rate varying between 59.940 and 59.943, which is at least small enough that I'm not seeing sync issues in Adobe.
-
There is another possibility to fix your vfr mp4 to cfr in clever FFmpeg-GUI.
Load your mp4, click lossless changes, check the "Fix time stamps" option.
If here your video is shown as 23.976 fps then click fix.
The new created mp4 video should be constant framerate.
[Attachment 91246 - Click to enlarge] -
If it's truly variable frame rate and you change it to CFR, obviously the audio will go out of sync no matter what container type it's in or what program you use to play it. If it stays in sync, I'd be guessing you can remux the new CFR MKV as an MP4 instead to see how Premier copes with it.
Avisynth functions Resize8 Mod - Audio Speed/Meter/Wave - FixBlend.zip - Position.zip
Avisynth/VapourSynth functions CropResize - FrostyBorders - CPreview (Cropping Preview)
Similar Threads
-
ffmpeg MKV to MP4 without rencode makes output frame rate variable?
By Anonymous543 in forum Newbie / General discussionsReplies: 26Last Post: 1st May 2024, 17:05 -
Samsung s23 ultra variable frame rate
By voihavideo in forum Newbie / General discussionsReplies: 2Last Post: 6th Mar 2024, 15:15 -
How to record a frame rate variable video?
By Pablo Muņoz in forum Newbie / General discussionsReplies: 3Last Post: 18th Sep 2023, 08:24 -
Audio and Video sync issues with both Constant and Variable Frame Rate
By atomicBRblaster in forum Video ConversionReplies: 6Last Post: 12th Apr 2023, 14:29 -
FFmpeg best method for frame rate adjustment?
By Anonymous543 in forum Newbie / General discussionsReplies: 7Last Post: 10th Apr 2022, 17:23



Quote