我可以使用以下命令制作慢动作视频(在 如何使用 ffmpeg 在特定时间间隔内使用慢动作效果):
ffmpeg -i input.mkv -filter_complex \
"[0:v]trim=0:10,setpts=PTS-STARTPTS[v1]; \
[0:v]trim=10:30,setpts=PTS-STARTPTS[v2]; \
[0:v]trim=start=30,setpts=PTS-STARTPTS[v3]; \
[v2]setpts=PTS/0.5[slowv]; \
[v1][slowv][v3]concat=n=3:v=1:a=0[out]" \
-map [out] output.mp4
但我也希望对音频有同样的效果,比如10-30秒有慢动作音频,否则所有其他音频部分都有正常速度。
上述命令还会增加视频长度,有什么方法可以将其减少到实际视频长度吗?
请有人帮我解决该怎么做?
答案1
你不能放慢视频速度和保留其原始长度。您必须修剪掉一些部分才能做到这一点。
要减慢音频速度,请执行以下操作
ffmpeg -i input.mkv -filter_complex \
"[0:v]trim=0:10,setpts=PTS-STARTPTS[v1]; \
[0:v]trim=10:30,setpts=(PTS-STARTPTS)*2[v2]; \
[0:v]trim=start=30,setpts=PTS-STARTPTS[v3]; \
[0:a]atrim=0:10,asetpts=PTS-STARTPTS[a1]; \
[0:a]atrim=10:30,asetpts=PTS-STARTPTS,atempo=0.5[a2]; \
[0:a]atrim=start=30,asetpts=PTS-STARTPTS[a3]; \
[v1][a1][v2][a2][v3][a3]concat=n=3:v=1:a=1[v][a]" \
-map [v] -map [a] output.mp4