zoukankan      html  css  js  c++  java
  • (五)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。

  • 相关阅读:
    C#_简单实用的翻页
    C#注意事项及错误处理
    C# 委托和Lambda---基础
    C#_数据转换 实用方法
    C#图片处理---基础
    C#_使用SMTP发送邮件
    C#_生成HTML
    C#操作XML文档---基础
    百度地图 使用两条平行线表示路线
    Gradle version 2.10 is required. Current version is 2.8.
  • 原文地址:https://www.cnblogs.com/x_wukong/p/5542269.html
Copyright © 2011-2022 走看看