MLT时间规范格式
MLT time specification format
我正在查找有关 MLT 如何解析时间规范字符串的文档。我看到的似乎是两种样式:
- hh:mm:ss.fraction
- 帧数
我认为m:s格式小数点右边的数字是秒的几分之一,即1.5
在24fps时表示36帧而不是 29。我正在寻找权威文档。我在这里没有看到答案 https://www.mltframework.org/docs/ 虽然我可能正在浏览它。
另外,我很好奇 MLT 如何将时间规格舍入到最近的帧。如果我的剪辑是 23.976 fps 并且我指定 out=0:10
,则计算结果为 239.76 帧。 MLT 是四舍五入、四舍五入还是四舍五入到最接近的整数?
这里有时间格式的解释:
https://www.mltframework.org/blog/time_properties/
您的理解是正确的。如果有小数点,它表示秒的小数部分,并会按照您的描述转换为帧。
MLT 使用 lrint 将秒舍入为帧:
https://github.com/mltframework/mlt/blob/master/src/framework/mlt_property.c#L334
lrint 的默认模式是 "round to nearest"。
附加信息:
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 - 时、分、秒、帧(掉帧)
我正在查找有关 MLT 如何解析时间规范字符串的文档。我看到的似乎是两种样式:
- hh:mm:ss.fraction
- 帧数
我认为m:s格式小数点右边的数字是秒的几分之一,即1.5
在24fps时表示36帧而不是 29。我正在寻找权威文档。我在这里没有看到答案 https://www.mltframework.org/docs/ 虽然我可能正在浏览它。
另外,我很好奇 MLT 如何将时间规格舍入到最近的帧。如果我的剪辑是 23.976 fps 并且我指定 out=0:10
,则计算结果为 239.76 帧。 MLT 是四舍五入、四舍五入还是四舍五入到最接近的整数?
这里有时间格式的解释: https://www.mltframework.org/blog/time_properties/
您的理解是正确的。如果有小数点,它表示秒的小数部分,并会按照您的描述转换为帧。
MLT 使用 lrint 将秒舍入为帧: https://github.com/mltframework/mlt/blob/master/src/framework/mlt_property.c#L334
lrint 的默认模式是 "round to nearest"。
附加信息:
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 - 时、分、秒、帧(掉帧)