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:服务器建议自己手动搭建一个)
点击顶部的小齿轮就能打开服务器配置窗口了

WebRTC笔记之二十二:基于WebRTC的视频聊天室—QHTalkGenius_第1张图片

 如果服务器地址错误,或者服务器未启动,会给出提示

 WebRTC笔记之二十二:基于WebRTC的视频聊天室—QHTalkGenius_第2张图片

2.推流和停止推流

 支持麦克风/扬声器音量和静音设置
支持动态切换音视频设备

3.拉流

这里只拉了四路,当然更多路也是支持的

PS:本专栏所有文章均提供源码下载 

原创不易,转载请标明出处:https://blog.csdn.net/caoshangpa/article/details/123193505

你可能感兴趣的:(WebRTC笔记,webrtc,音视频,服务器,WebSocket,Janus)