SDP #
Session Description Protocol
SDP 本身并不提供媒体服务,它只是描述了媒体服务在哪,以及如何和那个媒体服务打交道。
媒体传输相关的协议在 SIP 消息 SDP 段携带, 在服务器和客户端之间进行商议。
SDP 协议的具体内容参看:RFC2327
由于 Web 端、IOS、Android、PC、MAC 端的差异性导致它们对音视频的支持能力不同, 所以我们进行一些音视频会话之前,需要交互下彼此的音视频编解码能力、网络带宽和传输协议等信息, 这些需要协商的信息需要用 SDP 来描述。
SDP 并不是传输协议,需要用 RTSP、SIP、HTTP 等协议进行承载传输、交换, 如果大家协调好了之后,就可以建立会话,完成真实的音视频码流传输,再完成解码和播放。
SDP 一般用在媒体会话建立之前,可以适用于实时流媒体、点播、直播等领域,特别在音视频通话、视频会议、VoIP、视频监控等领域应用较多。 媒体码流一般基于 RTP 传输,服务质量用 RTCP 协议保障。
但是 SDP 的交互不是所有音视频会话建立时都是必须的,假如双方提前约定好这些音视频会话创建需要的信息就不用这个步骤来交互彼此的 SDP 信息, 比如 HTTP-FLV、RTMP-FLV 直播和点播方案,因为一旦采用了这套方案,这些音视频会话建立需要的信息都是确定的, 但是这样会降低或者说没有充分发挥端到端的音视频能力,协商显得更加灵活点。
SDP 作用 #
SDP 作用包括以下一些方面
- 建立会话的详细信息,包括名称,网络,带宽等信息
- 包含在会话中的媒体信息,包括:
- 媒体类型 (video, audio, etc)
- 传输协议 (RTP/UDP/IP, H.320, etc)
- 媒体格式 (H.261 video, MPEG video, etc)
- 多播或远端(单播)地址和端口
- 为接收媒体而需的信息
- 使用的带宽信息
- 可信赖的接洽信息
如果拓展,还可以描述会话的安全方案信息、服务质量信息等,其中 WebRTC
就在 SDP 的基础上进行了继续拓展
协议包格式 #
Protocol: SIP/SDP
Frame 238: 633 bytes on wire (5064 bits), 633 bytes captured (5064 bits) on interface 0
Ethernet II, Src: 98:df:82:6d:9e:52 (98:df:82:6d:9e:52), Dst: Apple_70:23:0d (88:e9:fe:70:23:0d)
Internet Protocol Version 4, Src: 192.168.137.109, Dst: 192.168.137.105
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
Session Initiation Protocol (200)
Status-Line: SIP/2.0 200 OK
Status-Code: 200
[Resent Packet: False]
[Request Frame: 234]
[Response Time (ms): 17]
Message Header
Via: SIP/2.0/UDP 192.168.64.3:15060;rport=5060;branch=z9hG4bK575396672;received=192.168.137.105
From: <sip:34020000002000000001@3402000000>;tag=139396672
To: <sip:34020000001320000001@3402000000>;tag=403895202
Call-ID: 325396492
CSeq: 3 INVITE
Contact: <sip:[email protected]:41073>
Content-Type: application/sdp
User-Agent: IP Camera
Content-Length: 191
Message Body
Session Description Protocol
Session Description Protocol Version (v): 0
Owner/Creator, Session Id (o): 34020000001320000001 1136 1136 IN IP4 192.168.137.109
Session Name (s): Play
Connection Information (c): IN IP4 192.168.137.109
Time Description, active time (t): 0 0
Media Description, name and address (m): video 15060 RTP/AVP 96
Media Attribute (a): sendonly
Media Attribute (a): rtpmap:96 PS/90000
Media Attribute (a): filesize:0
Unknown: y=0200000001
Version (v) #
Session Name (s) #
Media Description, name and address (m) #
Media Attribute (a) #
y #
GB28181 规定,
y
用 10 位十进制数
来表示 32 bit
的 SSRC
- 第 1 位为历史或者实时媒体流的标识位,0 为实时,1 为历史;
- 第 2 位到第 6 位取 20 位 SIP 监控域 ID 之中的 4-8 位作为域标识;
- 第 7-10 位作为域内媒体流标识,是一个与当前域内产生的媒体流 SSRC 值后 4 位不重复的四位十进制整数;
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。