我正在尝试将图像转换成短视频。
ffmpeg -r 1/30 -i image.jpg video.mp4
此代码可以完成工作,但输出视频的宽高比与原始图片相同。我需要另一个 - 16x10。我需要图像适合框架而不缩放/扭曲,并用某种颜色(例如黑色)填充空白区域。就像下图中描述的那样。有什么办法吗?
更新:
我尝试使用具有正值的裁剪滤镜来增加框架的大小:
ffmpeg -r 1/30 -i image.jpg -vf crop=in_w+200:in_h+200:0:0 -y video.mp4
不幸的是,它失败了。我收到以下错误:
[Parsed_crop_0 @ 0x7fd8db204180] Invalid too big or non positive size for width '1280' or height '874'
[Parsed_crop_0 @ 0x7fd8db204180] Failed to configure input pad on Parsed_crop_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
答案1
裁剪滤镜可以仅有的删除图像的某些部分,但绝不会增加其尺寸。
你只需要垫式过滤器为此。我假设您的图像具有均匀的尺寸。
ffmpeg -framerate 1/30 -i image.jpg \
-vf "pad='if(gt(dar,16/10)\,iw\,2*trunc(ih*16/10/2))':'if(gt(dar,16/10)\,2*trunc(iw*10/16/2)\,ih)':-1:-1:color=black" \
-y video.mp4