1. 程式人生 > 其它 >如何快速的開發一個完整的iOS直播app(編解碼原理)

如何快速的開發一個完整的iOS直播app(編解碼原理)

為什麼要編碼

  • 編碼就是壓縮影象
  • 手機攝像頭採集的都是一幀一幀的圖片,只要每秒採集了24幀,看起來就比較流暢,視訊就是由一幀一幀的圖片構成的,常見圖片格式png,jpg,一張圖片2M,一秒鐘30幀,那麼1秒就是60M,這麼多儲存到本地是沒問題,但是進行網路傳輸,尤其是在外網傳輸,每一秒傳輸60M,在中國是不可能達到這個頻寬,那這時候就要對每一幀圖象進行壓縮
  • 頻寬:每秒網路傳輸的資料,每秒10M,每秒傳輸10M資料

怎麼編碼

H.264演算法

  • 因為第一幀和第二幀,可能沒什麼變化,`只傳輸不一樣的部分``,這樣圖片壓縮率就非常高,所以在網路中傳輸都會採用h.264進行傳輸,當然現在也有H.265,如果傳輸的720p,其實差距不大,h.265用於高清圖片4k,比較大的圖片.

  • I frame :幀內編碼幀 又稱intra picture,I 幀通常是每個 GOP(MPEG 所使用的一種視訊壓縮技術)的第一個幀,經過適度地壓縮,做為隨機訪問的參考點,可以當成圖象。I幀可以看成是一個影象經過壓縮後的產物。

  • P frame: 前向預測編碼幀 又稱predictive-frame,通過充分將低於影象序列中前面已編碼幀的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫預測幀;

  • B frame: 雙向預測內插編碼幀 又稱bi-directional interpolated prediction frame,既考慮與源影象序列前面已編碼幀,也顧及源影象序列後面已編碼幀之間的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫雙向預測幀;

怎麼解碼

學習重點推薦
  • 重點了解解碼,編碼FFmpeg有X264編碼,但是實際過程中,很少用到軟編碼,軟編碼效率非常低,因為大量的嵌入式裝置手機都集成了硬編碼,可以直接把影象編碼成H.264
解碼
  • 解碼的時候僅用I幀的資料就可重構完整影象
  • 在髮網絡資料的時候,2到3秒就需要一個I幀,否則傳給去的圖片可能半天看不到影象(IPBPBPB IPBPBPB)
  • h.264由一個個NAL組成,每一段NAL由IPB組成(IPBPBPB),解析NAL還原影象,就能展示


作者:袁崢
連結:https://www.jianshu.com/p/d11b1685ce86
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。