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