rtp rtcp rtsp
RTP協(xié)議
Ver.(2 bits)是目前協(xié)定的版本號(hào)碼,目前版號(hào)是 2。
P(1 bit)如果該位被設(shè)置,則在該packet末尾包含了額外的附加信息,附加信息的最后一個(gè)字節(jié)表示額外附加信息的長(zhǎng)度(包含該字節(jié)本身)。該字段之所以存在是因?yàn)橐恍┘用軝C(jī)制需要固定長(zhǎng)度的數(shù)據(jù)塊,或者為了在一個(gè)底層協(xié)議數(shù)據(jù)單元中傳輸多個(gè)RTP packets。
X(1 bit)如果應(yīng)用程序類型允許擴(kuò)展,則使用X指定分組中是否有擴(kuò)展,如果該位被設(shè)置,則在固定的頭部后存在一個(gè)擴(kuò)展頭部。.
CC(4 bits)包含了 CSRC 數(shù)目用于修正標(biāo)頭(fixed header).
M(1 bit) 是用于應(yīng)用等級(jí)以及其原型(profile)的定義。如果不為零表示目前的數(shù)據(jù)有特別的程序解譯。
PT(7 bits)標(biāo)識(shí)RTP負(fù)載的格式,包括所采用的編碼算法、采樣頻率、承載通道等。如果接收方不識(shí)別該類型,必須忽略該packet。
序號(hào)(16位)包含分組的序號(hào),某些會(huì)話的第一個(gè)序號(hào)是隨機(jī)選擇的。在每一次發(fā)送時(shí)才增加1,接收方根據(jù)序列號(hào)重新排列數(shù)據(jù)包順序。也可通過(guò)此項(xiàng)為接收方提供探測(cè)數(shù)據(jù)丟失的方法,但是如果數(shù)據(jù)丟失則是應(yīng)用程序自己的事情,協(xié)議本身不負(fù)責(zé)數(shù)據(jù)的重傳。
timerstamp(32位)時(shí)間戳:反映packet所攜帶信息包中第一個(gè)字節(jié)的采樣時(shí)間。時(shí)間戳連續(xù)增加,即使是沒(méi)有信號(hào)、沒(méi)有發(fā)送的期間也是如此。當(dāng)同事對(duì)多個(gè)分組采樣,可以允許這些分組的時(shí)間戳一樣。通過(guò)此項(xiàng)來(lái)確定時(shí)間間隔,判斷數(shù)據(jù)的到達(dá)是否受到抖動(dòng)的影響。
SSRC?是同步化來(lái)源。在使用混合器時(shí),將多個(gè)數(shù)據(jù)流混合成新的數(shù)據(jù)流,此項(xiàng)用于標(biāo)識(shí)數(shù)據(jù)流的源,最多可以流出15個(gè)源。每個(gè)源站必須選擇一個(gè)唯一的32位標(biāo)識(shí)符,如果沖突,協(xié)議中包含解決沖突的機(jī)制。
CSRC,只有存在Mixer的時(shí)候才有效,如一個(gè)將多聲道的語(yǔ)音流合并成一個(gè)單聲道的語(yǔ)音流,在這里就列出原來(lái)每個(gè)聲道的SSRC。
?
RTCP協(xié)議
負(fù)責(zé)管理傳輸質(zhì)量在當(dāng)前應(yīng)用進(jìn)程之間交換控制信息。RTP本身不能為按序傳輸數(shù)據(jù)包提供可靠的保障,也不提供流量控制和擁塞控制,于是配合RTCP一起使用。當(dāng)應(yīng)用程序啟動(dòng)一個(gè)RTP會(huì)話時(shí)將同時(shí)占用兩個(gè)端口,分別供RTP和RTCP使用。RTCP向會(huì)話中的所有成員周期性的發(fā)送控制信息,應(yīng)用程序通過(guò)接收這些數(shù)據(jù)來(lái)獲取會(huì)話參與者的相關(guān)信息、網(wǎng)絡(luò)狀況、分組丟失數(shù)量等。因此,服務(wù)器利用這些信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,能有效的反饋和最小化開(kāi)銷使傳輸效率最佳化。
在RTCP通信控制中,RTCP協(xié)議的功能是通過(guò)不同的RTCP數(shù)據(jù)報(bào)來(lái)實(shí)現(xiàn)的,主要有如下幾種類型:①SR:發(fā)送端報(bào)告,用來(lái)使發(fā)送端周期的向所有接收端用多播方式進(jìn)行報(bào)告,
內(nèi)容包括:該RTP流的SSRC;該RTP流中最新產(chǎn)生的RTP分組的時(shí)間戳和絕對(duì)時(shí)鐘時(shí)間(或稱墻上時(shí)間:wall clock time);該RTP流包含的分組數(shù);該RTP流包含的字節(jié)數(shù)。絕對(duì)時(shí)鐘時(shí)間是必要的。因?yàn)镽TP要求每一種媒體使用單獨(dú)的流,所以發(fā)送視頻和伴隨的音頻需要兩個(gè)數(shù)據(jù)流。有了絕對(duì)時(shí)鐘時(shí)間就可以進(jìn)行圖形和聲音的同步。
②RR:接收端報(bào)告,用來(lái)使接收端周期性的向所有的點(diǎn)用多播方式進(jìn)行報(bào)告。
內(nèi)容包括:所接收到的RTP流的SSRC;該RTP流的分組丟失率;在該RTP流中的最后一個(gè)RTP分組的序號(hào);分組到達(dá)時(shí)間間隔的抖動(dòng)等。發(fā)送RR分組有兩個(gè)目的。第一,可以使所有的接收端和發(fā)送端了解當(dāng)前網(wǎng)絡(luò)的狀態(tài)。第二,可以使所有發(fā)送RTCP分組的站點(diǎn)自適應(yīng)的調(diào)整自己發(fā)送RTCP分組的速率,RTCP分組的通信量不超過(guò)網(wǎng)絡(luò)中的數(shù)據(jù)分組的通信量的5%,而接收端分組報(bào)告分組的通信量又應(yīng)小于所有RTCP分組的通信量的75%。
③SDES:源描述,主要功能是作為會(huì)話成員有關(guān)標(biāo)識(shí)信息的載體,如用戶名、郵件地址、電話號(hào)碼等,此外還具有向會(huì)話成員傳達(dá)會(huì)話控制信息的功能。
④BYE:通知離開(kāi),主要功能是指示某一個(gè)或者幾個(gè)源不再有效,即通知會(huì)話中的其他成員自己將退出會(huì)話。 ⑤APP:由應(yīng)用程序自己定義,解決了RTCP的擴(kuò)展性問(wèn)題,并且為協(xié)議的實(shí)現(xiàn)者提供了很大的靈活性。?
RTSP協(xié)議
用來(lái)控制聲音或影像的多媒體串流協(xié)議,并允許同時(shí)多個(gè)串流需求控制,傳輸所用協(xié)議并不在其定義的范圍,服務(wù)器可自行選擇TCP或UDP來(lái)傳送串流內(nèi)容。它的語(yǔ)法和運(yùn)作與HTTP1.1類似,但不特別強(qiáng)調(diào)時(shí)間同步,所以比較能容忍網(wǎng)絡(luò)延遲,而且proxy的緩沖功能也使用于RTSP,在負(fù)載均衡上,因RTSP有重定向功能,所以可根據(jù)負(fù)載情況來(lái)轉(zhuǎn)換提供服務(wù)的服務(wù)器。RTSP支持多播,所以除了降低網(wǎng)絡(luò)的負(fù)載,還能提供視頻會(huì)議的功能。
RTSP狀態(tài):RTSP的控制信息和數(shù)據(jù)是分開(kāi)的,我們可以用TCP來(lái)傳控制信息,用UDP來(lái)傳數(shù)據(jù),主要狀態(tài)有:
SETUP:服務(wù)器將會(huì)開(kāi)辟資源,準(zhǔn)備傳輸被請(qǐng)求的數(shù)據(jù)流。
PLAY和RECORD:經(jīng)由SETUP開(kāi)辟的流,開(kāi)始傳數(shù)據(jù)。
PAUSE:暫停流,但是不將服務(wù)器段的資源釋放。
TEARDOWN:將流占用的資源釋放掉,并關(guān)閉這個(gè)RTSP會(huì)話。
?
rtp rstp 編程
http://blog.csdn.net/pu1030/article/details/7619908
轉(zhuǎn)載于:https://www.cnblogs.com/pengkunfan/p/3551629.html
總結(jié)
以上是生活随笔為你收集整理的rtp rtcp rtsp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringMVC+Apache Shi
- 下一篇: Windows Server 2012: