温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

FFmpeg怎么实现多宫格

发布时间:2021-10-21 14:41:25 来源:亿速云 阅读:343 作者:柒染 栏目:大数据

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


我们来使用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怎么实现多宫格就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI