FFmpeg 使用 -r vs -filter 和 setpts 改变视频速度

FFmpeg change video speed with -r vs -filter and setpts

如果我想用ffmpeg改变视频速度,

改变 fps 到底有什么区别:

ffmpeg -y -r 10 -i video.mp4 video_new_fps.mp4

或使用过滤器和设置:

ffmpeg -i video.mp4 -filter:v "setpts=PTS*3" -an video_new_fps.mp4

看来我可以通过这两个选项加快或减慢视频速度。

那么在什么情况下应该使用哪一个?

IMO,后者是一种通用的更安全的方法。如果输入视频流使用恒定的帧率,那么两者应该产生相同的输出。如果输入帧率是可变的,-r 输入选项会弄乱时间,我想。