标题:Qt推流程序自动生成网页远程查看实时视频流(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)
作者:liudianwu
日期:2023-05-19 08:33
内容:
## 一、前言说明
推流程序将视频流推送到流媒体服务器后,此时就等待验证拉流播放,一般可以选择ffplay命令行播放或者vlc等播放器打开播放,也可以选择网页直接打开拉流地址播放,一般主流的浏览器都支持网页直接播放hls/m3u8/webrtc类型的视频流,而且推流的主要目的可能就是为了能够在各个客户端中取流播放,尤其是网页端,毕竟在各种操作系统上,网页浏览器是基础组件,只要你的程序能够在网页中运行,那就相当于通吃各种操作系统,不用再去费劲心力的去开发各个平台的程序。视频监控行业现在也是越发严格的要求最好能够在网页上直接播放视频流,尤其是各个监控摄像头,由于rtsp/rtmp默认网页不支持直接播放,需要推流转换成hls/m3u8/webrtc来播放,hls格式的一般延迟比较大,首推webrtc格式的进行播放,实时性最好。
很多时候未必电脑上有播放器,但是浏览器肯定有,为了第一时间验证推流后的视频流是否正常,所以直接在推流程序中加上了测试网页的功能,就是主动生成一个宫格形式的视频播放列表,自动打开网页立即预览实时效果,本人不是专业的网页程序员,所以采用了最为简单直接的办法,那就是用iframe框架嵌套,一个通道相当于就一个iframe,默认iframe是带边框的,可以用frameborder=0属性来去掉,默认网页有边距和间距,可以用样式body{margin:3px;padding:0px;}来调整。自此推流后一键生成网页自动打开实时预览,非常哇咔咔。
## 二、功能特点
### 2.1 文件推流
1. 指定网卡和监听端口,接收网络请求推送音视频等各种文件。
2. 实时统计显示每个文件对应的访问数量、总访问数量、不同IP地址访问数量。
3. 可指定多种模式,0-直接播放、1-下载播放。
4. 实时打印显示各种收发请求和应答数据。
5. 每个文件对应MD5加密的唯一标识符,用于请求地址后缀区分访问哪个文件。
6. 支持各种浏览器(谷歌chromium/微软edge/火狐firefox等)、各种播放器(vlc/mpv/ffplay/potplayer/mpchc等)打开请求。
7. 播放过程中可以任意切换播放进度,支持倍速播放。
8. 需要推流的文件名称历史记录自动存储和打开加载应用。
9. 切换文件获取访问地址,自动拷贝地址到剪切板方便直接粘贴测试使用。
10. 极低CPU占用,128路1080P同时推流不到1%CPU占用,异步发送数据机制。
11. 纯QTcpSocket通信,不依赖流媒体服务程序,核心源码不到500行,注释详细,功能完整。
12. 每个推流都可以手动指定唯一标识符(方便拉流/用户无需记忆复杂的地址),没有指定则按照 ..
#1 [yeshi_long 11-02 15:04]
请教WebRtc推流用的什么库,除了使用Google官方的webrtc库之外还有什么推荐的,谷歌的库光下载下来就十几个G还要梯子。
#2 [shokokawaii 11-05 09:53]