FFmpeg创建慢动作回放到它的实时视频结束

时间:2017-09-23 01:34:08

标签: ffmpeg

我正在寻找一种方法来创建一个慢动作重播到现有剪辑的结尾(比如3到5秒)。

**它需要正常播放一次,然后立即以25%的速度播放 - 音频**

我目前在After Effects中非常快速,轻松地完成此操作,但对于我执行此操作的剪辑音量,ffmpeg会快得多。我计划更进一步,写一个.bat文件来自动完成这个过程。

1 个答案:

答案 0 :(得分:1)

使用(a)split,setpts,atempo和concat过滤器:

ffmpeg -i input.mp4 -filter_complex 
    "[0:v]split=2[v0][v1];
     [0:a]asplit=2[a0][a1];
     [v1]setpts=(PTS-STARTPTS)/0.25[slowv];
     [a1]atempo=0.5,atempo=0.5[slowa];
     [v0][a0][slowv][slowa]concat=n=2:v=1:a=1[v][a]"
    -map "[v]" -map "[a]" output.mp4

atempo的下限为0.5,因此必须运行两次。这会降低音频质量。橡皮带滤波器可能会提供更好的结果,但您的ffmpeg需要使用--enable-librubberband进行编译,或使用独立的rubberband工具预处理音频。

有关每个过滤器的其他信息,请参阅FFmpeg Filters Documentation