改变视频某一部分的速度

改变视频某一部分的速度

我想减慢视频的一小部分。我使用了这个 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]  

相关内容