Video 如何使用ffmpeg或imagemagick将两个图像序列与alpha通道批量组合?
也欢迎使用其他工具或简单的API 我有一个带有alpha的PNG序列,我想覆盖在几个视频上。Video 如何使用ffmpeg或imagemagick将两个图像序列与alpha通道批量组合?,video,ffmpeg,imagemagick,png,alpha,Video,Ffmpeg,Imagemagick,Png,Alpha,也欢迎使用其他工具或简单的API 我有一个带有alpha的PNG序列,我想覆盖在几个视频上。 使用ffmpeg会很棒,但使用imagemagick也是可以接受的。我可以提取视频中的所有帧,并使用imagemagick批量混合每个帧,然后重新编码(可以重新编码)。请澄清PNG的顺序。是否希望所有PNG覆盖视频的每一帧。或者视频的每一帧有一个不同的png。或覆盖视频每帧的同一个png(可选) 后者可以在ImageMagick中使用-layers composite完成,前提是您的ImageMagic
使用ffmpeg会很棒,但使用imagemagick也是可以接受的。我可以提取视频中的所有帧,并使用imagemagick批量混合每个帧,然后重新编码(可以重新编码)。请澄清PNG的顺序。是否希望所有PNG覆盖视频的每一帧。或者视频的每一帧有一个不同的png。或覆盖视频每帧的同一个png(可选) 后者可以在ImageMagick中使用-layers composite完成,前提是您的ImageMagick具有ffmpeg作为代理库
convert video.mpeg null: overlay.png -gravity G -geometry +X+Y -layers composite new_video.mpeg
我不确定,但如果帧以某种方式进行了优化,以更改gif动画中的帧大小,则可能需要在video.mpeg之后添加-coalesce 或者,假设您将所有视频帧转换为png。然后假设所有帧的大小相同,并用前导零编号
convert video*.png null: overlay.png -gravity G -geometry +X+Y -layers composite new_video.mpeg
其中,G是重力设置,例如中心,X和Y是重力设置的期望偏移 或
您可以将%03d.png更改为3以外的任何数字,以设置前导零的数量。然后,您必须使用ffmpeg来重建视频。请澄清PNG的序列。是否希望所有PNG覆盖视频的每一帧。或者视频的每一帧有一个不同的png。或覆盖视频每帧的同一个png(可选) 后者可以在ImageMagick中使用-layers composite完成,前提是您的ImageMagick具有ffmpeg作为代理库
convert video.mpeg null: overlay.png -gravity G -geometry +X+Y -layers composite new_video.mpeg
我不确定,但如果帧以某种方式进行了优化,以更改gif动画中的帧大小,则可能需要在video.mpeg之后添加-coalesce 或者,假设您将所有视频帧转换为png。然后假设所有帧的大小相同,并用前导零编号
convert video*.png null: overlay.png -gravity G -geometry +X+Y -layers composite new_video.mpeg
其中,G是重力设置,例如中心,X和Y是重力设置的期望偏移 或
您可以将%03d.png更改为3以外的任何数字,以设置前导零的数量。然后,您必须使用ffmpeg来重建视频。
ffmpeg
示例。您提到了“两个序列”,因此本例假设您有两组按顺序编号的图像:
ffmpeg -i input.mp4 -framerate 25 -i blue_%04d.png -framerate 25 -i red_%04d.png -filter_complex "[0][1]overlay=10:10:format=auto[bg];[bg][2]overlay=W-w-10:10:format=auto[v]" -map "[v]" -map 0:a? -c:a copy output.mp4
叠加放置示例
- 第一个图像序列(“
”)将放置在左上角,填充10px,第二个(蓝色
”)将放置在右上角。如果需要左下角:红色
。如果需要右下角:10:H-H-10
W-W-10:H-H-10
- 本例中的图像命名为
,blue_0001.png
,blue_0002.png
,等等。模式与“blue_0003.png
”序列相同红色
- 有关更多信息,请参阅和
ffmpeg
示例。您提到了“两个序列”,因此本例假设您有两组按顺序编号的图像:
ffmpeg -i input.mp4 -framerate 25 -i blue_%04d.png -framerate 25 -i red_%04d.png -filter_complex "[0][1]overlay=10:10:format=auto[bg];[bg][2]overlay=W-w-10:10:format=auto[v]" -map "[v]" -map 0:a? -c:a copy output.mp4
叠加放置示例
- 第一个图像序列(“
”)将放置在左上角,填充10px,第二个(蓝色
”)将放置在右上角。如果需要左下角:红色
。如果需要右下角:10:H-H-10
W-W-10:H-H-10
- 本例中的图像命名为
,blue_0001.png
,blue_0002.png
,等等。模式与“blue_0003.png
”序列相同红色
- 有关更多信息,请参阅和