阿里巴巴口碑Android开发内推
1.WebRTC 全称 Web Real-Time Communication。 包含了媒体、加密、传输层等在内的多个协议,让浏览器在不安装任何插件的情况拥有P2P音视频通信的能力,极大的降低了音视频实时通信技术的门槛。
2.WebRTC 拥有灵活的信令,可以便捷的对接现有的SIP 和电话网络的系统。
3.WebRTC代码是跨平台的,支持当前主流操作系统,像Windows、iOS、Android、Mac OS X、Linux;Android平台中API支持录屏视频流传输。
4.Safari/Opera/Chrome/Firefox浏览器的支持
5.WebRTC 的核心组件
- 音视频引擎:OPUS、VP8 / VP9、H264
- 传输层协议:底层传输协议为 UDP
- 媒体协议:SRTP / SRTCP
- 数据协议:DTLS / SCTPP2P
- 内网穿透:STUN / TURN / ICE / Trickle ICE
- 信令与 SDP 协商:HTTP / WebSocket / SIP、 Offer Answer 模型
9.WebRTC内部结构简化图
最底层是硬件设备,上面是音视频捕获模块。中间部分为音视频引擎。音频引擎负责音频采集和传输,具有降噪、回声消除等功能。视频引擎负责网络抖动优化,互联网传输编解码优化。在音视频引擎之上是 一套 C++ API,在 C++的API之上是提供给浏览器的Javascript API。
-
WebRTC涉及到的协议栈
WebRTC 核心的协议都是基于 UDP 基础上搭建起来的。其中,ICE、STUN、TURN 用于内网穿透, 解决了获取与绑定外网映射地址;DTLS 用于对传输内容进行加密;SRTP 与 SRTCP 是对媒体数据的封装与传输控制协议;SCTP 是流控制传输协议,提供类似 TCP 的特性,SCTP 可以基于 UDP 上构建,在 WebRTC 里是在 DTLS 协议之上;RTCPeerConnection 用来建立和维护端到端连接,并提供高效的音视频流传输;RTCDataChannel 用来支持端到端的任意二进制数据传输。