webrtc 学习笔记--libjingle 部分(P2P传输)
来源:互联网 发布:mac只装win10单系统 编辑:程序博客网 时间:2024/05/29 14:53
1, libjing 基本结构。
下图仅描述视频部分的传输,音频部分有所不同,但是基本结构类似。图中虚线表示媒体数据流向。
VideoCapture: 视频捕捉功能抽象, 通过SignalVideoFrame信号传输捕捉的Frame数据。
MediaChannel: 媒体相关功能的抽象,接收capture/network的数据,处理后发送给其他模块。实际的处理工作需要有继承类调用其他模块实现。
TransprotChannel: 提供抽象的P2P传输功能。实现ICE协议,ICE协商后,会选择最好的方法发送。对外只暴露发送和接收的接口。
Port: 具体的传输模块。派生出各种端口类型,如UDP/Stun/TCP/Turn等。 具体的端口根据相应的协议发送数据。
Candidate: 对本端网络通信能力的一种描述。对于UDP/Stun协议,candidate仅包含IP及端口信息,对于trun,包含turn server的IP,端口,以及用户名密码等。candidate由本端代码生成。生成后通过信令发送给对端。对端会在本端所有的candidate中选择一个最好的建立与本端的连接。
BaseChannel: 管理MeidaChannel和TransportChannel并维护本端和对端的媒体描述信息(description)
2, ICE 相关
本端会生成所有网络接口对应不同协议的candidate。 每一个candidate实际上描述了和自己的通信方式。比如一个Stun类型的candidate会包含本端在防火墙外的IP
和端口类型。本端会通过信令协议(sip/xmpp/http)将自己的所有的candidate发送给对端。对端接收到后,会尝试连接, 并找到一个最好的连接方式建立和本端的
连接。之后的数据将通过此连接传输。
3, 启动过程以及对象的建立
4, 主要对象关系Media部分
5, 主要对象关系P2P部分
- webrtc 学习笔记--libjingle 部分(P2P传输)
- WebRTC 学习笔记(2)--libjingle 部分 (P2P传输)
- WebRTC 学习笔记(2)--libjingle 部分 (P2P传输)
- WebRTC 学习笔记(2)--libjingle 部分 (P2P传输)
- libjingle 部分(P2P传输)
- webrtc libjingle 学习笔记
- webrtc学习笔记2——p2p传输
- P2P传输的开源库:Libjingle库 综述
- libjingle源码分析之三:P2P传输
- P2P传输的开源库:Libjingle库 综述
- libjingle学习笔记
- libjingle学习笔记
- libjingle学习笔记
- [libjingle学习笔记]编译注意事项
- webrtc libjingle worker thread
- P2P Libjingle介绍
- [libjingle学习笔记]libjingle生成vs工程文件
- libjingle学习笔记(2)--Thread MessageQueue SocketServer...
- 10053事件分析案例一则
- [POJ2186]Popular Cows
- 虚拟机VMware下安装CentOS6.4
- LeetCode 66 — Plus One(C++ Java Python)
- 住建部:针对城镇居民及常住人口住房问题提两个新政策
- webrtc 学习笔记--libjingle 部分(P2P传输)
- 另一种实现“饥汉”与“懒汉”
- 阿里巴巴研发题目
- linux下启动参数大杂烩
- usbip(usboverip)远程设备映射搭建
- 《黑马程序员》 CyclicBarrier的使用练习
- Cython编程入门
- using lamda to make RAII idom
- 虚线边框实现