iOS之視訊硬編碼和軟編碼、硬解碼、軟解碼
阿新 • • 發佈:2019-01-06
- 軟編碼:使用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消耗極低,解碼效率極高
缺點:視訊有延遲,不適合實時視訊通訊