ffmpeg实现视频流的多路拼接
ffmpeg实现视频流的多路拼接
用4X4的拼接举例子来说,
命令如下ffmpeg -i 流1 -i 流2 -i 流3 -i 流4 -an -f flv -filter_complex"[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" -f flv 输出流
- -an是消除声音
- -f是指定输出格式,格式为flv
- -filter_complex 是拼接参数,
- 后面的参数格式
[0:v]
[1:v]
是输入的第几个视频流,编号根据前面的输入流,依次往下排就好 - 第一个
pad=iw*2:ih*2[a]
pad用作边界扩充,设置画布(画布就是边界扩充后的大小)一共有多大,这里iw*2表示横者有2个第一个视频流大小,ih*2表示竖着者有2个第一个视频流大小,[a]表示这是这个视频流的别称,方便后面使用。 -
[a][1:v]overlay=w[b]
第二个视频流[1:v]接在[a]上,视频流的左上角
在画布的坐标是(w,0)没写h就默认是0 - 后面以此类推
[a][1:v]``[b][2:v]
……依次写就好,然后后面的overlay=w和h根据在画布的绝对位置 - 具体看图
- 后面的参数格式