HTML躬行记(3)——WebRTC视频通话

1、术语


在实现一个简单的视频通话之前,还需要了解一些相关术语。

1)SDP

SDP(Session Description Protocal)是一个描述会话元数据(Session Metadata)、网络(Network)、流(Stream)、安全(Security)和服务质量(Qos,Grouping)的WebRTC协议,下图是 SDP 各语义和字段之间的包含关系。

换句话说,它就是一个用文本描述各端能力的协议,这些能力包括支持的音视频编解码器、传输协议、编解码器参数(例如音频通道数,采样率等)等信息。

下面是一个典型的SDP信息示例,其中 RTP(Real-time Transport Protocol)是一种网络协议,描述了如何以实时方式将各种媒体从一端传输到另一端。

=================会话描述======================

v=0

o=alice 2890844526 2890844526 IN IP4 host.anywhere.com

s=-

=================网络描述======================

c=IN IP4 host.anywhere.com

t=0 0

================音频流描述=====================

m=audio 49170 RTP/AVP 0

a=rtpmap:0 PCMU/8000

================视频流描述=====================

m=video 51372 RTP/AVP 31

a=rtpmap:31 H261/90000

RTP 协议的作用是让数据包有序,它是应用层传输协议的一种,与 HTTP/HTTPS 同级。

除了 RTP 之外,还有一种 RTCP 协议,与 RTP 处于同一级,并且可对其做丢包控制。

2)ICE Candidate

ICE 候选者描述了 WebRTC 能够与远程设备通信所需的协议、IP、端口、优先级、候选者类型(包括 host、srflx 和 relay)等连接信息。

host 是本机候选者,srflx 是从 STUN 服务器获得的候选者,relay 是从 TURN 服务器获得的中继候选者。

在每一端都会提供许多候选者,例如有两块网卡,那么每块网卡的不同端口都是一个候选者。

WebRTC 会按照优先级倒序的进行连通性测试,当连通性测试成功后,通信的双方就建立起了连接。

3)NAT打洞

在收集到候选者信息后,WebRTC 会判断两端是否在同一个局域网中,若是,则可以直接建立链接。

若不是,那么 WebRTC 就会尝试 NAT 打洞。WebRTC 将 NAT 分为 4 种类型:完全锥型、IP 限制型、端口限制型和对称型。

前文候选者类型中曾提到 STUN 和 TURN 两种协议,接下来会对它们做简单的说明。

STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)是一种网络协议,允许位于

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值