Chrome/Chromium HTML5 video 视频播放硬件加速

来源:互联网 发布:游戏编程入门 csdn 编辑:程序博客网 时间:2024/04/30 16:50

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#

0 0
原创粉丝点击