"本文轉(zhuǎn)載自:[Kael_Zhang的安卓筆記](méi)的 RTP、RTCP、RTSP詳解一 概述"
1.概述
??流媒體協(xié)議中,RTP、RTCP這兩個(gè)協(xié)議一般是成對(duì)出現(xiàn),而他們與RTSP協(xié)同工作。RTP負(fù)責(zé)多媒體的傳輸,RTCP配合RTP做控制和流量統(tǒng)計(jì), RTSP負(fù)責(zé)建立和控制會(huì)話,下圖更直觀的的描述了三者的關(guān)系:

2.RTP
??RTP全稱:實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol),是一個(gè)網(wǎng)絡(luò)傳輸協(xié)議,RTP協(xié)議詳細(xì)說(shuō)明了在網(wǎng)絡(luò)中傳輸音頻和視頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式,可以簡(jiǎn)單理解為對(duì)原始音視頻數(shù)據(jù)進(jìn)行封包,然后通過(guò)網(wǎng)絡(luò)發(fā)送出去,默認(rèn)使用UDP發(fā)出(低延時(shí)),當(dāng)然也可以使用TCP(不考慮延時(shí)的情況下)。一句話RTP用于傳輸實(shí)時(shí)流媒體數(shù)據(jù),RTP大多是基于UDP協(xié)議傳輸?shù)摹?/p>
3.RTCP
??RTCP全稱:實(shí)時(shí)傳輸控制協(xié)議(Real-time Transport Control Protocol),是一個(gè)網(wǎng)絡(luò)控制協(xié)議,是實(shí)時(shí)傳輸協(xié)議(RTP)的一個(gè)姐妹協(xié)議,僅僅是控制部分的傳輸協(xié)議,并不傳輸實(shí)時(shí)流媒體數(shù)據(jù),實(shí)時(shí)流媒體數(shù)據(jù)的傳輸大多使用RTP協(xié)議,和RTP配合使用,用于反饋實(shí)時(shí)流媒體傳輸過(guò)程中的質(zhì)量(延時(shí)、丟包等情況),以便綜合優(yōu)化實(shí)時(shí)流媒體的傳輸播放體驗(yàn)(延時(shí)、丟包等錯(cuò)誤率高時(shí)降低實(shí)時(shí)流媒體碼率等),一句話RTCP用于控制實(shí)時(shí)流媒體的質(zhì)量,RTCP大多是基于UDP協(xié)議傳輸?shù)摹?/p>
4.RTSP
??RTSP全稱:實(shí)時(shí)流傳輸協(xié)議(Real time Streaming Protocol),是一個(gè)網(wǎng)絡(luò)控制協(xié)議,用于實(shí)時(shí)網(wǎng)絡(luò)流媒體傳輸時(shí)的控制部分(play、pause、stop 等),和RTCP一樣 RTSP也僅僅是控制部分的傳輸協(xié)議,并不傳輸實(shí)時(shí)流媒體數(shù)據(jù),實(shí)時(shí)流媒體數(shù)據(jù)的傳輸大多使用RTP協(xié)議,RTSP需要和RTP、RTCP配合使用。一句話RTSP用于控制實(shí)時(shí)流媒體的播放,RTSP是基于TCP協(xié)議傳輸?shù)摹?/p>
5.三者之間的關(guān)系
RTP和RTCP為姐妹協(xié)議,通常情況下RTP使用一個(gè) 偶數(shù)UDP port ,而RTCP則使用RTP的下一個(gè)port,也就是一個(gè)奇數(shù)port。
RTP用于傳輸實(shí)時(shí)流媒體數(shù)據(jù)。
RTCP用于控制實(shí)時(shí)流媒體的質(zhì)量。
RTSP為控制RTP傳輸?shù)膮f(xié)議(暫停發(fā)包、開(kāi)始發(fā)包、結(jié)束發(fā)包等),即控制實(shí)時(shí)流媒體的播放。
RTP可以單獨(dú)工作(它傳輸實(shí)際播放數(shù)據(jù)),也可以搭配RTCP、RTSP工作。
RTCP、RTSP不能單獨(dú)工作(它倆不傳輸實(shí)際播放數(shù)據(jù)),RTSP需要和RTP、RTCP配合使用。
