音視頻開發:碼率、延時、花屏、卡頓

1. 視頻碼率通常設多大?android

 

對於1080P的視頻而言,藍光視頻的碼率是20Mb/s,通常下載的視頻碼率大都是10Mb/s,一些IPCamera/無人機的碼率是2~8Mb/s,而不少視頻網站的碼率甚至低於5M/s。微信

 

同等分辨率的狀況下,碼率越大,清晰度越大,但同時對網絡帶寬的佔用也越大,具體碼率該設置爲多少,須要看應用的具體場景了。網絡

 

2. 播放中出現「跳躍」和「花屏」現象?學習

 

「跳躍」和「花屏」現象絕大多數緣由是網絡傳輸過程當中因爲信號很差致使丟失了「關鍵幀」/「參考幀」 引發的,下面來進一步解釋。測試

 

視頻在網上傳播以前是須要壓縮的,而簡單來解釋視頻壓縮的核心思想就是:每隔10~50幀取視頻中的一幀圖像做爲「關鍵幀」,而隨後的幾幀圖像因爲時間/空間的冗餘和相關性,咱們只需記錄其與關鍵幀的「差別」信息便可,這樣視頻文件就能夠不用把每一幀完整的圖像數據所有保存下來,從而起到了節省空間的效果。網站

 

因而可知,若是丟失掉了「關鍵幀」,隨後的幾幀圖像天然就沒法正常地解碼了,所以產生了「花屏」現象。編碼

 

從技術的角度,怎麼解決「花屏」現象呢?——當咱們在視頻傳輸過程當中,經過幀序號發現丟幀後,能夠跳過隨後的非「關鍵幀」,直到遇到下一個關鍵幀再送入解碼。這樣的確能夠解決「花屏」現象,可是因爲跳躍了不少幀,所以會出現視頻圖像的不連續狀況(即「跳躍」現象)。.net

 

3. 播放過程當中出現「卡頓」現象?線程

 

因爲網絡是很不穩定的,所以,音視頻數據的傳輸也是時快時慢的,在播放網絡視頻流的過程當中,必定要根據時間戳來決定什麼時候解碼什麼時候顯示,而不是來一幀就播放一幀,另外,添加必定數量的「幀緩衝區」能夠有效地下降因爲網絡抖動帶來的「卡頓」現象。視頻

 

4. 音視頻實時傳輸的延時主要來自哪裏 ?

 

(1) 編碼器/解碼器通常須要緩衝2~4幀

(2) 編碼/解碼的耗時

(3) 業務代碼中的幀緩衝區

(4) 網絡傳輸延時

(5) 代碼中的數據拷貝

 

通常狀況下,幀率爲30f/s的視頻,每緩衝n幀,就會增長1000/30*n毫秒的延時。所以,要想減小延時,則必須經過分析和測試找到上述每一部分的延時,儘可能減小數據的拷貝和緩衝。

 

5. 邊下邊播的原理 ?

 

邊下邊播與播放本地文件其實差很少,只不過是文件數據不在本地,在播放器播放到指定位置以前,後臺線程把須要的數據提早下載下來而已。

 

關於Android中使用開發HTTP邊下邊播的功能,能夠參考個人這篇文章:《Android HTTP邊下邊播》

 

6. 小結

 

免費學習更多精品課程,登陸樂搏學院官網http://www.learnbo.com/

或關注咱們的官方微博微信,還有更多驚喜哦~

 

本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/1722446

相關文章
相關標籤/搜索