[FFmpeg-user] How can I force a 360kHz time base?

Mark Filipak (ffmpeg) markfilipak at bog.us
Fri Feb 26 22:35:16 EET 2021


How can I force ffmpeg to use a 360kHz time base? (I spent 1/2 day searching.)

Thanks!
Mark.


With a 1kHz time base:
65535 = largest 16-bit integer.
0:01:05.535 = longest running time for 16-bit integer with 1kHz time base..
Conclusion: FFmpeg cannot be using 16-bit integers.
16777215 = largest 24-bit integer.
4:39:37.215 = longest running time for 24-bit integer with 1kHz time base.
Conclusion: FFmpeg could use 24-bit integers if time base is capped at 1kHz.

With a 90kHz time base:
16777215 = largest 24-bit integer.
00:03:06.4135 = longest running time for 24-bit integer with 90kHz time base.
Conclusion: FFmpeg cannot be using 24-bit integers.
4294967295 = largest 32-bit integer.
13:15:21.8588[3..] = longest running time for 32-bit integer with 90kHz time base.
24/1.001fps ==> deltaPTS = 3753.75.
24fps ==> deltaPTS = 3750.
25fps ==> deltaPTS = 3600.
30/1.001fps ==> deltaPTS = 3003.
30fps ==> deltaPTS = 3000.
50fps ==> deltaPTS = 1875.
60/1.001fps ==> deltaPTS = 1501.5.
60fps ==> deltaPTS = 1500.
Conclusion: Since 24/1.001fps requires rounding, a 90kHz time base is not optimal.

With a 360kHz time base:
4294967295 = largest 32-bit integer.
3:18:50.464708[3..] = longest running time for 32-bit integer with 360kHz time base.
24/1.001fps ==> deltaPTS = 15015.
24fps ==> deltaPTS = 15000.
25fps ==> deltaPTS = 14400.
30/1.001fps ==> deltaPTS = 12012.
30fps ==> deltaPTS = 12000.
50fps ==> deltaPTS = 7200.
60/1.001fps ==> deltaPTS = 6006.
60fps ==> deltaPTS = 6000.
100fps ==> deltaPTS = 3600.
120/1.001fps ==> deltaPTS = 3003.
120fps ==> deltaPTS = 3000.
Conclusion: A 360kHz time base is optimal, even for 100fps & 120fps.


More information about the ffmpeg-user mailing list