关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。
21 天前关闭。
Improve this question
我正在尝试使用 ffmpeg 来实现以下目标:
x.jpg = 大小为 540x540 的文件。
Gradient.png = 具有半透明渐变的 540x960 图像(从顶部没有透明度的深蓝色开始,然后在底部逐渐变为透明)
example of Gradient.png attached
我们的目标是最终得到一个 540x960 的 jpg,其中 x.jpg 位于框架的底部 540x540,而 Gradient.png 位于其顶部。因为 Gradient.png 较大,这似乎会造成问题。
我试过了:
ffmpeg.exe -i x.jpg -i Gradient.png -filter_complex overlay=0:480 -c:v png -pix_fmt rgba out.png
这只是创建一个 540x540 帧,所以不起作用。不过感觉很亲近。如果我知道如何扩大“ Canvas ”,这可能会奏效。我试过了。
ffmpeg.exe -i Gradient.png -i x.jpg -filter_complex overlay=0:480 -c:v png -pix_fmt rgba out.png
它确实创建了一个 540x960 帧,但 Gradient.png 不在 1.jpg 之上,相反的情况发生在这里,所以我没有像我需要的那样得到 x.jpg 顶部显示的半透明效果。任何帮助将不胜感激
编辑:
我能够分两步完成。
ffmpeg -i x.jpg -vf "scale=540:960:force_original_aspect_ratio=decrease,pad=540:960:(ow-iw)/2:(oh-ih)"-c:v png -pix_fmt rgba out.jpg
ffmpeg -i out.jpg -i Gradient.png -filter_complex overlay=0:0 OUT2.jpg
如果有人能想出一种方法来一步到位,那就太好了。
最佳答案
只需要先填充JPEG。ffmpeg -i x.jpg -i Gradient.png -filter_complex "[0]pad=540:960:0:oh-ih[x];[x][1]overlay=0:0" -c:v png -pix_fmt rgba out.png
关于image - FFMPEG:如何在 jpg 上叠加大尺寸 png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72698686/