我的src文件是大量的png和b.mp4。
我想要的:在b.mp4上覆盖pngs (作为anim)
我尝试过的方式: 200 pngs的大小接近4000万,无法投入android手机。因此,我使用以下命令生成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 pngs,每个文件是100 k,a.mov大约是100米),我尝试了-vcodec拷贝,rawvideo,qtle,还有一个很大的文件。有没有办法解决这个问题?
然后我试图找到另一种方法:我生成到mp4的pngs,使用
ffmpeg -i %04d.png -vcodec libx264 a.mp4
我知道libx264 with yuv420p(libx264 not support yuva420p)不能保持alpha通道吗?但我仍然希望有一个try.then,我覆盖a.mp4在b.mov上;
显然,黑色背景下的a.mp4 ....because失去了它的阿尔法通道?然后我尝试了混合过滤器,我发现blend=all_mode=lighten
看起来有点像我想要的?但它仍然没有效果一样(覆盖)
任何能帮我的人,谢谢
发布于 2016-02-04 16:05:27
您可以在一个命令中将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不同)。
https://stackoverflow.com/questions/35169717
复制