(五)WebRTC手记Channel概念
转自: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概念相关推荐
- Flume 1.7 源码分析(五)从Channel获取数据写入Sink
Flume 1.7 源码分析(一)源码编译 Flume 1.7 源码分析(二)整体架构 Flume 1.7 源码分析(三)程序入口 Flume 1.7 源码分析(四)从Source写数据到Channe ...
- (六)WebRTC手记之WebRtcVideoEngine2模块
转自:http://www.cnblogs.com/fangkm/p/4401143.html 终于讲到视频数据的编码发送模块了,不容易.总体来说也看了不少时间WebRTC的源码了,最大的感触就是各个 ...
- 五个计算机软件,近五个交易日计算机软件概念股市复盘(4月19日)
计算机软件概念近五个交易日股市资讯复盘: 2021-04-16复盘:普遍报涨 榕基软件(6.650,0.480,7.780%)领涨,启明信息(11.390,0.810,7.656%) .多伦科技(7. ...
- WebRTC手记之初探
作者: 博客园 - 孤竹君 WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能.而且WebRTC项目是 ...
- 数据科学家应当了解的五个统计基本概念
从高的角度来看,统计学是一种利用数学理论来进行数据分析的技术.象柱状图这种基本的可视化形式,会给你更加全面的信息.但是,通过统计学我们可以以更富有信息驱动力和针对性的方式对数据进行操作.所涉及的数学理 ...
- 超级个人计算机用于股票交易,近五个交易日超级计算机概念股市复盘,哪些股票值得关注(2月23日)...
超级计算机概念近五个交易日股市走势复盘,以下股票值得关注: 2021-02-22复盘:普遍报跌 拓尔思(9.940,-0.390,-3.775%)领跌,中科曙光(30.420,-0.530,-1.71 ...
- WebRTC手记之本地视频采集
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374610.html 前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程.由 ...
- 五个计算机软件,近五个交易日计算机软件概念股市分析(03月06日)
计算机软件概念近五个交易日股市走势复盘,狙击这些股: 2021-03-05复盘:普遍报涨 紫天科技(48.890,3.810,8.452%)领涨,佳创视讯(3.740,0.230,6.553%) .信 ...
- PHP:第五章——字符串的概念
<?php header("Content-Type:text/html;charset=utf-8"); //字符串概念://1.单引号.//里面的变量不会被解释 //例: ...
最新文章
- php 现货 结算算法,PHP算法逻辑:如何计算购买量?
- 现学现卖微信小程序开发(二)
- Mysql忘记用户密码的解决办法
- python迭代数据类型_在大型数据集上自动迭代推断数据类型和最小项大小
- ajax mysql项目 react_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)
- [转]25个增强iOS应用程序性能的提示和技巧
- Zoe Liu:被Chrome Media团队的专注精神感染
- python实现多线程的三种方法threading.Thread(模块)的继承实现和函数实现;以及concurrent.futures模块的线程池实现
- html垂直边距,html – Styling Bootstrap的btn-group-justified,添加边距和垂直尺寸
- 迁移mysql数据目录
- 推荐系统思维导图——第二章
- ubantu删除文件(夹)
- 修改网课播放器倍速播放
- 移动端css文件命名,移动端手机前端css命名规范.docx
- 主板电源接口测试软件,雷电接口加入! Intel原厂血统Z77测试
- 使用gtest做单元测试
- 负载均衡设备oracle,高可用的Oracle数据库负载均衡技术--深信服AD系列应用交付平台...
- 格林尼治时间与本地时间的转换
- 华为eNSP防火墙USG5500基本配置
- 实现摄氏度与华氏度之间的转换
热门文章
- 算法积累之算法时间复杂度
- Android 自带图标库 android.R.drawable
- Ubuntu的防火墙配置-ufw-iptables(端口的开关)
- 终于收到微软的衬衫了!!!
- python打开excel的函数-Python读取excel文件中带公式的值的实现
- POJ 1679 判断最小树是否唯一
- C语言经典例11-斐波那契数列
- 【算法】双指针算法 ( 有效回文串 II )
- 【Android 应用开发】Android 工程修改包名流程 ( 修改 applicationId | 修改 package | 修改 R 资源引用 | 修改 BuildConfig 引用 )
- 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )