FFmpeg 为 PNG 水印添加淡淡的背景

FFmpeg 为 PNG 水印添加淡淡的背景

我有一个 FFmpeg 命令,已经在一些脚本中使用了一段时间,但最近注意到它在我覆盖在视频顶部的 PNG 水印上添加了轻微的、几乎透明的背景。

该问题可能由什么原因造成?我该如何解决?

答案1

我会让 FFmpeg 专家来回答问题的第一部分 - 是什么导致了这个问题 - 但经过几天的调试和测试,我设法通过以下方式解决问题:

  • 添加format=yuv420p 筛选我正在视频流将 PNG 图像叠加到
  • 添加format=auto 选项到正在做的流PNG 覆盖层本身

这是我的命令现在的简化版本:

ffmpeg -i "input.webm" -loop 1 -i "watermark.png" \
-movflags +faststart \
-filter_complex \
"[0:v]format=yuv420p[v0];
 [1:v]lut=a=val*0.7,fade=in:st=10:d=3:alpha=1,fade=out:st=3820:d=3:alpha=1[v1];
 [v1][0:v]scale2ref=w=oh*mdar:h=ih*0.07[wm_scaled][video];
 [video][wm_scaled]overlay=100:H-h-80:shortest=1:format=auto[outv]" \
-map "[outv]" -map "0:a" -c:v libx264 -crf 17 -c:a libopus "test.mp4"

相关内容