如何在 ffmpeg 中居中裁剪视频缩略图(方形缩略图)?

Posted

技术标签:

【中文标题】如何在 ffmpeg 中居中裁剪视频缩略图(方形缩略图)?【英文标题】:How to center crop a video thumbnail (Square thumbnail) in ffmpeg? 【发布时间】:2020-12-30 05:18:27 【问题描述】:

我是 ffmpeg 的新手,我想通过裁剪视频的中心来创建大小为 500x500 的方形缩略图,无论宽度和高度如何。我怎样才能做到这一点?提前致谢。

【问题讨论】:

如果输入的宽度或高度小于500,你想让它做什么? 这只是一个偏好。我认为输入的最小宽度为 320 或更多,因为我只针对手机。唯一应该考虑的是它应该是一个正方形,并且应该从视频的中心裁剪。谢谢。 【参考方案1】:

先裁剪,然后缩放。

ffmpeg -i in -vf "crop=w='min(min(iw\,ih)\,500)':h='min(min(iw\,ih)\,500)',scale=500:500,setsar=1" -vframes 1 thumbnail.jpg

xy 未设置用于裁剪,因为它们默认为中心裁剪。


ffmpeg -i in -vf "crop=w='min(iw\,ih)':h='min(iw\,ih)',scale=500:500,setsar=1" -vframes 1 thumbnail.jpg

这将选择可能的最大正方形并将其缩放为 500x500。

【讨论】:

谢谢它工作正常,但 ffmpeg 总是显示警告“使用已弃用的像素格式,请确保您正确设置了范围”和“警告:数据未对齐!这会导致速度损失”。这是我应该考虑的事情吗? 对不起,没有改变。 另外我只是有一个请求,你能根据输入设置最小宽度、高度和比例吗?当@llogan 在 cmets 中提到它时,我才想到这个问题。谢谢。 但缩略图没有显示视频中心(宽度)的完整部分。我该如何解决这个问题? 不,这是一个 9:16 的视频。

以上是关于如何在 ffmpeg 中居中裁剪视频缩略图(方形缩略图)?的主要内容,如果未能解决你的问题,请参考以下文章

JPG批量裁剪以生成方形缩略图

使用ffmpeg生成视频缩略图;从 RTMP 服务器抓取

如何在没有 ffmpeg 的情况下在 php 中创建缩略图并将视频转换为 mp4? [关闭]

如何在 node.js 中生成视频缩略图?

FFmpeg进阶:生成视频的缩略图

在 PHP 中从没有 ffmpeg 的视频创建缩略图