我正在寻找有关MLT如何解析时间规范字符串的文档。我看到似乎有两种风格:
我认为 m:s格式的小数点右边的数字是一小部分,即24fps的1.5
意味着36帧而不是29.我&# 39; m寻找权威文件。我在这里找不到答案https://www.mltframework.org/docs/虽然我可以直接看到它。
另外,我很好奇MLT如何将时间规格四舍五入到最近的帧。如果我的剪辑是23.976 fps并且我指定了out=0:10
,那么这可以达到239.76帧。 MLT是向上舍入,向下舍入还是向最接近的整数?
答案 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
冒号分隔符用于分隔不同的单位。此外,分号可用于分隔帧字段以指示丢帧。单位可以从左侧排除。例子: