zoukankan      html  css  js  c++  java
  • WebRTC入门学习之初识WebRTC (转)

    一、WebRTC基本架构

             

             

                                                    图一  WebRTC总体架构,摘自百度百科

            先说说WebRTC大致的实现思路:我们创建的web app,然后在app中调用W3C提供的JS API,JS API 会调用浏览器中的C++层API,底层C++模块是来自Google的开源项目WebRTC,它可以让浏览器和浏览器直接传输音视频流。但若想就这样两个browser就直接通信仍是不行的,后面一节会讲到。

            再看上面的图, WebRTC有三个模块,Voice Engine(音频引擎),Video Engine(视频引擎),Transport。Voice Engine包含iSAC/iLBC Codec(音频编解码器,前者是针对宽带和超宽带,后者是针对窄带),NetEQ for voice(处理网络抖动和语音包丢失),Echo Canceler(回声消除器),Noise Reduction(噪声抑制);Video Engine包含VP8 Codec(视频图像编解码器),Video jitter buffer(视频抖动缓冲器,处理视频抖动和视频信息包丢失),Image enhancements(图像质量增强)。Transport包含SRTP(安全的实时传输协议,用以音视频流传输),Multiplexing(多路复用),P2P,STUN+TURN+ICE(用于NAT网络和防火墙穿越的)。除此之外,安全传输可能还会用到DTLS(数据报安全传输),用于加密传输和密钥协商。整个WebRTC通信是基于UDP的。

    二、W3C提供的WebRTC  API

    英文API:http://www.w3.org/TR/webrtc/(个人建议看英文版)

    中文API:http://www.iwebrtc.com/blog/webrtc1-0/(old版)

    三个主要API:

    MediaStream:获取音视频流

    RTCPeerConnection:用以音视频数据通信

    RTCDataChannel:用以任意应用数据通信

    学习重点:offer/answer状态机变化和ICE状态机变化,并且结合代码和整个流程图理解

                                                  图二 offer/answer状态机变化图,摘自W3C

                                                              图三 ICE状态机变化图,摘自W3C

                                                            图四 完整呼叫连接流程(*重点),摘自W3C

    三、WebRTC开源项目

    licode:http://chotis2.dit.upm.es/       MIT License

    kurento:http://www.kurento.org/      LGPL License

    Google也有官方的demo,github上也有比较好的demo(WebRTC-experiment  demo比较全)

    另外,大家也可以阅读《web性能权威指南》,里面也有关于WebRTC的讲解,讲的挺好的。

    原文转自 http://my.oschina.net/panpcui/blog/489571?p=1

  • 相关阅读:
    Winform配置文件读写操作
    Winform 实现图片轮播(解决Image.FromFile内存不足)
    asm磁盘dd破坏恢复
    文件系统重新分区oracle恢复
    删除分区 oracle asm disk 恢复
    raid强制上线后数据库无法启动故障处理
    记录一次oracle现场故障处理经过
    .makop病毒加密数据库恢复
    Oracle Recovery Tools解决数据库open过程报 ORA-01555错误
    操作系统层面反删除恢复文件损坏太多处理—-oracle碎片恢复
  • 原文地址:https://www.cnblogs.com/happykoukou/p/5708095.html
Copyright © 2011-2022 走看看