WebRTC之channel(五)
来源:互联网 发布:苍云脸型数据 编辑:程序博客网 时间:2024/06/07 20:56
转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html
前面两篇博文完整地介绍了WebRTC音视频的采集模块,接下来应该开始介绍关键的音视频编码模块。不过在介绍音视频编码模块之前,需要介绍一下Channel概念,WebRTC的每路数据的传输流程都封装成一个Channel对象。详细UML图如下:
MediaChannel及其派生类封装了待传输的编解码、RTP/RTCP封包解包等逻辑,具体对象由相应的Media Engine类创建,如图:视频Channel最终的实现类WebRtcVideoChannel2由WebRtcVideoEngine2创建,音频Channel最终的实现类WebRtcVoiceMediaChannel由WebRtcVoiceEngine创建。
Channel部分暴露给外界的操作接口还是ChannelManager类中管理的BaseChannel及其派生类,通过这些类,外部模块可以设置音视频的采集源(如VideoCapturer)、为网络发送过来的音视频数据指定渲染器(如AudioRenderer/VideoRenderer),这些类对MediaChannel及其派生类的基础上再包装了一层,如图所示,BaseChannel实现MediaChannel的NetworkInterface接口完成封装好的RTP/RTCP数据包包的发送操作,具体纯数据的网络发送请求最终委托给TransportChannel对象。TransportChannel对象的逻辑以后介绍网络层的时候再讲。
好了,下一篇开始介绍WebRtcVideoEngine2和由它创建的视频Channel类WebRtcVideoChannel2。
- WebRTC之channel(五)
- WebRTC Channel概念
- WebRTC手记Channel概念
- WebRTC手记Channel概念
- WebRTC手记Channel概念
- WebRTC手记Channel概念
- WebRTC学习之五:本地音频采集
- Flume快速入门(五):File Channel之重播(replay)
- #Webrtc AGC 算法原理介绍(五)
- webrtc之旅之什么是webrtc(一)
- WebRTC之初探(一)
- Java NIO (五) Channel to Channel Transfers
- flume学习(五):Flume Channel Selectors使用
- Flume NG 学习笔记(五)Sinks和Channel配置
- Flume学习(五):Flume Channel Selectors使用
- flume学习(五):Flume Channel Selectors使用
- flume学习(五):Flume Channel Selectors使用
- Android WebRTC 音视频开发总结(五)-- webrtc开发原型
- 店铺红包的正确使用姿势
- 文本分类中的降维方法总结
- 对象池应用
- Nginx源码阅读(ngx_master_process_cycle)
- 栈应用之括号匹配
- WebRTC之channel(五)
- 目前市面上性价比最好的三模北斗定位导航模块ATGM336H
- 将彩色视频转换为灰度视频源代码
- Android官方DataBinding(三):RecyclerView 使用ViewDataBinding更新数据
- springboot集成swagger的应用
- HDU 6114
- 一个疯狂的地下市场--支付牌照的买卖
- 数据仓库是干什么的,到现在,我终于看到了成果
- 搭建商城小程序