
java rtp是什么?讓我們一起來(lái)了解一下吧!
java rtp是Java程序中的一個(gè)協(xié)議。rtp協(xié)議,也被叫作實(shí)時(shí)傳輸協(xié)議,它是一個(gè)網(wǎng)絡(luò)傳輸協(xié)議。rtp協(xié)議的內(nèi)容是關(guān)于在網(wǎng)絡(luò)上傳輸音視頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式。

RTP協(xié)議包含了兩個(gè)子協(xié)議,分別是RTP和RTCP。
1.數(shù)據(jù)傳輸協(xié)議RTP,功能是傳輸數(shù)據(jù)。該協(xié)議提供的信息有:時(shí)間戳(用于同步)、序列號(hào)(用于丟包和重排序檢測(cè))和負(fù)載格式(用于說(shuō)明數(shù)據(jù)的編碼格式)。
2.控制協(xié)議RTCP,它的作用是QoS反饋和同步媒體流。與RTP比較,RTCP占用的帶寬很小,通常只有5%。
RTP協(xié)議結(jié)構(gòu)如下:1 2 3 8 9 16bitV P X CSRC Count M Payload TypeSequence number TimestampSSRC CSRC (variable 0 – 15 items 32bits each)V ― 版本。P ― 間隙(Padding)。X ― 擴(kuò)展位。CSRC Count ― 包含 CSRC 標(biāo)識(shí)符(在固定頭后)的編號(hào)。M ― 標(biāo)記。Payload Type ― 識(shí)別 RTP 有效載荷的格式,并通過(guò)應(yīng)用程序決定其解釋。Sequence Number ― 每發(fā)送一個(gè) RTP 數(shù)據(jù)包,序列號(hào)增加1。Timestamp ― 反映 RTP 數(shù)據(jù)包中的第一個(gè)八位組的采樣時(shí)間。
SSRC ― 同步源。
CSRC ― 貢獻(xiàn)源標(biāo)識(shí)符。
實(shí)戰(zhàn)演練,具體步驟如下:
import?org.jnetpcap.protocol.voip.Rtp;?//導(dǎo)入依賴的package包/類
?@Test
?public?void?testRTP()?{
?
boolean?foundRtp?=?false;
for?(JPacket?packet?:?TestUtils.getIterable(FILE))?{
if?(packet.hasHeader(Rtp.ID))?{
foundRtp?=?true;
?out.println(packet.getState().toDebugString());
out.printf("#%d?-?RTP%n",?packet.getFrameNumber());
?}
}
TestCase.assertTrue("RTP?not?found",?foundRtp);
?}以上就是小編今天的分享了,希望可以幫助到大家。
