流媒體 Buffer 設計原理

helloxchen發表於2010-11-05

1. Buffer 設計大小依據:

(1) 依據是 你所需要緩衝多長時間,比如是100ms還是50ms;

(2) 大小: 即每秒鐘會收到的位元組數;

Buffer = dwBytesPerSec * dwLatencyInMilliseconds / 1000;

2. 舉例:

採集聲音:(G711規格)

Buffer = 16 /8 * 8000 * (PTime) /1000

其中, 16/8為每一個G711的Samplez佔用2個位元組,

8000為取樣率,即每1s需要取樣8000個G711的Sample,

PTime = 緩衝時間(ms),假設PTime為50ms,

則 Buffer = 2*8000 * 50 / 1000 = 800 Bytes,(壓縮前)

即 Capture的Buffer 大小為 mp_byte CapBuf [800];

這樣,

經過G711壓縮後得到的大小為400Bytes 每個包。

3. 每隔多長時間單位傳送?

pTime * 取樣頻率。

如: 20 * 8000 /1000 = 160 (20為PTime, 8000為取樣頻率),

用WireShark截包看下來就是每兩個包之間間隔160個單位。

50 * 8000 /1000 = 400 (同樣)

轉自http://blog.csdn.net/Laong126/archive/2010/01/14/5190182.aspx

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24790158/viewspace-1040982/,如需轉載,請註明出處,否則將追究法律責任。

相關文章