1

我在我的VoIP android應用程序中使用android SipDroid RTP包類。我將捕獲的幀分成小包。我設置了seqno,時間戳和標記。 但是當我看到日誌RTP包標記hasMarker函數總是返回false。即使我將它設置爲true,它也只返回false。所以非常難以重新組裝完整的幀,所以我暫時根據小於1024的分組重新組裝分組,這是相應時間戳的最後一個分組。android sipdroid RTP包類hasMarker函數總是返回false。

任何解決方案?

回答

1

標記的使用取決於流的類型。在大多數音頻流中,標記指示流中的不連續性(即,音頻分組的「突發」的第一個分組)。對於視頻編解碼器來說,通常這意味着幀的最後一個數據包,但對於大多數編解碼器來說,這也可以通過下一個數據包中的時間戳變化來推斷。但是,幀邊界處的數據包丟失可能會混淆啓發式,因此標記可能很有用。 (一些編解碼器(H.264)使用內部顯式分段分組標記,使得標記大多不相關)。

至於它爲什麼會消失 - 您需要調試代碼以及​​您正在使用的任何庫,以及也可能檢查tcpdumps/wireshark捕獲。