使用 ffmpeg 将 png 合并为 mp4 时,透明背景意外变为绿色

when using ffmpeg to merge pngs to mp4, transparent background becomes green unexpectedly

命令:

./ffmpeg -i ./img/%3d.png  -pix_fmt yuv420p  -vcodec libx264 -profile:v main -level 4.0 -bf 0  -bufsize 2000k -y ./raw.mp4

这是我的输入和输出

-- input: http://106.15.63.56/image/greenbackground.zip
-- output:http://106.15.63.56/image/green_output.mp4

我试过 Linux 和 macOS;结果是一样的。

PNG 的颜色通道包含您在 MP4 中看到的背景颜色,因为视频编解码器 H.264 不支持 alpha。

要设置您选择的背景颜色,请使用

./ffmpeg -i ./img/%3d.png -vf "split=2[clr][bg];[bg]drawbox=c=black:t=fill[bg];[bg][clr]overlay" -pix_fmt yuv420p -c:v libx264 -profile:v main -level 4.0 -bf 0 -bufsize 2000k -y ./raw.mp4

将抽屉color更改为您喜欢的。