![FFmpeg 将一个视频放在其过滤版本之上](https://linux22.com/image/1464414/FFmpeg%20%E5%B0%86%E4%B8%80%E4%B8%AA%E8%A7%86%E9%A2%91%E6%94%BE%E5%9C%A8%E5%85%B6%E8%BF%87%E6%BB%A4%E7%89%88%E6%9C%AC%E4%B9%8B%E4%B8%8A.png)
我正在尝试将两个视频合并。第一个视频是我输入的未更改视频,而第二个视频(位于第一个视频下方)是第一个视频的过滤版本。我可以根据需要过滤第一个视频,但很难按我想要的方式将两个版本合并输出。
即使关注这个其他问题也无助于我:
这是我正在使用的命令:
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”过滤器。