RTP/AVP & RTP/AVP/TCP

RTSP流(傳輸RTP包)的傳輸方式有兩種:

  • RTP/AVP/UDP
  • RTP/AVP/TCP.
    默認(rèn)傳輸方式為: RTP/AVP. 即RTP/AVP/UDP.
    RTP/AVP stand for RTP A/V Profile.
    采用那種方式傳輸是由 客戶端 來決定的.
    客戶端在RTSP的SETUP命令中需要確定是使用TCP傳輸還是建立UDP傳輸.

RTP/AVP

C->S: SETUP rtsp://example.com/foo/bar/baz.rm RTSP/1.0
CSeq: 302
Transport: RTP/AVP;unicast;client_port=4588-4589

S->C: RTSP/1.0 200 OK
CSeq: 302
Date: 23 Jan 1997 15:35:06 GMT
Session: 47112344
Transport: RTP/AVP;unicast; client_port=4588-4589;server_port=6256-6257

在RTP/AVP情況下, RTSP Client向RTSP Server提出SETUP申請(qǐng)時(shí),指定client端用于接收RTP和RTCP交互的端口:client_port=4588-4589.

  • 偶數(shù)(4588)
    用于接收RTP數(shù)據(jù).
  • 奇數(shù)(4589)
    用于進(jìn)行RTCP交互.
    RTSP Server響應(yīng)時(shí), 會(huì)指定服務(wù)器端用于交互的端口:server_port=6256-6257. 其中偶數(shù)(6256)用于發(fā)送RTP數(shù)據(jù), 奇數(shù)(6257)用于RTCP交互.

視頻和音頻分別執(zhí)行SETUP指令, 故它們有自己獨(dú)自的RTP和RTCP端口.

RTP/AVP/UDP中視頻或音頻的RTP和RTCP交互示意
RTP/AVP/UDP 視頻傳輸框圖示意
  • 基本流程: RTP打包->UDP傳輸->RTP解包.
  • RTCP用于質(zhì)量控制, 通過QoS反饋到RTP打包和RTP解包.

RTP/AVP/TCP

Certain firewall designs and other circumstances may force a server to interleave RTSP methods and stream data.
This interleaving should generally be avoided unless necessary since it complicates client and server operation and imposes additional overhead.
Interleaved binary data SHOULD only be used if RTSP is carried over TCP.

  • 有時(shí)候處于安全設(shè)計(jì), 防火墻可能要求RTSP控制方法和流數(shù)據(jù)公用一個(gè)通信通道拧抖,進(jìn)行交錯(cuò)傳輸.
  • 僅在RTSP控制方法通過TCP方式傳輸時(shí)已球,才可以交錯(cuò)傳輸二進(jìn)制數(shù)據(jù).
interleaved

When the transport choice is RTP, RTCP messages are also interleaved
by the server over the TCP connection.
As a default, RTCP packets are sent on the first available channel higher than the RTP channel.
The client MAY explicitly request RTCP packets on another channel.
This is done by specifying two channels in the interleaved parameter of the Transport header.

既然是在同一個(gè)通道傳輸碳抄,怎么區(qū)分RTP通道(channel)和RTCP通道呢?
答案是 在RTP層之上增加一層, 叫做:RTSP Interleaved Frame層.
該層在RFC2326中的描述是:

Stream data such as RTP packets is

  • encapsulated by an ASCII dollar sign (24 hexadecimal),
  • followed by a one-byte channel identifier,
  • followed by the length of the encapsulated binary data as a binary, two-byte integer in network byte order.
    The stream data follows immediately afterwards, without a CRLF, but including the upper-layer protocol headers. Each $ block contains exactly one upper-layer protocol data unit, e.g., one RTP packet.
RTSP Interleaved Frame

用wireshark抓包撵幽,示意如下:

RTP層上又封裝了一層:RTSP Interleaved Frame層

以上數(shù)據(jù)中看到Payload type等于97, 一般為音頻(視頻的Payload type一般為96).

視頻的RTSP Interleaved Frame數(shù)據(jù)分析
interleaved參數(shù)詳解

The interleaved parameter implies mixing the media stream with
the control stream
in whatever protocol is being used by the
control stream, using the mechanism defined in Section 10.12.
The argument provides the channel number to be used in the $
statement.
This parameter may be specified as a range, e.g.,
interleaved=4-5 in cases where the transport choice for the
media stream requires it.
This allows RTP/RTCP to be handled similarly to the way that it is
done with UDP, i.e., one channel for RTP and the other for RTCP.

SETUP請(qǐng)求和響應(yīng)的示意如下:

C->S: SETUP rtsp://foo.com/bar.file RTSP/1.0
CSeq: 2
Transport: RTP/AVP/TCP;interleaved=0-1

S->C: RTSP/1.0 200 OK
CSeq: 2
Date: 05 Jun 1997 18:57:18 GMT
Transport: RTP/AVP/TCP;interleaved=0-1

可看出Transport: RTP/AVP/TCP;interleaved=0-1interleaved=一般指定為一個(gè)范圍: 0-12-3
一般偶數(shù)用于標(biāo)示RTP數(shù)據(jù)
奇數(shù)用于標(biāo)示RTCP數(shù)據(jù).

openRTSP (live555)

  • -t參數(shù)
    Transport: RTP/AVP/TCP
  • -t參數(shù)
    Transport: RTP/AVP

References:
http://blog.sina.com.cn/s/blog_4c2bf01a0100xc47.html
http://www.ithao123.cn/content-8129332.html
http://zhidao.baidu.com/link?url=f7yWE9pL67sf4vj0Vni0UiYGsNJ98v-u0Ybfubo12CjqRrSTcQEwBYBgTZrs_tMX6moSSOBVR_XIFYRZC03HJffJmCKuzpFvnHEk5TKhZwC
https://tools.ietf.org/pdf/rfc3550.pdf
https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贵涵,一起剝皮案震驚了整個(gè)濱河市联喘,隨后出現(xiàn)的幾起案子烘豌,更是在濱河造成了極大的恐慌载庭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異囚聚,居然都是意外死亡靖榕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門顽铸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茁计,“玉大人,你說我怎么就攤上這事谓松⌒茄梗” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵鬼譬,是天一觀的道長娜膘。 經(jīng)常有香客問我,道長优质,這世上最難降的妖魔是什么竣贪? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮巩螃,結(jié)果婚禮上演怎,老公的妹妹穿的比我還像新娘。我一直安慰自己牺六,他們只是感情好颤枪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布汗捡。 她就那樣靜靜地躺著淑际,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扇住。 梳的紋絲不亂的頭發(fā)上春缕,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音艘蹋,去河邊找鬼锄贼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛女阀,可吹牛的內(nèi)容都是我干的宅荤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼浸策,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼冯键!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起庸汗,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤惫确,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體改化,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掩蛤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陈肛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揍鸟。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖燥爷,靈堂內(nèi)的尸體忽然破棺而出蜈亩,到底是詐尸還是另有隱情,我是刑警寧澤前翎,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布稚配,位于F島的核電站,受9級(jí)特大地震影響港华,放射性物質(zhì)發(fā)生泄漏道川。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一立宜、第九天 我趴在偏房一處隱蔽的房頂上張望冒萄。 院中可真熱鬧,春花似錦橙数、人聲如沸尊流。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽崖技。三九已至,卻和暖如春钟哥,著一層夾襖步出監(jiān)牢的瞬間迎献,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國打工腻贰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吁恍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓播演,卻偏偏與公主長得像冀瓦,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子写烤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理翼闽,服務(wù)發(fā)現(xiàn),斷路器顶霞,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • RTSP Spec中文版(1-11)RTSP Spec中文版(12-16)RTSP Spec中文版(附錄) 12 ...
    SniperPan閱讀 1,320評(píng)論 0 3
  • RFC 2326RTSP Spec中文版(1-11)RTSP Spec中文版(12-16)RTSP Spec中文版...
    SniperPan閱讀 5,562評(píng)論 3 10
  • 概念 RTP: Real-time Transport Protocol,實(shí)時(shí)傳輸協(xié)議肄程,一般用于多媒體數(shù)據(jù)的傳輸锣吼。...
    睡后3k閱讀 13,966評(píng)論 1 10
  • 上一篇Live555源碼解析(1) - Main 尋根問祖,留其筋骨將main()函數(shù)脈絡(luò)做了整體分析蓝厌,通常來講本...
    SniperPan閱讀 4,472評(píng)論 0 14