ffmpeg多路视频合并

2,3,4路视频拼接可以参考下面:

https://blog.csdn.net/tianshan2010/article/details/104737576
https://blog.csdn.net/Gary__123456/article/details/88742705

4路拼接【上下左右】:

ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex "[0:v]pad=iw2:ih2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" output.mp4

5路视频,竖拼:
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -filter_complex "[0:v]pad=iw:ih*5[a];[a][1:v]overlay=0:h[b];[b][2:v]overlay=0:2.0*h[c];[c][3:v]overlay=0:3.0*h[d];[d][4:v]overlay=0:4.0*h" output.mp4
5路视频,横拼:
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -filter_complex "[0:v]pad=iw*5:ih*1[a];[a][1:v]overlay=w[b];[b][2:v]overlay=2.0*w[c];[c][3:v]overlay=3.0*w[d];[d][4:v]overlay=4.0*w" output.mp4
5路视频,上3下2拼接:
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -filter_complex "[0:v]pad=iw*3:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=2.0*w[c];[c][3:v]overlay=0:h[d];[d][4:v]overlay=w:h" output.mp4
6路视频,上3下3拼接:
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -i 6.mp4 -filter_complex "[0:v]pad=iw*3:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=2.0*w[c];[c][3:v]overlay=0:h[d];[d][4:v]overlay=w:h[e];[e][5:v]overlay=2.0*w:h" output.mp4

其中核心的是-filter_complex参会后面的每一个用;分开的部分;[0:v];[1:v];[2:v]分别代表第几个视频;
overlay=0:h[d]后面的0:h[d]表示当前视频在大的视频中的坐标;视频拼接就是核心理解overlay的含义,然后不管几路都可以拼接了。
还有一点 第一个[0:v]pad=iw3:ih2[a] ;=前面是固定的,后的表示长度分成几份,宽度分成几份;我就是这么理解的

posted @   从雍和宫走到电影学院  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示