首页| 论坛| 消息

标题:画面拼接后推流/64路画面同时拼接到一路流/指定程序窗口采集推流/另一种解决方案
作者:liudianwu
日期:2025-09-23 10:14
内容:

## 一、前言说明
近期遇到一个需求,需要将对个画面合并到一个流中推流出去,这个有很多种方案去实现,一个方案是采用ffmpeg的滤镜,视频水印的方式叠加上去,测试下来行是行,就是编码占用压力巨大,有点得不偿失。另一个方案是拿到avframe数据,多个视频画面的frame重新组合成一个新的frame数据再编码发送,流程比较复杂繁琐,暂时放弃此方案。最后决定采用指定应用程序窗口采集的方式,比如将需要拼接的画面,按照九宫格方式,Qt中用表格布局,放到程序播放,然后ffmpeg中可以指定应用程序窗口采集录制,将录制的数据推流出去即可,流程完全复用之前的,啥都不用改,完美实现效果,采集编码的性能不错,唯一缺点就是需要打开播放画面,这块路数多了的话,必须开启硬解码,否则没有显示就无法采集画面,其实多出来的这点画面绘制的GPU占用也还好,毕竟就算采用frame数据拼接,也是需要解码出来才可以的,而且多个画面的frame拼接到一起占用的运算,远大于程序窗口采集。

## 二、效果图


## 三、功能特点
1. 支持各种本地音视频文件和网络音视频文件,格式包括mp3、aac、wav、wma、mp4、mkv、rmvb、wmv、mpg、flv、asf等。
2. 支持各种网络音视频流,网络摄像头,协议包括rtsp、rtmp、http等。
3. 支持本地摄像头设备推流,可指定分辨率、帧率、格式等。
4. 支持本地桌面采集推流,可指定屏幕索引、采集区域、起始坐标、帧率等,也支持指定窗口标题进行采集。
5. 可实时切换预览视频文件,可切换音视频文件播放进度,切换到哪里就推流到哪里。预览过程中可以切换静音状态和暂停推流。
6. 可指定重新编码推流,任意源头格式可选强转264或265格式。
7. 可转换分辨率推流,设置等比例缩放或者指定分辨率进行转换。
8. 推流的清晰度、质量、码率都可调,可以节约网络带宽和拉流端的压力。
9. 音视频文件自动循环不间断推流。
10. 音视频流有自动掉线重连机制,重连成功自动继续推流。
11. 支持各种流媒体服务程序,包括但不限于mediamtx、ZLMediaKit、srs、LiveQing、nginx-rtmp、EasyDarwin、ABLMediaServer。
12. 通过配置文件自动加载对应流媒体程序的协议和端口,自动生成推流地址和各种协议的拉流地址。可以通过配置文件自己增加流媒体程序。
13. 可选rtmp、rtmp格式推流,推流成功后,支持多种格式拉流,包括但不限于rtsp、rtmp、hls、flv、ws-flv、webrtc等。
1 ..

回复 发表
主题 版块