1. 程式人生 > >Android視頻播放軟解與硬解的區別

Android視頻播放軟解與硬解的區別

功能 負載 details https 手機 區別 編碼 其他 成了

  • 硬解,用自帶播放器播放,android中的VideoView
  • 軟解,使用音視頻解碼庫,比如FFmpeg

一、硬解碼

硬解:就是調用GPU的專門模塊編碼來解,減少CPU運算,對CPU等硬件要求也相對低點。軟解需要CPU運算,變相加大CPU負擔耗電增加很多。硬件解碼是將原來全部交由CPU來處理的視頻數據的一部分交由GPU來做,而GPU的並行運算能力要遠遠高於CPU,這樣可以大大的降低對CPU的負載,CPU的占用率較低了之後就可以同時運行一些其他的程序了。
對於Android設備,目前用得比較多的soc就是高通、海思和聯發科,這些soc大都集成了很多的功能,CPU、GUP、DSP、ISP包括視頻解碼、音頻解碼等等,所以我們說的是SOC而不是直接說CPU,目前手機的中央處理器的集成度非常高,下面是我們大華為的海思麒麟950的組成圖:

技術分享
我們可以看到這顆SOC集成了單獨的音視頻解碼單元。

二、軟解碼

軟解碼:即通過軟件讓CPU來對視頻進行解碼處理,就是通過CPU來運行視頻編解碼代碼,我們最最常見的視頻軟解碼開源看就是FFmpeg:
技術分享

    • FFmpeg官網:https://ffmpeg.org/

    • 國內FFmpeg教程:雷霄驊(leixiaohua1020)的專欄

    • 目前基於FFmpeg的開源播放器有B站的ijkplayer,教程請移步:http://blog.csdn.net/u010072711/article/details/51728537

Android視頻播放軟解與硬解的區別