View Full Version : 60062/1001 fps ?


XanaMuui
10th March 2016, 15:03
Hi,

I'm trying to encode at 60 fps for the first time and while enconding using x264 I get this information:

ffms [info]: 1280x720p 0:1 @ 60062/1001 fps (vfr)
resize [warning]: converting from rgb24 to yuv420p
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSEMisalign LZCNT
x264 [info]: profile High, level 4.0

Where did that value for the fps came from? The original video is in 60 fps.

Stream #0:0: Video: lagarith (LAGS / 0x5347414C), rgb24, 1280x720, 360658 kb/s, 60 fps, 60 tbr, 60 tbn, 60 tbc
Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s

this are the commands passed to x264:
--crf 18 --profile high --preset placebo --tune film --qpmin 12 --vbv-maxrate 6000 --vbv-bufsize 6000 --output "E:\test_done.mp4" "E:\test_done.avi"

Is that fps normal or is it a bug? Because after the enconding MPC file info shows 60.002 fps.

kabelbrand
10th March 2016, 20:02
That might be an issue with your source file. It's recognised as variable frame rate (vfr) instead of cfr too.

Just add --fps 60/1 to your command line and the encode will be 60fps exactly.

XanaMuui
10th March 2016, 21:23
Thanks however even adding the "--fps 60/1" it still shows the same but now with cfr

ffms [info]: 1280x720p 0:1 @ 60062/1001 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSEMisalign LZCNT
x264 [info]: profile High, level 5.0

EDIT: Nevermind. It says that however the resulting file now is 60fps, not 60.002 fps. Weird little glitch. I'm going to make some more tests just to make sure.

kabelbrand
10th March 2016, 21:54
That's alright, the --fps option also implies --force-cfr and the ffms info line just displays how the input is interpreted.

foxyshadis
12th March 2016, 01:34
Thanks however even adding the "--fps 60/1" it still shows the same but now with cfr



EDIT: Nevermind. It says that however the resulting file now is 60fps, not 60.002 fps. Weird little glitch. I'm going to make some more tests just to make sure.

60/1 is wrong, you want 60000/1001, or the audio will slowly go out of sync. That's assuming it's actually pure 60fps and the framerate was just slightly shifted to make the video track the same length as a slightly shorter audio track.

colours
19th March 2016, 12:27
Roughly speaking, FFMS tries to automatically round frame rates to "nice" numbers, and it considers fractions with denominator 1001 "nice" because NTSC uses frame rates like 24000/1001, 30000/1001 and 60000/1001. However, sometimes the automatic detection goes wrong for whatever reason and you get weird stuff like 60062/1001, which probably should have been exactly 60 fps instead.

Or is there a reason for you to believe that it really should be 60.002 fps?

Also, if you're obsessed about quality, you should do the colourspace conversion outside of x264 (Dither_convert_rgb_to_yuv in AviSynth, or z in Vapoursynth) rather than letting x264 delegate it to swscale, since swscale is not exactly known for being very high-quality.