从输入视频创建透明视频
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"
- 创建具有透明度的视频流,并设置透明背景 (black@0.0)
- 根据输入视频缩放透明视频
- [出于测试目的:在透明视频上绘制一个框。为了简单起见,我省略了将字幕嵌入视频的部分]
- 丢弃输入视频流
- 正在删除音频流
它基本上可以工作,但是处理永远不会结束 - 我无法限制输出视频的长度,所以它会匹配输入视频的长度...
我尝试在命令中的任何位置使用 -shortest
选项 - 但没有成功。
好的,所以我使用 overlay
过滤器(特别是它的 shortest
参数)的 x
和 y
设置通过一个小技巧设法解决了它到相关范围之外的一些坐标,所以我们只剩下适当限制视频长度的效果:
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"
我正在尝试从输入视频(具有相同尺寸等)中创建具有透明背景的视频。我尝试了几种策略(使用 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"
- 创建具有透明度的视频流,并设置透明背景 (black@0.0)
- 根据输入视频缩放透明视频
- [出于测试目的:在透明视频上绘制一个框。为了简单起见,我省略了将字幕嵌入视频的部分]
- 丢弃输入视频流
- 正在删除音频流
它基本上可以工作,但是处理永远不会结束 - 我无法限制输出视频的长度,所以它会匹配输入视频的长度...
我尝试在命令中的任何位置使用 -shortest
选项 - 但没有成功。
好的,所以我使用 overlay
过滤器(特别是它的 shortest
参数)的 x
和 y
设置通过一个小技巧设法解决了它到相关范围之外的一些坐标,所以我们只剩下适当限制视频长度的效果:
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"