FFmpeg叠加混合后画面偏粉问题排查与解决请求
问题原因与解决方法
偏粉问题的原因
你多步骤操作中,与皮卡丘执行screen混合的图层[cropped2],是红色背景叠加白色背景后再叠加圆形的复合图层(即circle_on_red_on_white的裁剪部分),而非单独测试时使用的纯黑色背景圆形素材。
screen混合模式的计算公式为 1 - (1 - A) * (1 - B),当混合基底不是纯黑色(而是带有红色底色的圆形区域)时,基底的红色会参与混合计算,最终导致叠加回原图层后,混合区域出现偏粉的异常效果。
解决方法
调整滤镜流程,确保screen混合使用的是原始黑色背景圆形素材,而非叠加后的复合图层。修正后的命令如下:
-i bg_rgb_png.png -i color_clip_rgb24_png.png -i circle_rgb_50.png -i pikachu_rgb.png -filter_complex "[0:v][1:v]overlay=0:0[out1];[out1][2:v]overlay=0:0[out2];[2:v]crop=50:50:0:0:exact=1,setsar=1[cropped_circle];[3:v][cropped_circle]blend=all_mode=screen[blended];[out2][blended]overlay=0:0" white_red_circle_pika_from_pngs.png
关键修正点
- 直接从原始圆形素材
[2:v]裁剪得到[cropped_circle],而非从叠加后的复合图层[out2]裁剪 - 用纯黑色背景的圆形基底与皮卡丘执行
screen混合,再将结果叠加到最终的circle_on_red_on_white图层[out2]上,这样混合逻辑与单独测试时完全一致,即可消除偏粉问题
内容的提问来源于stack exchange,提问作者OneWorld
相关产品推荐
相关产品推荐

