我想减慢视频的一小部分。我使用了这个 filter_complex:
[0:v] split=3 [p1][p2][p3];
[p1] trim=start=1.19:end=34.19 [x];
[p2] trim=34.19:36.39,setpts=2*N/FRAME_RATE/TB [y];
[p3] trim=start=36.39 [z];
[x][y][z] concat=3 [video]
在结果中[video]
和[x]
是[y]
好的,但在它之后的最后一帧[y]
冻结了很多秒(大约36秒),显示为静帧,并且只有在它扮演这个[z]
角色之后。
我认为该部分的显示时间戳有问题[z]
,但我不知道如何修复它。或者 - 也许 - 通过其他更简单的方式实现我的目标。
答案1
trim 过滤器不会重置时间戳,但 concat 过滤器要求每个段都以 0 时间戳开头。因此,
[0:v] split=3 [p1][p2][p3];
[p1] trim=start=1.19:end=34.19,setpts=PTS-STARTPTS [x];
[p2] trim=34.19:36.39,setpts=2*N/FRAME_RATE/TB [y];
[p3] trim=start=36.39,setpts=PTS-STARTPTS [z];
[x][y][z] concat=3 [video]