在 FFMEG 中分层播放两个视频会导致不透明度问题

在 FFMEG 中分层播放两个视频会导致不透明度问题

我正在尝试使用 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(透明度)。

相关内容