ffmpeg多路视频合并
03-15 发布 | 08-17 更新 | 浏览数 21
使用FFmpeg实现多路视频拼接,支持2-6路视频拼接,包括上下左右、竖拼、横拼等模式,了解overlay参数的使用,轻松实现视频拼接。点击了解详细教程!
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=iw*3:ih*2[a] ;=前面是固定的,后的表示长度分成几份,宽度分成几份;我就是这么理解的
