可視方便建站微網(wǎng)站哪個(gè)好怎么用論壇seo網(wǎng)站
SDP
一SDP介紹
1. SDP的核心功能
- 會(huì)話描述:定義會(huì)話的名稱、創(chuàng)建者、時(shí)間范圍、連接地址等全局信息。
- 媒體協(xié)商:明確媒體流的類型(如音頻、視頻)、傳輸協(xié)議(如RTP/UDP)、編碼格式(如H.264、Opus)及端口信息。
- 網(wǎng)絡(luò)參數(shù):指定單播或多播地址、帶寬限制、加密密鑰等網(wǎng)絡(luò)相關(guān)配置。
- 兼容性支持:通過(guò)文本格式的靈活擴(kuò)展,適配不同傳輸協(xié)議(如SIP、RTSP、WebRTC)。
2. SDP的協(xié)議結(jié)構(gòu)
SDP由會(huì)話級(jí)描述和媒體級(jí)描述兩部分組成,采用<type>=<value>
的文本格式,每行以單個(gè)字母表示類型,如v
(版本)、m
(媒體)等。
(1)會(huì)話級(jí)描述(Session-Level)
- 必選字段:
v=
:協(xié)議版本(固定為v=0
)。o=
:會(huì)話創(chuàng)建者信息,格式為o=<用戶名> <會(huì)話ID> <版本號(hào)> <網(wǎng)絡(luò)類型> <地址類型> <地址>
。s=
:會(huì)話名稱,若未命名則用-
占位。t=
:會(huì)話的起止時(shí)間(NTP時(shí)間戳)。
- 可選字段:
c=
:連接信息(如c=IN IP4 192.168.1.1
)。b=
:帶寬限制(如b=AS:500
表示單媒體最大帶寬500kbps)。a=
:擴(kuò)展屬性(如加密方式a=crypto:1 AES_CM_128_HMAC_SHA1_80
)。
(2)媒體級(jí)描述(Media-Level)
每個(gè)媒體流以m=
行開(kāi)頭,描述具體參數(shù):
- 必選字段:
m=
:媒體類型(如audio
/video
)、端口、傳輸協(xié)議、負(fù)載類型列表(如m=audio 5004 RTP/AVP 96
)。
- 關(guān)鍵屬性:
a=rtpmap
:動(dòng)態(tài)負(fù)載類型與編碼格式的映射(如a=rtpmap:96 H264/90000
)。a=fmtp
:編碼參數(shù)的詳細(xì)配置(如a=fmtp:96 profile-level-id=42801f
)。a=sendrecv
:媒體流方向(sendonly
/recvonly
/inactive
)。
3. SDP在流媒體中的應(yīng)用場(chǎng)景
-
實(shí)時(shí)通信(WebRTC)
在WebRTC中,SDP通過(guò)Offer/Answer模型交換雙方的媒體能力(如支持的編解碼器),并配合ICE協(xié)議完成網(wǎng)絡(luò)穿透。 -
視頻會(huì)議與直播
描述多路音視頻流的傳輸參數(shù),支持多播地址分配和分層編碼(如H.264的分辨率適配)。 -
流媒體傳輸(RTSP)
RTSP協(xié)議通過(guò)SDP在DESCRIBE
響應(yīng)中傳遞媒體信息(如文件格式、時(shí)間范圍),客戶端據(jù)此發(fā)起播放請(qǐng)求。 -
網(wǎng)絡(luò)電話(VoIP)
協(xié)商音頻編碼格式(如G.711、Opus)和傳輸?shù)刂?#xff0c;確保通話雙方兼容。
4. SDP的示例與解析
以下是一個(gè)簡(jiǎn)化的SDP示例:
v=0
o=- 123456789 2 IN IP4 192.168.1.1
s=Example Session
c=IN IP4 192.168.1.1
t=0 0
m=audio 5004 RTP/AVP 96
a=rtpmap:96 OPUS/48000/2
a=sendrecv
m=video 5006 RTP/AVP 97
a=rtpmap:97 H264/90000
a=fmtp:97 profile-level-id=42e01f
- 會(huì)話級(jí):定義版本、創(chuàng)建者IP和會(huì)話名稱。
- 音頻流:使用Opus編碼,采樣率48kHz,雙向傳輸。
- 視頻流:H.264編碼,支持特定分辨率配置。
5. SDP的局限性
- 無(wú)協(xié)商能力:僅描述媒體信息,編碼協(xié)商需依賴RTSP等協(xié)議。
- 靜態(tài)配置:不支持動(dòng)態(tài)調(diào)整參數(shù)(如帶寬自適應(yīng)),需結(jié)合其他協(xié)議實(shí)現(xiàn)。
二 會(huì)話管理 與SDP
1. RTSP(Real Time Streaming Protocol
(1) 是否需要建立會(huì)話?
- 需要顯式會(huì)話。
RTSP 是基于會(huì)話的協(xié)議,客戶端與服務(wù)端通過(guò)SETUP
、PLAY
、TEARDOWN
等命令明確控制會(huì)話生命周期。- 會(huì)話標(biāo)識(shí):通過(guò)
Session
頭字段維護(hù)會(huì)話狀態(tài)(如Session: 12345678
)。
- 會(huì)話標(biāo)識(shí):通過(guò)
(2) 是否需要 SDP?
- 需要 SDP。
RTSP 使用 SDP(Session Description Protocol)在DESCRIBE
響應(yīng)中描述媒體流的詳細(xì)信息:m=video 0 RTP/AVP 96 a=rtpmap:96 H264/90000 a=control:track1
- 作用:定義媒體類型(視頻/音頻)、編碼格式、傳輸協(xié)議(RTP)、控制路徑等。
2. RTMP(Real-Time Messaging Protocol)
(1) 是否需要建立會(huì)話?
- 通過(guò)隱式連接管理會(huì)話。
RTMP 不顯式聲明會(huì)話,但通過(guò)以下機(jī)制維護(hù)邏輯會(huì)話:- NetConnection:客戶端與服務(wù)端建立持久 TCP 連接(類似會(huì)話)。
- NetStream:在連接內(nèi)創(chuàng)建多個(gè)流通道(如
stream ID=1
),每個(gè)流獨(dú)立傳輸數(shù)據(jù)。
(2) 是否需要 SDP?
- 不需要 SDP。
RTMP 通過(guò)以下方式傳遞媒體參數(shù):- 元數(shù)據(jù)(onMetaData):客戶端在發(fā)布流時(shí)發(fā)送元數(shù)據(jù)(分辨率、編碼格式等)。
> onMetaData: { width: 1280, height: 720, videocodecid: 7 (H.264) }
- 編碼協(xié)商:客戶端在
connect
命令中聲明支持的編解碼能力(如videoCodecs: 128
)。
- 元數(shù)據(jù)(onMetaData):客戶端在發(fā)布流時(shí)發(fā)送元數(shù)據(jù)(分辨率、編碼格式等)。
3. HTTP流媒體(如HLS、DASH)
(1) 是否需要建立會(huì)話?
- 無(wú)顯式會(huì)話。
HTTP流媒體基于無(wú)狀態(tài)的HTTP協(xié)議,通過(guò)請(qǐng)求-響應(yīng)模式獲取媒體分片:- HLS:客戶端通過(guò)HTTP GET請(qǐng)求獲取
.m3u8
索引文件和.ts
分片。 - DASH:客戶端獲取
.mpd
清單文件并請(qǐng)求.m4s
分片。
- HLS:客戶端通過(guò)HTTP GET請(qǐng)求獲取
(2) 是否需要 SDP?
- 不需要 SDP。
媒體參數(shù)通過(guò)以下方式描述:- 清單文件:如HLS的
.m3u8
或DASH的.mpd
,包含碼率、分辨率、分片URL等信息。#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360 stream_360p.ts
- 清單文件:如HLS的
對(duì)比總結(jié)
協(xié)議 | 會(huì)話管理 | 媒體描述方式 | 典型場(chǎng)景 |
---|---|---|---|
RTSP | 顯式會(huì)話(SETUP /PLAY ) | SDP(DESCRIBE 響應(yīng)) | 視頻監(jiān)控、IPTV |
RTMP | 隱式會(huì)話(NetConnection) | 元數(shù)據(jù)(onMetaData ) | 直播推流、低延遲交互 |
HTTP流媒體 | 無(wú)會(huì)話(無(wú)狀態(tài)HTTP) | 清單文件(m3u8/mpd) | 自適應(yīng)流(HLS/DASH) |
關(guān)鍵區(qū)別解釋
1. 會(huì)話管理
- RTSP:需要顯式控制會(huì)話狀態(tài)(如播放、暫停),適合需要精細(xì)控制的場(chǎng)景。
- RTMP:通過(guò)長(zhǎng)連接維護(hù)隱式會(huì)話,適合持續(xù)流傳輸(如直播)。
- HTTP流媒體:無(wú)會(huì)話,每次請(qǐng)求獨(dú)立,適合CDN分發(fā)和自適應(yīng)碼率。
2. 媒體參數(shù)傳遞
- RTSP:依賴SDP標(biāo)準(zhǔn)化描述,確??缙脚_(tái)兼容性。
- RTMP:通過(guò)私有元數(shù)據(jù)和命令協(xié)商參數(shù),靈活性高但標(biāo)準(zhǔn)化較弱。
- HTTP流媒體:通過(guò)清單文件靜態(tài)描述,支持動(dòng)態(tài)切換碼率。
適用場(chǎng)景建議
- 低延遲控制:RTMP(1-3秒)或 RTSP(配合RTP)。
- 高兼容性分發(fā):HTTP(HLS/DASH)。
- 設(shè)備控制:RTSP(如攝像頭PTZ控制)。