ffmpeg alphamerge两个视频合并成一个具有透明背景的gif

ffmpeg alphamerge两个视频合并成一个具有透明背景的gif

我有这个问题回答帮助我使用以下命令将两个 mp4 视频与 alphamerge 合并为一个 .mov 文件

ffmpeg -i video.mp4 -i mask.mp4 -filter_complex "[1][0]scale2ref[mask][main];[main][mask]alphamerge" -c:v qtrle output.mov

现在,我想知道如何将其更改为 gif 的输出。当我尝试

ffmpeg -i word.mp4 -i word.matte.mp4 -filter_complex "[1][0]scale2ref[mask][main];[main][mask]alphamerge" -c:v qtrle output.gif

我收到这个错误

[swscaler @ 0x5601daaa4d40] No accelerated colorspace conversion found from yuv420p to argb.
[gif @ 0x5601d9ad2d00] GIF muxer supports only a single video GIF stream.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

我正在使用 ffmpeg 4.2.4

答案1

将您的命令与来自的命令相结合如何使用 ffmpeg 将视频转换为 GIF 并获得合理的质量?

ffmpeg -i word.mp4 -i word.matte.mp4 -filter_complex "[1][0]scale2ref[mask][main];[main][mask]alphamerge,fps=10,scale=320:-1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

注意删除了-c:v qtrle。您不能将 QuickTime Animation RLE 视频放入 GIF 输出中。

如果你想要背景照片组合命令如何用ffmpeg进行叠加?

ffmpeg -i word.mp4 -i word.matte.mp4 -i background.jpg -filter_complex "[1][0]scale2ref[mask][main];[main][mask]alphamerge[fg];[2][fg]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:format=auto,fps=10,scale=320:-1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

相关内容