WebRTC笔记之二十二:基于WebRTC的视频聊天室—QHTalkGenius
利用空余时间,前后历时5个月,在公司大佬杰哥的指导下,QHTalkJanus终于搞定了。功能很简单,参考Janus的web客户端来做的,主要实现了三部分:1.Janus信令解析—这个用的是开源库WebSocketPP;2.PeerClient—基于WebRTC封装了Publisher和Subscriber;3.UI—当然是Qt啦。各部分之间低耦合,可以独立封装成库。当然小的bug肯定会有,毕竟这只是个Demo,不过比网上那些编都编不过的....,肯定会好很多,而且实现的每一步都记录在了专栏中,方便查阅。
一.开发环境
操作系统:Win10
客户端:
Qt 5.12.2 MSVC2017
websocketpp-0.8.2
openssl_1_1_1l
WebRTC 2021年3月的master分支,如果用最新的源码也是可以的,毕竟用《VS工程转换工具》可用很方便的转成支持realse/debug的VS工程。
json解析没用WebRTC自带的json库,用的是nlohmann json,这个库好用的不得了,之前我的博客也推荐过,详见:推荐一个好用的C++ json库:nlohmann json
服务器:Janus
二.效果
1.登录
这里密码没任何作用,用户名可以随意设置,当然登录前先要配置服务器(PS:服务器建议自己手动搭建一个)
点击顶部的小齿轮就能打开服务器配置窗口了
如果服务器地址错误,或者服务器未启动,会给出提示
2.推流和停止推流
支持麦克风/扬声器音量和静音设置
支持动态切换音视频设备
3.拉流
这里只拉了四路,当然更多路也是支持的
PS:本专栏所有文章均提供源码下载
原创不易,转载请标明出处:https://blog.csdn.net/caoshangpa/article/details/123193505
WebRTC笔记之二十二:基于WebRTC的视频聊天室—QHTalkGenius相关推荐
- OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五
OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...
- OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己
OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...
- OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十
OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...
- 二十四.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例
这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Web渗透的第一步工作,涉及网站信息.域名信息.端口信息.敏感信息及指纹 ...
- 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环
目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...
- Android开发笔记(一百二十二)循环器视图RecyclerView
RecyclerView RecyclerView是Android在support-v7库中新推出控件,中文别名为循环器视图,它的功能非常强大,可分别实现ListView.GridView,以及瀑布流 ...
- GUI的演化和python编程——Python学习笔记之二十二
GUI的演化和python编程--Python学习笔记之二十二 写完了有关长寿的两篇博文,本该去完成哥德尔那个命题六的.对计算机图形界面的好奇,让我把注意力暂时离开那个高度抽象难读的哥德尔,给转到计算 ...
- uniapp 学习笔记二十二 购物车页面结构搭建
uniapp 学习笔记二十二 购物车页面结构搭建 cart.vue <template><view><view class="flex padding" ...
最新文章
- Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller
- spring开发_Spring+Struts2
- linux sshd cpu 过高 问题解决
- 解读谷歌事件中的失语症现象
- Bellman-Ford算法
- linux wifi关闭5g,TP-Link路由器如何关闭5G无线Wi-Fi信号?
- 数据类型和运算符_月隐学python第3课
- 操作系统(李治军) L8 CPU管理的直观想法
- 自己开发的一款基于PagedDataSource的datalist repeater控件,只需要在源程序中添加三行代码,即可实现通用分页
- Malta中any函数
- python标签打印工具_NiceLabel Designer 2017条码标签打印软件
- STM32F407 窗口看门狗 个人笔记
- Vitamin-R for Mac(GTD工作效率管理工具)
- libevent源码分析系列
- 怎么配置mysql数据源_mysql怎么样配置ODBC数据源
- 数学建模人口模型及matlab算法解
- 【spring mvc】annotation-driven 配置详解
- 南京计算机徐宪忠,nakaga
- Pigeon服务的注册与发现
- 计算机怎么取消u盘启动程序,如何设置电脑启动项的为U盘启动,小编教你如何设置电脑启动项的为U盘启动...
热门文章
- ansible控制windows 2019
- Linux中软件的安装方式
- 从键盘录入一个字符串,统计该串中有大写字母、小写字母、数字各有多少个。比如:Hello12345World大写:2个 小写:8个数字:5个。
- python量化策略源码_【Python量化投资】趋向系统指标策略 ADX、DMI指标用于股票池(附源码)...
- 千兆路由器怎么设置网速最快_无线路由器要用千兆,你家的网速才能真正上1000兆...
- 半小时搭建电子商务网站--opencart
- 因果推理概念再细化和梳理
- 【Xdclss项目】MyBatis(4.28-c13)
- 海豚浏览器这个公司企业文化和工作环境怎么样?适合毕业生加入么?
- 高通WLAN稳定和功耗分析--WLAN功率测量