簡體   English   中英

單個 UDP 數據報中的 RTP 數據包數

[英]Number of RTP packets in a single UDP datagram

我正致力於在嵌入式 MCU (STM32F4) 上實現 RTP,但在高效流式傳輸音頻數據(8 kHz,u-law 編碼)方面遇到了問題。

對於分塊音頻數據(20 毫秒,160 字節),我應該:

  1. 通過單個 UDP 數據報發送單個 RTP 數據包(12 字節標頭 + 160 字節音頻),或
  2. 通過單個 UDP 數據報發送多個 RTP 數據包(因為我們可以在單個 UDP MTU 中容納多個)

如果 (2),那么單個 UDP 數據報中的每 160 字節音頻數據是否應該有一個 RTP 報頭。 例如,5 個 RTP 數據包將是 800 字節的音頻數據 - 我會發送:

  • RTP_Header->Audio_data(160 bytes)->RTP_Header->Audio_data(160 bytes)->RTP_Header->Audio_data(160 bytes)...
  • RTP_Header->Audio_data(800 字節)

使用 LinPhone 作為客戶端進行測試,我注意到多個超時數據包和從我對嵌入式設備說話到在 Linphone 上聽到它的短暫延遲; 我正在嘗試追蹤通過 UDP 更有效地流式傳輸數據是否會解決它。 在對 LinPhone 說話和在我的嵌入式設備上播放時,我沒有相同的延遲,而且事實證明,這兩者之間的延遲很難在嵌入式 MCU 上消除回聲。

鑒於 RTP 用於實時數據,並且每個 RTP 負載都針對特定時間,將多個 RTP 數據(來自不同時間)組合到同一個 UDP 數據包中是沒有意義的。 這意味着每個 RTP 負載都以 RTP 標頭作為前綴,然后立即通過 UDP 發送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM