文章目录
Track,MediaChannel,MediaStream的关系
Audio/Video track,MediaChannel,MediaStream是Webrtc的业务核心,对媒体的操作都是围绕着这三个对象进行,弄清出它们见的关系及作用,就等于弄清了Webrtc的骨架,对阅读Webrtc的代码大有益处。先看下面一张图:
三层结构:
将这些关系归纳为三层结构,分别如下:
- Session层,即对外的接口层
- Track就在这层中,对应的类为
VideoTrack
和AudiTrack
,代表了视频和音频的源。 - 通过
PeerConnectionFactoryInterface
的CreateVideoTrack
和CreateAudioTrack
来创建。 - 通过
PeerConnectionInterface
的AddTrack
加入到pc对象中。 - 这些Track最终会体现在本地的sdp中。
- MediaEngine层
根据本地sdp或sdp的协商结果,来产生MediaChannel。
MediaChannel代表一个Video或Audio通道,它里面会有多个不同方向的stream。
- Call层
Call中也管理着一种stream,但它与MediaEngine