Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何使用ffmpeg或imagemagick将两个图像序列与alpha通道批量组合?_Video_Ffmpeg_Imagemagick_Png_Alpha - Fatal编程技术网

Video 如何使用ffmpeg或imagemagick将两个图像序列与alpha通道批量组合?

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

也欢迎使用其他工具或简单的API

我有一个带有alpha的PNG序列,我想覆盖在几个视频上。
使用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
        ,等等。模式与“
        红色
        ”序列相同

      • 有关更多信息,请参阅和