我有这个问题回答帮助我使用以下命令将两个 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