我正在尝试使用 FFMPEG 将一个视频叠加在另一个视频上。我正在使用以下内容:
ffmpeg \
-i avi1.mp4 -i avi2.mp4 \
-filter_complex " \
[0:v]setpts=PTS-STARTPTS, scale=480x360[top]; \
[1:v]setpts=PTS-STARTPTS, scale=480x360, \
format=yuva420p,colorchannelmixer=aa=0.5[bottom]; \
[top][bottom]overlay=shortest=1" \
-acodec libvo_aacenc -vcodec libx264 out.mp4
最终的视频看起来原始视频的色彩被冲淡了。
以下是将它们合并在一起后的输出图像:
我想知道为什么生成的视频的颜色会这样改变,以及如何将两个视频合并在一起而不这样改变颜色。
答案1
colorchannelmixer
如果你的电影确实有 alpha,那么如果你想要完全透明,则不需要使用。只需使用:
ffmpeg -i movie_for_bottom.mov -i movie_for_top.mov -filter_complex "[0:v]setpts=PTS-STARTPTS, scale=480x360[bottom];[1:v]setpts=PTS-STARTPTS, scale=480x360[top];[bottom][top]overlay=shortest=1" -vcodec libx264 out.mp4
如果影片中存在 alpha,ffmpeg 将会在覆盖滤镜中使用它。
最终的电影将不具有 alpha(透明度)。