WebRTC[20]-SDP参数详解
目录
前言
今天在我们简单说明SDP信息中的一些基础字段的含义之前,首先来了解一下SDP实际意义。当初始化多媒体会议、VoIP电话、视频流或者其他会话的时候、往往需要对参会者提供媒体信息、传输地址以及其他与会话相关的描述性信息,不然就会缺少建立会话的基础。此时,SDP诞生了,它承担了这个任务。SDP为了描述这些信息,因此提供了一个标准的形式,当然这些信息以什么方式传输不会影响会话的建立。SDP只是一个单纯的会话描述的格式,SDP并不包含传输协议。在任何场合下,SDP可以利用不同的传输协议,比如SAP、SIP、RTP、使用MIME扩展的电子邮件和 HTP 等。SDP具备一定的通用性,因此它可以广泛的应用于各种程序和系统。
正文
本文通过SDP的结构组成情况,分别说明每个字段的意义,主要看其中的注释描述。注意:SDP规范一直在发展变化中,本文主要依据 RFC4566 草案展开介绍。
一、Session 相关描述信息
SDP信息交换过程其实就是围绕会话Session进行协商的过程,Session是一个整体,包含了很多内容,比如时间、媒体、位置等。
协议版本号
v= (protocol version)会话发起人
o= (originator and session identifier)会话名称
s= (session name)会话信息
i=* (session information)描述的统一资源标志符
u=* (URI of description)邮箱地址
e=* (email address)电话号码
p=* (phone number)连接信息(不是必须的)
c=* (connection information -- not required if included in all media)带宽信息
b=* (zero or more bandwidth information lines)时间信息
One or more time descriptions ("t=" and "r=" lines; see below)时区调整
z=* (time zone adjustments)密钥
k=* (encryption key)会话属性行 a=* (zero or more
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
WebRTC 作为当下最热门的实时音视频通讯框架,涉及非常多的过程,比如采集、编码、组包、发包、传输、收包、丢包重传、解封装、解码、音视频同步、渲染等,同时还包括很多功能特性,比如ANS、AGC、AEC,REMB、GCC、CNG、FEC、PLI、SVC等,需要一点点深入理解其中的奥秘。