用 FFmpeg 制作视频滚动效果

ffmpeg -i input.mp4 -filter_complex "split[o1][o2];[o1]select=between(n\,0\,100),scroll=h=0.01[oo1];[o2]select=gt(n\,100),setpts=N/FR/TB[oo2];[oo1][oo2]concat=n=2:v=1" -map 0:a output.mp4

把输入 mp4 前 100 帧做成由右到左的滚动效果。

scroll 的速率是每帧行进的视频宽/高的百分比。0.01 即每帧位移 0.01 * width 像素,所以整个滚动效果需要 100 帧。

note:

1) 第二段 select,必须从 0 重新计算 pts,否则拼接时候效果不对;
2) 此法只适合短小视频操作,因为所有滤镜效果都缓存在内存;
3) scroll 是 FFmpeg4.3 版本新加入的滤镜效果,用前确认版本。

评论