摘要
本文描述了WebRTC标准中的会话描述协议(SDP)。
两个浏览器端的WebRTC应用在开始传输音视频数据之前,需要借助RTCPeerConnection对象建立会话。
建立会话的主要目的如下:
1.描述会话名称、会话时长。
2.协商音视频编解码标准(如:Opus、G722、VP8)、音频采样率和通道数、音频帧时长等。
3.协商网络通信质量反馈和改善策略,如:采用什么拥塞控制算法、是否开启NACK、FEC等。
4.协商网络安全机制和相关参数,如:ICE用户名和密码,DTLS证书指纹,DTLS用户角色等。
5.收集网络传输Candidate,构建CandidatePair列表。
6.根据CandidatePair列表和用户配置的优先级规则,逐个尝试建立连接,直到首个连接建立成功。
在会话相关参数尚未协商确定之前,WebRTC是不知道如何传输音视频数据的。
WebRTC如何描述会话相关参数呢?答案就是采用SDP。
SDP是一个可扩展的规范,WebRTC中的SDP是在标准SDP规范基础上扩展而成的。
标准SDP规范
SDP是Session Description Protocol(会话描述协议)的缩写。
SDP描述由许多文本行组成,文本行的格式定义为:<key>=<value>[CRLF]
<key>是一个英文字母,<value>是结构化的文本串,<value>的格式依<key>而定。