Android Camera性能分析 - 第21讲 录像Buffer Path详解

本讲是Android Camera性能分析专题的第21讲 ​,我们介绍录像Buffer Path详解,包括如下内容:

  1. Android Codec2 简介
  2. Video Codec + MediaRecorder.getSurface 录像Buffer Path
  3. Video Codec2 + MediaRecorder.getSurface 录像Buffer Path
  4. Video Codec2 + MediaRecorder.setInputSurface 录像Buffer Path

视频在线观看:

  • 极客笔记:极客笔记在线课程

加入知识星球与更多Camera同学交流
– 星球名称:深入浅出Android Camera
– 星球ID: 17296815
– Wechat: 极客笔记圈

Android Codec2 简介

在Android Q之前,Android实现硬件编解码的多媒体框架是MediaCodec->Acodec-> OpenMAX IL,芯片厂商实现OpenMAX IL。

谷歌在Android Q上推出了Codec2.0,旨在取代Acodec+OpenMAX,它可以看作是一套新的对接MediaCodec的中间件,往上对接MediaCodec Native层,往下提供新的API标准供编解码使用。

Codec2.0 是Android系统为vendor提供的⽤于实现 video/audio/filter 模块的HAL层接⼝API。芯片厂商可⽤这个API实现他们⾃⼰的HAL层。

Video Codec + MediaRecorder.getSurface 录像Buffer Path

使用VideoCodec和MediaRecorder.getSurface的方式录像的Buffer Path如下图所示:

Android Camera性能分析 - 第21讲 录像Buffer Path详解_第1张图片

Camera App不会参与到录像Buffer的轮转流程中,Video Buffer从CameraServer直接送到MediaCodec进程,MediaCodec进程Encode好Video Buffer后交给MediaServer进程通过MPEG4Writer写到Storage,详情流程介绍点击阅读原文,参考视频讲解。

Video Codec2 + MediaRecorder.getSurface 录像Buffer Path

使用VideoCodec2和MediaRecorder.getSurface的方式录像的Buffer Path如下图所示:

Android Camera性能分析 - 第21讲 录像Buffer Path详解_第2张图片

Camera App不会参与到录像Buffer的轮转流程中,Video Buffer从CameraServer送到MediaServer进程再给MediaCodec进程,MediaCodec进程Encode好Video Buffer后交给MediaServer进程通过MPEG4Writer写到Storage,详情流程介绍点击阅读原文,参考视频讲解。

Video Codec2 + MediaRecorder.setInputSurface 录像Buffer Path

使用VideoCodec2和MediaRecorder.setInputSurface 的方式录像的Buffer Path如下图所示:

Android Camera性能分析 - 第21讲 录像Buffer Path详解_第3张图片

Camera App会参与到录像Buffer的轮转流程中,Video Buffer从CameraServer送到Camera App, Camera App进程将Buffer Acquire到后送给MediaServer进程,MediaServer进程再给MediaCodec进程,MediaCodec进程Encode好Video Buffer后交给MediaServer进程通过MPEG4Writer写到Storage,详情流程介绍点击阅读原文,参考视频讲解。

你可能感兴趣的:(Android,Camera性能分析,Camera,性能分析,Android)