ffmpeg - 从视频中提取每一帧,无质量损失,并将短边调整为 256

ffmpeg - 从视频中提取每一帧,无质量损失,并将短边调整为 256

这行代码提取每一帧。

ffmpeg -i "%1" frames/out-%03d.jpg

我如何调整视频大小,使短边为 256px,然后提取每一帧?我也不想有任何有损压缩或任何术语。我知道调整图像大小会导致质量有所下降,但仅此而已。我不希望以较低的质量保存帧。

答案1

您最有可能想要做的是:

ffmpeg -i "%1" -vf "scale='if(gt(a,1),-2,256)':'if(gt(a,1),256,-2)'" -qscale:v 2 frames/out-%03d.jpg

基本上,这会在输入视频上应用一个过滤器,该过滤器将根据纵横比 ( a) 缩小视频。因此,对于横向视频,它将高度设置为 256px,对于纵向视频,它将宽度设置为 256px。

如果您根本不想应用任何(进一步的)无损压缩,您可能希望使用 .png 文件格式的图像,但如果您使用足够高质量的 .jpg(由 定义-qscale:v),您很可能不会看到任何差异,但可能会实现略小的文件大小。

相关内容