从输入视频创建透明视频

Creating a transparent video out of an input video

我正在尝试从输入视频(具有相同尺寸等)中创建具有透明背景的视频。我尝试了几种策略(使用 chromakey 过滤器和其他策略)并且 none 奏效了......我做到了这一点:

ffmpeg -i input.mp4 -filter_complex "color=color=black@0.0,format=yuva420p[bg],[bg][0:v]scale2ref[bg][0v],[bg]drawbox=x=10:y=10:w=100:h=100:color=pink@0.5;[0v]nullsink" -c:v qtrle -an "alpha.mov"

它基本上可以工作,但是处理永远不会结束 - 我无法限制输出视频的长度,所以它会匹配输入视频的长度... 我尝试在命令中的任何位置使用 -shortest 选项 - 但没有成功。

好的,所以我使用 overlay 过滤器(特别是它的 shortest 参数)的 xy 设置通过一个小技巧设法解决了它到相关范围之外的一些坐标,所以我们只剩下适当限制视频长度的效果:

ffmpeg -i input.mp4 -filter_complex "color=color=black@0.0,format=yuva420p[bg],[bg][0:v]scale2ref[bg][0v],[bg]drawbox=x=10:y=10:w=100:h=100:color=pink@0.5[out];[out][0v]overlay=x=100000:y=100000:shortest=1" -c:v qtrle -an "alpha.mov"