使用 ffmpeg 同时重新缩放和放慢电影

Rescaling and slowing down a movie at the same time with ffmpeg

我想用 ffmpeg 放慢我正在使用标志创建的电影的速度:

-filter:v "setpts=2.0*PTS"

但是我的静止图像的高度不能被 2 整除,所以为了避免错误:height not divisible by 2 (1238x833),我使用了标志:

-vf scale="trunc(iw/2)*2:trunc(ih/2)*2"

(我也试过-vf scale=1238:-2)。

当我执行此操作时,会生成影片但不会放慢速度,就像 -filter:v "setpts=2.0*PTS" 不存在一样。

为了让这两个选项同时工作,有什么特别的事情要做吗?

这是我使用的完整命令:

ffmpeg -an -i ./movie/cphmd1.%05d.ppm -vcodec libx264 -pix_fmt yuv420p -b:v 5000k -r 24 -crf 18 -filter:v "setpts=2.0*PTS" -vf scale="trunc(iw/2)*2:trunc(ih/2)*2" -preset slow -f mp4 cphmd1_slower.mp4

非常感谢!

作用于同一输入的多个滤波器必须串联在一起。所以,

ffmpeg -an -i ./movie/cphmd1.%05d.ppm -vcodec libx264 -pix_fmt yuv420p -b:v 5000k -r 24 -crf 18 -vf "setpts=2.0*PTS,scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset slow -f mp4 cphmd1_slower.mp4