stream,source,track 关系
1,介绍
track :是一个音频或视频数据流(发送或接收)。它有输入和输出,对于要发送的 track 来说,输入是本地的采集,输出是远端,对于要接收的 track 来说,输入是远端,输出是本地的渲染。
source: 可以作为 track 的输入数据源,它的消费者叫 sink,一个 source 可以有多个 sink。给 track 加 sink 实际上都是给 track 的 source 加 sink。
stream:是 track 的集合,为了更灵活的控制本地和远端的 track 组合
2, 结构图
备注:红色线是视频流进入的位置。
3,关键类
RTCVideoDeviceCapturer:硬件设备包装器,并负责接收采集来的数据。
VideoAdapter:格式化视频输出数据,通过 VideoSinkWants 设置参数
VideoBroadcaster:存储 sourcesink 对象,用于广播视频数据
CapturerTrackSource:继承自 VideoTrackSource,可以理解为一个 source 的实例
VideoTrack:track 实例
VideoTrackProxyWithInternal<VideoTrack>: VideoTrack 的代理类,用于线程切换
VideoRtpTrackSource: 代表远程 source
版权声明: 本文为 InfoQ 作者【越努力,越幸运】的原创文章。
原文链接:【http://xie.infoq.cn/article/c05bd3e24d0bfc782899fc2f7】。文章转载请联系作者。
评论