FFmpeg修剪和循环播放视频

时间:2018-11-24 08:30:53

标签: ffmpeg

在我的情况下,我想修剪源视频并将其循环播放指定的时间。下面是我的代码

ffmpeg -i source.mp4 -filter_complex "[0:v]trim=start=6:end=46,loop=5[vf];[0:a]atrim=start=6:end=46,aloop=5[af]" -map "[vf]" -map "[af]" output.mp4 -y

为此,我必须获得200秒的视频作为output.mp4。但是我得到了40秒的视频。

1 个答案:

答案 0 :(得分:1)

您需要指定要在loopaloop过滤器中循环播放的最大帧数/样本数,因为默认情况下将其设置为0。例如;

[0:v] loop = '5 : 10'

不变地输出[0:v],然后其前10帧循环5次。而且,别忘了修正调整后的输出的时间戳。

因此,您可以使用此过滤器来完成您的操作(假设输入帧速率为30fps,采样速率为48k / s)

[0:v] trim = 'start = 6 : end = 46',
setpts = 'PTS - STARTPTS',
loop = 'loop = 4 : size = 40 * 30' [vf];
[0:a] atrim = 'start = 6 : end = 46',
asetpts = 'PTS - STARTPTS',
aloop = 'loop = 4 : size = 40 * 48000' [af]
相关问题