我的src文件有很多png,而b.mp4
我想要的: 在b.mp4上叠加pngs(作为动画)
我试过的方式:
200 png的大小差不多是40M,无法放入android手机..
所以我为透明视频生成png使用此命令:
" ffmpeg -i %04d.png -vcodec png a.mov
"
ffmpeg -i b.mp4 -i a.mov -vf overlay=0:0:0 out.mp4
&#34 ;,
有效。
但我得到的问题是a.mov的大小太大(200 png,每个文件是100k,a.mov大约100M),我试过-vcodec copy,rawvideo,qtle,也有一个非常大的文件。有没有想法解决这个问题?
然后我试图找到另一种方法:我生成png到mp4,使用
ffmpeg -i %04d.png -vcodec libx264 a.mp4
我知道libx264与yuv420p(libx264不支持yuva420p)无法保持alpha通道?但是我仍然想尝试一下。然后我在b.mov上覆盖a.mp4;
显然,a.mp4下的黑色背景....因为它失去了它的alpha通道? 然后我尝试混合过滤器,我发现blend=all_mode=lighten
看起来和我想要的一样?但它仍然与效果(叠加)不一样
任何可以帮助我的人,谢谢
答案 0 :(得分: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)。