门户
书籍
教程
论坛
问答
下载
签到
个人空间
帐号
自动登录
找回密码
密码
登录
立即注册
账号
自动登录
找回密码
密码
登录
立即注册
请绘制轨迹完成人机验证
由vaptcha提供技术支持
登录
注册
搜索
搜索
搜索
热搜
qml
quick
串口
输入中文
数据库
arm
百度地图
qt聊天
QT安装
安装
多窗口
中文乱码
聊天
局域网
鼠标
QT
图片
乱码
rs485通讯
多线程
android
多文档编辑器
本版
用户
本版
用户
【HUX】问题互助平台
博客
动态
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
开放区(网友自由发帖区)
›
项目作品
›
Qt编写推流综合应用示例(文件推流/桌面推流/本地摄像头 ...
发布主题
返回列表
Qt编写推流综合应用示例(文件推流/桌面推流/本地摄像头/...
0
回复
1017
查看
[复制链接]
liudianwu
当前离线
积分
2617
liudianwu
累计签到:7 天
连续签到:1 天
来源:
2023-4-20 11:44:50
显示全部楼层
|
阅读模式
## 一、功能特点
### 1.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. 支持Qt4/Qt5/Qt6任意版本,支持任意系统(windows/linux/macos/android/嵌入式linux等)。
### 1.2 网络推流
1. 支持各种本地视频文件和网络视频文件。
2. 支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。
3. 支持将本地摄像头设备推流,可指定分辨率和帧率等。
4. 支持将本地桌面推流,可指定屏幕区域和帧率等。
5. 自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。
6. 可实时切换预览视频文件。
7. 推流的清晰度和质量可调。
8. 可动态添加文件、目录、地址。
9. 视频文件自动循环推流,如果视频源是视频流,在掉线后会自动重连。
10. 网络视频流自动重连,重连成功自动继续推流。
11. 网络视频流实时性极高,延迟极低,延迟时间大概在100ms左右。
12. 推流后除了用rtmp地址访问以外,还支持直接hls/webrtc访问,可以直接浏览器打开看实时画面。
13. 支持Qt4/Qt5/Qt6任意版本,支持任意系统(windows/linux/macos/android/嵌入式linux等)。
## 二、使用步骤
### 2.1 文件推流
1. 选择或者填写要监听的网卡IP地址,填写好监听端口,建议默认即可。
2. 单击添加文件或者目录,选择要加入推流的音视频文件,添加成功以后会自动罗列在表格中。
3. 单击启动服务按钮,会变成停止服务字样表示启动服务成功。
4. 从表格中选中一行,会自动将该音视频文件的播放地址填写到右下角,同时也会自动拷贝到剪切板。
5. 将地址粘贴到浏览器地址栏回车即可查看播放音视频,可以任意切换播放进度。
6. 将地址用vlc或者其他播放器打开即可查看播放音视频,可以任意切换播放进度。
7. 文件推流服务支持多个同时请求,表格中会显示每个文件对应正在请求中的数量,右下角也有统计总请求数量,还有统计不同IP地址的请求总数。
8. 单击停止服务按钮会停止所有服务,由于存在缓存的关系,停止以后缓存中的视频还可以继续播放,过一段时间就不能播放。
9. 在启动服务后支持动态添加文件、移除文件、清空文件。
### 2.2 网络推流
1. 选择或者填写推流的前缀地址,建议默认即可。
2. 单击添加文件或者目录,选择要加入推流的音视频文件,添加成功以后会自动罗列在表格中。
3. 单击添加地址,可以从下拉框中选择或者填写,下拉选项中是一些格式模板,比如本地摄像头、本地桌面、电视台、网络摄像机等。
4. 单击启动服务按钮,会变成停止服务字样表示启动服务成功。
5. 在启动服务后支持动态添加地址、移除地址、清空地址。如果处于启动服务中,添加后会立即推流。
6. 从表格中选中一行,会自动将播放地址填写到右下角,同时也会自动拷贝到剪切板。
7. 一次推流可以分多种不同的地址访问,右下角总共有三种地址,第一种是rtmp开头的视频流地址,可以用各种播放器打开,第二种是hls(m3u8)格式的地址,一般用于网页浏览器显示,第三种是webrtc格式的地址,一般用于浏览器或者部分支持该格式的播放器。
8. 将地址粘贴到浏览器地址栏回车即可查看视频流,地址也可以用播放器打开。
9. 单击停止服务按钮会停止所有服务,在启动服务后支持动态添加文件、移除文件、清空文件。
## 三、体验地址
1. 体验地址:[
https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g
](
https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g
) 提取码:01jf 名称:bin_video_push
2. 国内站点:[
https://gitee.com/feiyangqingyun
](
https://gitee.com/feiyangqingyun
)
3. 国际站点:[
https://github.com/feiyangqingyun
](
https://github.com/feiyangqingyun
)
4. 个人主页:[
https://blog.csdn.net/feiyangqingyun
](
https://blog.csdn.net/feiyangqingyun
)
5. 知乎主页:[
https://www.zhihu.com/people/feiyangqingyun/
](
https://www.zhihu.com/people/feiyangqingyun/
)
## 四、各种命令
1. rtmp推流 ffmpeg -re -stream_loop -1 -i f:/mp4/10.mp4 -c copy -f flv rtmp://192.168.0.110:6908/stream
2. rtsp推流 ffmpeg -re -stream_loop -1 -i f:/mp4/10.mp4 -c copy -f rtsp
rtsp://192.168.0.110:6907/stream
3. 远程推流 ffmpeg -re -stream_loop -1 -i f:/mp4/11.mp4 -c copy -f flv rtmp://47.114.127.78:6908/stream
4. 网络设备 ffmpeg -i
rtsp://admin:Admin123456@192.168.0.64:554/Streaming/Channels/101
-vcodec copy -acodec copy -f flv rtmp://192.168.0.110:6908/stream
5. 实时桌面 ffmpeg -f gdigrab -r 30 -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp -g 5 -an
rtsp://192.168.0.110:6907/stream
6. 本地设备 ffmpeg -f dshow -i video="USB Video Device":audio="麦克风 (USB Audio Device)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp
rtsp://192.168.0.110:6907/stream
7. 播放设备 ffplay -f dshow video="USB Video Device":audio="麦克风 (USB Audio Device)"
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
x
回复
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了