1. 程式人生 > >iOS之視訊硬編碼和軟編碼、硬解碼、軟解碼

iOS之視訊硬編碼和軟編碼、硬解碼、軟解碼

  • 軟編碼:使用CPU進行編碼。編碼框架ffmpeg+x264。
  • 硬編碼:不使用CPU進行編碼,使用顯示卡GPU,專用的DSP、FPGA、ASIC晶片等硬體進行編碼。編碼框架Video ToolBox和AudioToolbox。
  •  
    • 比較
      • 軟編碼:實現直接、簡單,引數調整方便,升級易,但CPU負載重,效能較硬編碼低,低位元速率下質量通常比硬編碼要好一點。
      • 效能高,低位元速率下通常質量低於軟編碼器,但部分產品在GPU硬體平臺移植了優秀的軟編碼演算法(如X264)的,質量基本等同於軟編碼。
      • 蘋果在iOS 8.0系統之前,沒有開放系統的硬體編碼解碼功能,不過Mac OS系統一直有,被稱為Video ToolBox的框架來處理硬體的編碼和解碼,終於在iOS 8.0後,蘋果將該框架引入iOS系統。

**********.H265優點

  • 壓縮比高,在相同圖片質量情況下,比JPEG高兩倍
  • 能增加如圖片的深度資訊,透明通道等輔助圖片。
  • 支援存放多張圖片,類似相簿和集合。(實現多重曝光的效果)
  • 支援多張圖片實現GIF和livePhoto的動畫效果。
  • 無類似JPEG的最大畫素限制
  • 支援透明畫素
  • 分塊載入機制
  • 支援縮圖


********硬解碼:

在iOS平臺上做視訊的解碼,一般有三種方案:

1、軟解碼方案:ffmpeg

缺點:消耗CPU太大,在iphone4s上一般720P 20幀以上就解不動了

2、硬解碼方案1:採用私有介面VideoToolBox

優點:CPU消耗極低,解碼效率極高

缺點:要使用私有介面VideoToolBox

3、硬解碼方案2:採用AVPlayer+httpserver+HttpLiveStream的組合方案

優點:CPU消耗極低,解碼效率極高

缺點:視訊有延遲,不適合實時視訊通訊