結合位元速率和pcr來傳送組播資料

2021-07-23 20:19:22 字數 700 閱讀 5415

根據pcr來傳送的.

當看了vlc的code後,基本上是結合位元速率和pcr來傳送的.

1,在除錯過程中,我監測了vlc的發出的位元速率,基本上每16毫秒都有資料,最大不會超過32毫秒. 

而版主的方法, 要wait很多,這個已經造成了stb的報告同步丟失.就是資料報不均勻.

目前的做法是, 先根據位元速率算出每16ms大約發多少個 7 *188的包. (這個時候位元速率準不准無所謂,這是粗調,將來可以通過pcr來細調)

比如位元速率是18mbps的高畫質位元速率.(h264和mepg2相同) 每16ms大約發的包數為: 18000000 / 8 / (7 * 188) / (1000 * 16),假設等於xx

這個時候一般都肯定比如是8.369,我們就取8. 也就是說,每16ms大約發的包數為8,這個是比時間的位元速率低些.

然後我們每16ms找乙個pcr, 然後比較系統時間(這個需要轉換,詳情請參考vlc),

如果這個pcr小於發系統時間,那下次就發 (xx++) * 7 * 188, 

如果下次找到的pcr還小那下次就發 (xx++) * 7 * 188,

如果下次pcr大於發系統時間,那下次就發 (xx--) * 7 * 188, 

注意xx--的最小值也是8.太小了不好.

結果我們的stb就可以和vlc推出的流媲美了. stb也不會報錯,(以前,如果我每50ms發一次,stb就有馬塞克, 但vlc發,stb是沒有的.)

位元速率和幀率

位元速率就是資料傳輸時單位時間傳送的資料位數,一般我們用的單位是kbps即千位每秒。通俗一點的理解就是取樣率,單位時間內取樣率越大,精度就越高,處理出來的檔案就越接近原始檔案,但是檔案體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的位元速率達到最少的失真,圍繞這個核心衍生出來的c...

位元速率 幀率和I B P幀

位元速率 幀率和i b p幀 位元速率就是資料傳輸時單位時間傳送的資料位數,一般我們用的單位是kbps即千位每秒。通俗一點的理解就是取樣率,單位時間內取樣率越大,精度就越高,處理出來的檔案就越接近原始檔案,但是檔案體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的位元速率達到最少的...

位元速率 幀率和I B P幀

位元速率 幀率和i b p幀 位元速率就是資料傳輸時單位時間傳送的資料位數,一般我們用的單位是kbps即千位每秒。通俗一點的理解就是取樣率,單位時間內取樣率越大,精度就越高,處理出來的檔案就越接近原始檔案,但是檔案體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的位元速率達到最少的...