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] ;=前面是固定的,后的表示长度分成几份,宽度分成几份;我就是这么理解的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库