源框架:
ffmpeg -i /www/1.jpg -vframes 1 -lavfi '[0:v]scale=ih*16/9:594,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=1056:594' -vsync vfr /www/output.jpg
在输出中我得到:
任务。
- 需要将原来的框架高度改为594,宽度按比例改变。
- 原始框架的尺寸准备好后。您需要一块画布,高度为 594,宽度为 1056。在画布上,您需要将原始框架放在中心,并在侧面应用模糊图像。
因为不去尝试,所以一切都是歪的。这么长时间过去了,却没有任何结果。
该怎么办。原始框架可能更窄更高,或者您可能根本不需要添加画布。如何设置,以便没有任何东西被切割,没有太多拉伸,它很漂亮?求助...
如果指定了 setvar 参数,则宽度会在框架的中心发生变化。但中心图像的高度仍然被裁剪,即它不适应 594px
-s 1056x594 -lavfi 'scale=ih*16/9:594,setsar=1,boxblur=luma_radius=min(h\,w)/20:chroma_radius=min(cw\,ch)/20[bg];[bg][0:v]overlay=(W-w)/2:0'
答案1
使用
ffmpeg -i /www/1.jpg -lavfi '[0:v]scale=1056:594,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[0:v]scale=-1:594[pic];[bg][pic]overlay=(W-w)/2:(H-h)/2' /www/output.jpg
首先,创建具有模糊效果的画布,尺寸精确为 1056.594。然后缩放图像-1:594
--1
此处表示按比例缩放宽度。第二次缩放的结果叠加在第一次缩放的中心。
您有一张图片,所以这里不需要 -vframes 或 -vsync。