时间单位(微秒)
cutcli 中所有时间参数都是微秒(μs),不论是字幕、图片、音频还是关键帧。
换算公式
text
1 秒 = 1,000,000 微秒| 期望时长 | 写法 |
|---|---|
| 0.1 秒 | 100000 |
| 0.5 秒 | 500000 |
| 1 秒 | 1000000 |
| 3 秒 | 3000000 |
| 10 秒 | 10000000 |
| 1 分钟 | 60000000 |
为什么用微秒?
- 与剪映的内部存储格式一致,无精度损失
- 关键帧、转场、动画时长都能精确到微秒级
- 跨平台无浮点数误差
start 与 end 怎么理解
text
时间线 →
0 3,000,000 6,000,000 (微秒)
[第一段字幕 ][ 第二段字幕 ]
start=0 end=3M start=3M end=6Mstart 是片段在总时间线上的开始时刻;end 是结束时刻。两者相减就是片段时长。
同一轨道不要重叠
同一条字幕轨 / 视频轨内,相邻片段的 start 必须 ≥ 上一段的 end,否则剪映会出现混乱。
实用脚本
把秒转成微秒:
bash
to_us() { echo $(( $1 * 1000000 )); }
START=$(to_us 0) # 0
END=$(to_us 3) # 3000000
echo "字幕从 $START 到 $END"把"3 秒 500 毫秒"这种小数转换:
bash
to_us_decimal() { python3 -c "print(int(float('$1') * 1000000))"; }
to_us_decimal 3.5 # 3500000常见错误
| 现象 | 可能原因 |
|---|---|
| 字幕只闪一帧 | 写的是毫秒:{"start":0,"end":3000} 应为 3000000 |
| 关键帧动画太快 | 同样的微秒/毫秒混淆,关键帧 offset 也是微秒 |
| 入场动画时长比片段还长 | inAnimationDuration + outAnimationDuration 必须 ≤ end - start |