ffmpeg拼接多个视频流进行录像

想要拼接四个以下摄像头可以参考一下链接

ffmpeg实现视频流的多路拼接_ffmpeg组装流-CSDN博客

想要拼接四个以上摄像头就需要使用自定义分辨率了

另外,也要注意拉取的rtsp流要使用子码流,因为拼接画面过多的话,会出现因为主码流比特率过高出现录制画面卡顿甚至消耗过多cpu资源,以海康威视举例:

//sub表示子码流如果是main则表示主码流
rtsp://${username}:${password}@${ip}:554/h264/ch1/sub/av_stream

以下是五个摄像头视频流拼接指令

ffmpeg -rtsp_transport tcp -i rtsp://${username}:${password}@${ip}:554/h264/ch1/sub/av_stream -rtsp_transport tcp -i rtsp://${username}:${password}@${ip}:554/h264/ch1/sub/av_stream -rtsp_transport tcp -i rtsp://${username}:${password}@${ip}:554/h264/ch1/sub/av_stream -rtsp_transport tcp -i rtsp://${username}:${password}@${ip}:554/h264/ch1/sub/av_stream -rtsp_transport tcp -i rtsp://${username}:${password}@${ip}:554/h264/ch1/sub/av_stream -filter_complex [0:v]scale=1440:720[p];[p]pad=1920:1080:x=230:y=0[bg];[1:v]scale=480:360[1s];[2:v]scale=480:360[2s];[3:v]scale=480:360[3s];[4:v]scale=480:360[4s];[bg][1s]overlay=0:720[bg1];[bg1][2s]overlay=480:720[bg2];[bg2][3s]overlay=1440:720[bg3];[bg3][4s]overlay=960:720 -c:v h264  -f mp4 E:/FiveGY11.mp4

原理是使用ffmpeg的过滤参数-filter_complex对输入源进行拼接堆叠,然后输出为MP4文件

以下为效果图

如果只想拉取视频流不拉取音频流可以在-i前面加上-an

下面是六个摄像头画面和七个摄像头画面的过滤参数,参照上面的指令自行添加rtsp流即可

六个摄像头画面过滤参数

[0:v]scale=1440:720[p];[p]pad=1920:1080:x=0:y=0[bg];[1:v]scale=480:360[1s];[2:v]scale=480:360[2s];[3:v]scale=480:360[3s];[4:v]scale=480:360[4s];[5:v]scale=480:360[5s];[bg][1s]overlay=1440:180[bg1];[bg1][2s]overlay=0:720[bg2];[bg2][3s]overlay=1440:720[bg3];[bg3][4s]overlay=960:720[bg4];[bg4][5s]overlay=480:720

七个摄像头画面过滤参数

[0:v]scale=1440:720[p];[p]pad=1920:1080:x=0:y=0[bg];[1:v]scale=480:360[1s];[2:v]scale=480:360[2s];[3:v]scale=480:360[3s];[4:v]scale=480:360[4s];[5:v]scale=480:360[5s];[6:v]scale=480:360[6s];[bg][1s]overlay=1440:0[bg1];[bg1][2s]overlay=1440:360[bg2];[bg2][3s]overlay=1440:720[bg3];[bg3][4s]overlay=960:720[bg4];[bg4][5s]overlay=480:720[bg5];[bg5][6s]overlay=0:720

最后,我的分享到这儿就结束了,后续有问题可评论区讨论。如果以上内容帮到你,请给我点个赞!谢谢。

敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告:本课程项目仅供学习参考,请不要直接商用,概不负责任何法律责任。 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习使用FFmpeg开发视频监控项目,并动手操练。具体内容包括: 一、视频监控的架构和流程二、FFmpeg4.3+SDL2+Qt5开发环境的搭建三、FFmpeg的SDK编程回顾总结并操练四、SDL2.0的编程回顾总结并操练五、颜色空间转换RGB和YUV的原理与实战六、Qt5+FFmpeg本地摄像头采集预览实战七、代码封装:摄像头h264/5编码并存储八、Qt5+FFmpeg单路网络摄像头采集预览九、Qt5+FFmpeg单路网络摄像头采集预览录制会看十、onvif与GB/T-28181的简介  音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢?   因为没有学习音视频和流媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。 所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。   梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。  目前全身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值