java rtp是什么?讓我們一起來了解一下吧!
java rtp是Java程序中的一個協議。rtp協議,也被叫作實時傳輸協議,它是一個網絡傳輸協議。rtp協議的內容是關于在網絡上傳輸音視頻的標準數據包格式。
RTP協議包含了兩個子協議,分別是RTP和RTCP。
1.數據傳輸協議RTP,功能是傳輸數據。該協議提供的信息有:時間戳(用于同步)、序列號(用于丟包和重排序檢測)和負載格式(用于說明數據的編碼格式)。
2.控制協議RTCP,它的作用是QoS反饋和同步媒體流。與RTP比較,RTCP占用的帶寬很小,通常只有5%。
RTP協議結構如下: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 ― 擴展位。CSRC Count ― 包含 CSRC 標識符(在固定頭后)的編號。M ― 標記。Payload Type ― 識別 RTP 有效載荷的格式,并通過應用程序決定其解釋。Sequence Number ― 每發送一個 RTP 數據包,序列號增加1。Timestamp ― 反映 RTP 數據包中的第一個八位組的采樣時間。
SSRC ― 同步源。
CSRC ― 貢獻源標識符。
實戰演練,具體步驟如下:
import?org.jnetpcap.protocol.voip.Rtp;?//導入依賴的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); ?}
以上就是小編今天的分享了,希望可以幫助到大家。