我试图将几个叠加层放在彼此之上,并在一些帧之后淡出最顶层。因此,我正在使用2个.png文件,这些文件应按以下顺序放在最终视频中:
fademe.png < - 最顶层的叠加,应该在一些帧后褪色
overlay.png < - 第二个叠加层,始终可见
movie.mov < - 一部电影作为底层
我正在使用此代码从叠加层创建PNG编码的.mov:
ffmpeg -y -loop 1 -i fademe.png -loop 1 -i overlay.png -filter_complex "[0:0]fade=out:25:25[fad];[1:0][fad] overlay" -vframes 55 -vcodec png overlay.mov
然后我使用ffmbc将overlay.mov放在另一个视频的顶部。
(我正在使用ffmbc,因为最终输出将是ProRes4444)
ffmbc -y -threads 0 -i movie.mov -vf "movie=overlay.mov [watermark]; [in][watermark] overlay [out]" -vcodec libx264 faded.mp4
输出视频看起来很好,直到淡入淡出开始,并且fademe.png [fad]
似乎褪色为白色并对下面的颜色做一些奇怪的事情直到它消失。
当我改变最后的顺序overlay
从[1:0][fad] overlay
到[fad][1:0] overlay
,所以它看起来是这样的:
ffmpeg -y -loop 1 -i fademe.png -loop 1 -i overlay.png -filter_complex "[0:0]fade=out:25:25[fad];[fad][1:0] overlay" -vframes 55 -vcodec png overlay.mov
褪色看起来正确,但overlay.png [1:0]
不应该是最顶层。
我的猜测是,在我第一次尝试时,alpha通道出现了错误。
有什么建议如何解决这个问题?