尝试使用 alphamerge 在 ffmpeg 中裁剪图像但产生错误的 alpha

Trying to crop an image in ffmpeg using alphamerge but produces wrong alpha

我正在使用 alphamerge 来裁剪圆圈内的图像。

我目前拥有的是:

ffmpeg -f lavfi -i "color=c=white:size=240x240" -i avatar.png -i mask.png -filter_complex \
 "[1][2]alphamerge[img]; \
 [0][img]overlay[out]" -c:v png -map "[out]" -pix_fmt rgba -t 5 -y out.mp4 2>&1

其中 avatar.png 和 mask.png 分别为:

这会产生以下输出(输出视频的 1 帧):

这是出乎意料的,因为原始输入比这暗得多。

如何使用 'mask.png' 裁剪 'avatar.png' 以便输出 avatar.png 裁剪成圆形并保持相同的 alpha?

PS:对我来说重要的一点是能够裁剪原始图像并保持原始图像的正确 colors/apha。如果有其他方法(除了 alphamerge),我很高兴听到它。

想通了。

ffmpeg -i avatar.png -i mask.png -filter_complex "[0]scale=400:400[ava];[1]alphaextract[alfa];[ava][alfa]alphamerge" output.png