当前位置: 首页 > 知识库问答 >
问题:

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

商运锋
2023-03-14

其他工具或简单的API也是受欢迎的。

我有一个序列的png与alpha,我想覆盖在一些视频的顶部。使用ffmpeg会很棒,但是使用imagemagick也是可以接受的。我可以提取视频中的所有帧,并使用imagemagick批量混合每一帧,然后重新编码(重新编码是可以接受的)。

共有1个答案

常源
2023-03-14

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.pngblue_0002.pngblue_0003.png等。“red”序列的模式相同。

  •  类似资料:
    • 问题内容: 使用opencv在python中将RGB图像转换为RGBA的最佳方法是什么? 假设我有一个形状数组 另一个是带有形状的alpha蒙版 如何合并它们并保存到文件? 问题答案: 您可以用来将Alpha通道添加到给定的RGB图像,但是首​​先需要按照文档将RGB图像拆分为通道: Python:cv2.merge(mv [,dst]) mv –要合并的矩阵的输入数组或向量;mv中的所有矩阵必须

    • 每个人我试图使用java和opencv将“.png”图像置于视频捕获之上。 我从opencv java官方网站上执行了教程http://opencv-java-tutorials.readthedocs.io/en/latest/04-opencv-basics.html 在本教程中,使用本教程中的png图像,一切都很好。但当我尝试用alpha通道加载自己的png图像时,我得到了错误的结果。Png

    • 我目前在PHP上使用Imagick库,并使用Image Magick的调整大小功能。我刚刚了解了减压炸弹以及ImageMagick是如何容易受到它的攻击的。 我已经检查了如何ping图像并验证图像的尺寸,而不实际将其加载到内存/磁盘中。限制ImageMagick的内存和磁盘限制也更安全,这样它就不会只在磁盘上写一个大文件。 我已经读过了,我可以用setResourceLimit()实现这一点。ht

    • 我想上传两个或更多的图片,使用一个表单在不同的领域到数据库使用Codeigniter。 但是这里只有一个正在上传...有人能帮我吗... 我的控制器 这是我的模型 这是我的看法 我的数据库 请帮我上传到单独的数据库字段作为两个单独的文件

    • 有没有任何优化的函数,也许是在libswscale或libswresample中,比仅仅通过像素迭代更好地做这样的事情? 基本上我希望能够编写这样一个函数,如果我有这样一个函数,如sws_scale_and_add_alpha:

    • 我们有两个视频:video1.webm和video2.webm。如何将这两者结合起来,得到包含来自video1.webm的视频和来自video1和video2的音频的output.mp4? 示例: video1(video1中的audio1)+video2(video2中的audio2)=outputVideo(video1+audio1+audio2) 图像示例 FFMPEG-i 1.webm-