目录
一,对象创建, 连接OWT服务器过程
1.1 主要类功能概述:
1.2 用户点击“connect”, 对象创建与连接时序图:
二,订阅流
2.1 订阅流 subscribe创建并初始化peerconnection
2,2 订阅流 CreateOffer
2,3 订阅流交换Answer SDP
三,发布流
3.1Publish创建过程
3.2 Publish_Offer
3.3 Publish_Answer
3.4 Publish_failed
四,解码过程
4.1 解码器创建过程
4.2 解码过程
五,编码过程
5.1 编码器创建和初始化过程
5.2 编码并发送RTP/RTCP过程
OWT在windows的客户端,是了解OWT与webrtc C++代码很好的途径,下载编译好之后,在visual studio可以同时单步调试 OWT客户端、OWT SDK、WebRTC全部C++源代码,方便理解掌握源码结构。下载编译教程见:visual studio 2019单步调试OWT webrtc client环境搭建
一,对象创建, 连接OWT服务器过程
1.1 主要类功能概述:
CConfSampleMFCDlg: 主要窗口对话框,显示合成流视频,转发流视频,见下图
CConfServer: 用户点击"connect"按钮,弹出的对话框,要求用户输入OWT server URL,见下图
owt::base::VideoRenderWindow: owt sdk封装的视频输出窗口,需要调用层提供窗口句柄hwnd;
owt::conference::ConferenceClient : owt sdk封装的视频会议房间管理类,加入、退出指定的房间:Join()/Leave(), 发布流到当前房间:Publish(), 从当前房间订阅流:Subscribe();发送文本消息:Send();
owt::conference::ConferenceSocketSignalingChannel: 会议房间与OWT server之间的信令通道,基于c++ socket.io库(与js socket.io 相似)
1.2 用户点击“connect”, 对象创建与连接时序图:
二,订阅流
2.1 订阅流 subscribe创建并初始化peerconnection
owt::conference::ConferencePeerConnectionChannel: 管理一个与MCU的PeerConnection,以及它基于Socket.IO的信令通道ConferenceSocketSignalingChannel
owt::base::PeerConnectionChannel:
持有并管理一个webrtc::PeerConnectionInterface peer_connection_
VideoEncoderFactory: 视频编码器工厂类
VideoDecoderFactory: 视频解码器工厂类
webrtc:PeerConnectionInterface: WebRTC 目录内的PeerConnection类,最主要的接口类
2,2 订阅流 CreateOffer
2,3 订阅流交换Answer SDP
三,发布流
3.1Publish创建过程
NOTE: ConferencePeerConnectionChannel创建过程,与2.1节一致,会创建对应的编解码器工厂类
3.2 Publish_Offer
Note: Publish Offer/Answer过程,与2.2节、 2.3节 Subscribe 过程一致,只是功能参数不同
3.3 Publish_Answer
3.4 Publish_failed
这是失败的执行顺序之一:
四,解码过程
4.1 解码器创建过程
创建外层对象:
创建decoder实例:



