一、SDP協議簡介
SDP(Session Description Protocol)是一種會話描述協議,用于描述多媒體會話的參數。它是一種文本協議,通常用于VoIP(Voice over Internet Protocol)和視頻會議等應用中。SDP協議定義了一種標準的格式,用于描述會話的各種參數,包括媒體類型、媒體格式、媒體地址等。
SDP協議最初由IETF(Internet Engineering Task Force)在RFC 2327中定義,后來又在RFC 4566中進行了更新和擴展。SDP協議的主要作用是在會話開始前,將會話的參數信息傳遞給參與者,以便他們能夠正確地配置和連接到會話。
二、SDP協議格式
SDP協議的格式由一系列的行組成,每行以一個字母開頭,表示該行的類型。SDP協議定義了一些標準的行類型,包括v、o、s、c、t、m等。下面是一個簡單的SDP協議格式示例:
必需字段
v=0
o=- 123456 7890 IN IP4 192.168.1.1
s=My Session
c=IN IP4 192.168.1.1
t=0 0
m=audio 5004 RTP/AVP 0 8 18
v表示協議版本,參數用于指定SDP協議的版本號,當前版本為0。
o表示會話的起始者和會話ID,參數用于指定會話的起始者和會話ID。它包括用戶名、會話ID、版本號、網絡類型和地址類型等信息。
s表示會話名稱,參數用于指定會話的名稱,通常是一個簡短的字符串。
c表示連接信息,參數用于指定媒體流的連接信息,包括網絡類型、地址類型和地址等信息。
t表示會話的時間信息,指定會話的時間信息,包括會話的起始時間和結束時間。
m表示媒體信息。參數用于指定媒體流的類型、格式和地址等信息。
i=(會話信息)對字段的?本描述,提供了?會話名稱更多的信息。該字段既可以?于會話級也可以?于媒體級。
a=(屬性)?于描述會話或者某個媒體的額外屬性。
b=(帶寬信息)指明帶寬需求,單位kbit/s, 可?于兩個級別
b=: bwtype可以是CT或AS,CT方式是設置整個會議的帶寬,AS是設置單個會話的帶寬。缺省帶寬是千比特每秒。
三、SDP示例
1.媒體級會話VLC播放264視頻的sdp文件
v=0
o=- 0 0 IN IP4 127.0.0.1
s=VLC media player
c=IN IP4 127.0.0.1
t=0 0
a=tool:vlc 2.2.4
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z0IAH5WoFAFuQA==,aM48gA==
a=control:streamid=0
2.媒體級會話VLC播放g711音頻的sdp文件
v=0
o=- 0 0 IN IP4 127.0.0.1
s=VLC media player
c=IN IP4 127.0.0.1
t=0 0
a=tool:vlc 2.2.4
m=audio 5004 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=control:streamid=0
3.點播mp4文件,MS_H返回給終端的sdp信息
v=0
o=- 0 0 IN IP4 127.0.0.1
s=Session streamed by “MS_H”
i=sample.mp4
c=IN IP4 0.0.0.0
t=0 0
a=tool:libavformat 57.56.101
m=video 0 RTP/AVP 96
b=AS:1000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z0IAH5WoFAFuQA==,aM48gA==
a=control:trackID=1
m=audio 0 RTP/AVP 97
b=AS:128
a=rtpmap:97 MPEG4-GENERIC/44100/2
a=fmtp:97 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
a=control:trackID=2
4.直播
v=0
o=- 0 0 IN IP4 127.0.0.1
s=Live Stream
c=IN IP4 0.0.0.0
t=0 0
a=tool:libavformat 57.56.101
m=video 0 RTP/AVP 96
b=AS:1000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z0IAH5WoFAFuQA==,aM48gA==
a=control:trackID=1
m=audio 0 RTP/AVP 97
b=AS:128
a=rtpmap:97 MPEG4-GENERIC/44100/2
a=fmtp:97 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
a=control:trackID=2
版權聲明:本文為CSDN博主「久孤776」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_74021557/article/details/131289076