对于非标准输入,ffmpeg 缩放输出分辨率会偏离 1px

对于非标准输入,ffmpeg 缩放输出分辨率会偏离 1px

我正在使用ffmpegCLI 来缩放用户提交的视频:

ffmpeg -i path/to/file -vf scale=1920:-2 -c:v libx264 -r 30 output.mp4

缩放功能适用于标准视频尺寸,例如1920×1080720×480。但是,一旦我们开始使用不是具有常规分辨率,输出开始缩放不正确。

例如,当预期分辨率为 时,分辨率为 的视频3360×1882将输出为。1921×1076应该理论上是:1920×1075

现在,显然ffmpeg是试图解释剩余.42857px的高度,但我更希望它被裁剪掉(无论是从顶部还是底部)。

我该如何做这件事安全地每个视频?

为了获得奖励积分,如何让它根据 是否height大于 来交换缩放比例width(反之亦然)。例如,如果视频的比例为2:1,则它使用 的高度1080px而不是 的宽度进行缩放1920px

相关内容