MLT时间规范格式

时间:2018-01-16 21:38:54

标签: video-processing mlt

我正在寻找有关MLT如何解析时间规范字符串的文档。我看到似乎有两种风格:

  • HH:MM:ss.fraction

认为 m:s格式的小数点右边的数字是一小部分,即24fps的1.5意味着36帧而不是29.我&# 39; m寻找权威文件。我在这里找不到答案https://www.mltframework.org/docs/虽然我可以直接看到它。

另外,我很好奇MLT如何将时间规格四舍五入到最近的帧。如果我的剪辑是23.976 fps并且我指定了out=0:10,那么这可以达到239.76帧。 MLT是向上舍入,向下舍入还是向最接近的整数?

1 个答案:

答案 0 :(得分:1)

这里有时间格式的解释: https://www.mltframework.org/blog/time_properties/

您的理解是正确的。如果有一个小数点,它表示几分之一秒,并将转换为您描述的帧。

MLT使用lrint将秒数舍入到帧: https://github.com/mltframework/mlt/blob/master/src/framework/mlt_property.c#L334

lrint的默认模式是"舍入到最近的"。

其他信息:

MLT还可以解析SMPTE时间码。时间码从右到左解析,最右边的值是帧: https://github.com/mltframework/mlt/blob/master/src/framework/mlt_property.c#L377

冒号分隔符用于分隔不同的单位。此外,分号可用于分隔帧字段以指示丢帧。单位可以从左侧排除。例子:

  • FFFFFFF - 仅限框架(这可以是您想要的大小)
  • SS:FF - 秒和帧(非丢帧)
  • HH:MM:SS:FF - 小时,分钟,秒,帧(非丢帧)
  • HH:MM:SS; FF - 小时,分钟,秒,帧(丢帧)