使用 FFmpeg 创建高度为输入 80% 的缩略图

使用 FFmpeg 创建高度为输入 80% 的缩略图

我想从尺寸为 1024×780 的剪辑中截取屏幕截图/缩略图,但我不需要整个高度。我只希望屏幕截图占用 768 × 80% 的高度。

这是因为我不想在缩略图中包含任何字幕。

我目前正在使用以下命令来获取屏幕截图:

ffmpeg -i <input> -f image2 -ss <position> -s 768x432 \
-vf fps=fps=1/10 -vframes 20 <output>

目标是最终得到一个 768×432 大小的缩略图,但高度 432 仅为原始视频文件高度的 80%。

答案1

您可以使用scalecrop过滤器:

ffmpeg -i input -filter:v scale=768:-1,crop=iw:ih*0.8,fps=1/10 output

这将缩放到您想要的宽度(768),高度将自动缩放到适当的值以保留宽高比。然后它将裁剪缩放后的高度并将其乘以 0.8。请注意,裁剪将分为顶部和底部。例如,使用crop=iw:ih-100将从顶部移除 50 像素,从底部移除 50 像素。如果您希望它只从底部移除像素:

ffmpeg -i input -filter:v scale=768:-1,crop=iw:ih*0.8:0:0,fps=1/10 output

您可以使用以下方式预览ffplay

ffplay input -vf scale=768:-1,crop=iw:ih*0.8

查看FFmpeg 过滤器文档了解更多示例和信息。

相关内容