【问题标题】:generate transparent video overlay or another way?生成透明视频叠加或其他方式?
【发布时间】:2016-02-05 08:05:27
【问题描述】:

我的 src 文件有很多 pngs 和 b.mp4

我想要什么: 在 b.mp4 上叠加 png(作为动画)

我尝试过的方式: 200个png的大小快40M了,安卓手机放不进去。。 所以我使用这个命令生成png到透明视频: "ffmpeg -i %04d.png -vcodec png a.mov"

然后使用 "ffmpeg -i b.mp4 -i a.mov -vf overlay=0:0:0 out.mp4", 有效。 但是我遇到的问题是a.mov的大小太大(200个png,每个文件100k,a.mov大约100M),我尝试了-vcodec copy,rawvideo,qtle,也得到了一个非常大的文件.有什么办法可以解决这个问题吗?

然后我试图找到另一种方法:我将pngs生成为mp4,使用

ffmpeg -i %04d.png -vcodec libx264 a.mp4

我知道带有 yuv420p 的 libx264(libx264 不支持 yuva420p)不能保持 alpha 通道?但我还是想试一试。然后我把a.mp4叠加在b.mov上;

显然,a.mp4 下的黑色背景 ....因为它丢失了它的 alpha 通道? 然后我尝试了混合滤镜,我发现blend=all_mode=lighten 看起来和我想要的有点像?但它仍然和效果不一样(叠加)

谁能帮帮我,谢谢

【问题讨论】:

    标签: android ffmpeg png


    【解决方案1】:

    您可以通过一个命令将 png 文件直接覆盖在视频上。例如:

    ffmpeg -i b.mp4 -framerate 30 -i %04d.png -filter_complex [0:v][1:v]overlay=format=yuv420[vid] -map [vid] -r 30 output.mp4
    

    过去,我发现 png 文件比 mov 文件更适合叠加。确保为 png 输入提供帧速率,否则它将假定为 25 fps(可能与视频 b.mp4 的 fps 不同)。

    【讨论】:

    • OP 无法直接覆盖到work
    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2014-08-07
    相关资源
    最近更新 更多