FFmpeg 将一个视频放在其过滤版本之上

FFmpeg 将一个视频放在其过滤版本之上

我正在尝试将两个视频合并。第一个视频是我输入的未更改视频,而第二个视频(位于第一个视频下方)是第一个视频的过滤版本。我可以根据需要过滤第一个视频,但很难按我想要的方式将两个版本合并输出。

即使关注这个其他问题也无助于我:

使用每侧不同的滤镜对视频进行升级

这是我正在使用的命令:

ffmpeg -i ./media/video/video_with_alpha.mov \
-c:v libx264 -b:v 400k -tune zerolatency -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -b:a 64k \
-filter_complex \
    "[0:v] fifo, lutrgb=r=maxval:g=maxval:b=maxval [T1]; \
     [0:v] format=rgba, fifo, lutrgb=r=minval:g=minval:b=minval [T2]; \
     [T2][T1] overlay [out_alpha]; \
     [0:v][out_alpha] overlay=0:360[out]" \
-map '[out]' -map 0:a ./media/output/video_rgb_above_alfa.mp4

我得到的结果是两个视频像这样相互重叠: 在此处输入图片描述

而我想要的是这样的: 在此处输入图片描述

你们有谁知道我做错什么了吗?

先感谢您!

答案1

感谢您的回答,但我通过以下命令找到了解决方案:

ffmpeg -i ./media/video/video_walpha.mov \
-filter_complex "[0:v] fifo, lutrgb=r=maxval:g=maxval:b=maxval [1]; \
[0:v] format=rgba, fifo, lutrgb=r=minval:g=minval:b=minval [2]; \
[2][1] overlay [alpha]; \
[0:v]pad=iw:ih*2[stage]; \
[stage][alpha] overlay=0:h [merge]; \
[merge] scale=1280:-1 [out]" \
-map '[out]' -map 0:a \
-c:v libx264 -b:v 400k -tune zerolatency -profile:v baseline -level 3.0 -movflags +faststart -c:a libfdk_aac -b:a 64k \
./media/output/video_mobile_rgb_alfa.mp4

我实际上缺少的是“pad”过滤器。

相关内容