FFmpeg怎么实现多宫格

这篇文章给大家介绍FFmpeg怎么实现多宫格,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联公司-专业网站定制、快速模板网站建设、高性价比博野网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式博野网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖博野地区。费用合理售后完善,10余年实体公司更值得信赖。

我们来使用FFmpeg命令行来实现一下画面多宫格的效果!一说到多宫格,相信我们的第一反应是九宫格,不过呢,由于使用FFmpeg命令行实现九宫格的参数实在太臃肿,我们案例中实现四宫格的效果,也足够酷炫哦!好了,接下来言归正传:
一、命令行参数  
   
   
   
   ffmpeg  -re  -i  test.mp4 -re  -i test.mp4 -re  -i  test.mp4 -re  -i  test.mp4 -filter_complex "nullsrc=size=1920x1080 [base];[0:v] setpts=PTS-STARTPTS,scale=960x540 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=960x540 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=960x540 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=960x540 [lowerright];[base][upperleft] overlay=shortest=1[tmp1]; [tmp1][upperright] overlay=shortest=1:x=960 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=540 [tmp3];[tmp3][lowerright] overlay=shortest=1:x=960:y=540" -c:v libx264 out_1080p.mp4
二、参数解释  
      -re -i   : 在实现多宫格的过程中,如此表示多个输入,其后写视频文件名即可  
      -filter_complex  : 表示使用复合滤镜,其后引号中内容为滤镜的具体参数  
      nullsrc  : 理解为画布,也就是我们要把所有的视频画到该画布上,参数中指定其大小  
      [n:v]  : 表示第n个视频的参数, setpts表示pts的设置方式,scale表示该视频的缩放大小,[upperleft]指出第n个视频所对应的标签,此例中n为0,1,2,3
    接下来,请仔细看喽:  
      首先在[base]上,加入[upperleft]的内容,使用overlay滤镜,滤镜叠加起始位置为(0,0)(不填默认为原点)后,产生新的标签tmp1;  
    基于[tmp1],与[upperright]使用overlay再次叠加,产生标签[tmp2];  
    基于[tmp2], 与[lowerleft]使用overlay再次叠加,产生标签[tmp3];
    基于[tmp3], 与[lowerright]使用overlay再次叠加,所有4个标签构建完成。  
      -c:v   指出合成之后的视频使用何种编码方式
三、实战  
由于参数臃肿,就不一一手敲了,大家看看命令执行的效果:  
四、效果
好了,今天这一期就到这里了,欢迎小伙伴们下期光临,也别忘了多多练习哦!

关于FFmpeg怎么实现多宫格就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章题目:FFmpeg怎么实现多宫格
分享链接:http://pwwzsj.com/article/gcjghg.html