1

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

  • hh:mm:ss.分数
  • 框架

认为m:s 格式中小数点右边的数字是几分之一秒,即1.524fps 表示 36 帧而不是 29 帧。我正在寻找权威文档。我在这里没有看到答案https://www.mltframework.org/docs/虽然我可能正在看它。

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

4

1 回答 1

2

这里有时间格式的解释: 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 - 时、分、秒、帧(丢帧)
于 2018-01-17T14:22:16.140 回答