使用 ffmpeg 创建 png 缩略图会给出错误消息“错误填充图片”

Posted

技术标签:

【中文标题】使用 ffmpeg 创建 png 缩略图会给出错误消息“错误填充图片”【英文标题】:Creating png thumbnail with ffmpeg gives error msg "error padding picture" 【发布时间】:2012-07-20 20:05:28 【问题描述】:

我正在尝试创建顶部和底部有填充的视频缩略图。如果我想创建一个 jpeg 图像,它工作得很好,但如果是 png,它会转储错误消息“error padding picture

我使用的命令是:

ffmpeg -ss 0 -vframes 1 -i video.avi -padleft 0 -padright 0 -padtop 22 \
-padbottom 22 -s 128x84 quik.png

如果我只是将输出文件更改为“quik.jpeg”,它就可以工作。有没有办法通过ffmpeg创建一个填充的png图像?我在这里做错了什么吗?

【问题讨论】:

我没有发现任何明显的错误。听起来像一个错误。您是否尝试过更新版本的 FFmpeg,可能使用 video filter for padding 而不是单独的填充标志? 【参考方案1】:

是的——您正在使用-pad 选项。它们甚至不再在较新版本的 ffmpeg 中可用;您应该改用pad 过滤器:

ffmpeg -ss 0 -vframes 1 -i video.avi \
  -vf scale=128:-1,pad=128:128:0:oh/2-ih/2 \
  quik.png

分解-vf

scale=128:-1

使用适合纵横比的任何高度将图像缩放为 128 宽。

pad=128:84:0:oh/2-ih/2

将图像填充为 128x84,将输入图像置于 Y 坐标 oh/2-ih/2(其中oh 是输出高度 84,ih 是输入图像的高度),使其居中输出。

请注意,如果您的视频高于宽度(因此需要水平填充而不是垂直填充),则此过滤器字符串将不起作用。解决方案,我留给读者。

【讨论】:

我目前使用的是0.6.2版本。由于其他原因,我不太确定我是否可以立即升级到较新的版本。 0.6.2 不支持视频过滤器 (-vf)。还有其他解决方法吗? 我强烈建议升级。整个 0.6 分支已经有好几年了;甚至该分支上的最新版本(0.6.6)也已无人维护。较新版本的 ffmpeg 将为您提供更快、更好地编码和解码更多格式以及过滤器(各种有用)。

以上是关于使用 ffmpeg 创建 png 缩略图会给出错误消息“错误填充图片”的主要内容,如果未能解决你的问题,请参考以下文章

每当未成功创建缩略图时,强制 ffmpeg 以错误代码退出

Ffmpeg - 从 webm 格式创建缩略图并将 webm 电影转换为 flv 电影

使用 FFmpeg 创建缩略图

php视频上传和ffmpeg不会创建缩略图

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

NodeJS - 寻找更快的方法来创建 FFMPEG 缩略图