Chrome/Chromium HTML5 video 視頻播放硬件加速


Chromium站點上有個大致的框圖。描寫敘述了Chromium的video在各個平台 - 包含Android - 上是怎樣使用硬件資源來做視頻編解碼加速的:


而依據Android Kitkat上的Chromium代碼分析,HTML5 video播放硬件加速,終於是使用MediaCodec.java來利用本地native的硬件資源來做video視頻播放加速的。

Chromium的MediaPlayer或稱MediaFramework,

首先是HTMLMediaElement調用一個MediaPlayer;

接着MediaPlayer調用一個WebMediaPlayerClientImpl,后者再調用一個WebMediaPlayerImpl;

而WebMediaPlayerImpl終於調用Pipeline來表示播放的視音頻A/V的Pipeline。

Chromium的MediaPlayer / MediaFramework的大致框圖例如以下:


Pipeline里面實際包括demuxer, decoder, renderer。decoder的實現既有FFmpeg的實現,也有Google的libvpx的實現。還有平台相關的硬件加速的實現GpuVideoDecoder。

在Android Kitkat上,則是通過VideoDecodeAccelerator / AndroidVideoDecodeAccelerator調用MediaCodec來實現的。

大致框圖例如以下(僅僅畫decoder):


參考:

https://docs.google.com/document/d/1LUXNNv1CXkuQRj_2Qg79WUsPDLKfOUboi1IWfX2dyQE/preview#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM