2

I am trying to create a thumbnail image of a video with padding on the top and bottom. It works well if I want to create a jpeg image, but in case of png it dumps the error msg "error padding picture"

The command I am using is:

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

If I just change the output file to "quik.jpeg" it works. Is there any way to create a padded png image through ffmpeg? Am I doing something obviously wrong here?

4

1 回答 1

0

是的——您正在使用这些-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是输入图像的高度),使其在输出中居中。

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

于 2012-07-23T20:17:34.670 回答