【发布时间】:2012-05-13 09:37:24
【问题描述】:
我正在寻找使用一组具有与静态背景合并的透明度的 png 图像创建视频。
经过大量挖掘后,我认为使用过滤器库绝对可以。
我最初的不包括背景的视频制作是:
ffmpeg -y -qscale 1 -r 1 -b 9600 -loop -i bg.png -i frame_%d.png -s hd720 testvid.mp4
使用-vf 我可以将背景应用为叠加层:
ffmpeg -y -qscale 1 -r 1 -b 9600 -i frame_%d.png -vf "movie=bg.png [wm];[in][wm] overlay=0:0 [out]" -s hd720 testvid.mp4
但是问题是它在输入上覆盖了背景。根据libacfilter,我可以拆分输入并使用它的内容。我想知道是否可以以某种方式更改叠加顺序?
非常感谢任何帮助!
更新 1:
我正在尝试使以下过滤器工作,但我得到的电影没有背景:
ffmpeg -y -qscale 1 -r 1 -b 9600 -i frame_%d.png -vf "movie=bg.png [bg]; [in] split [T1], fifo, [bg] overlay=0:0, [T2] overlay=0:0 [out]; [T1] fifo [T2]" -s hd720 testvid.mp4
更新 2:
使用 -vf 选项制作视频。只需通过管道将输入狭缝应用到其上并覆盖两个分流!可能不是最有效的方法……但它确实有效!
ffmpeg -y -r 1 -b 9600 -i frame_%d.png -vf "movie=bg.png, scale=1280:720:0:0 [bg]; [in] format=rgb32, split [T1], fifo, [bg] overlay=0:0, [T2] overlay=0:0 [out]; [T1] fifo [T2]" -s hd720 testvid.mp4
【问题讨论】:
-
我有一个不好的解决方案,但可以。在每张图片之后,将您的背景图片放在两者之间。这将为您提供您想要的最终输出方式
-
有趣的方法...问题是你是怎么做到的? :)
-
假设你有n个frame_%d.png,在每一帧之后,每帧添加一个bg...frame1.png和frame2.pn都在,那么frame2.png就是baground_跨度>
-
我不确定这是否可以在没有具有正确交替顺序的多个背景副本的情况下完成。我的要求是使用图像序列和一个背景文件。
标签: ffmpeg