1. 为什么要用Main Profile & High Profile

在Android上硬编码视频码率远远高于软编码,原因是Android只支持H264 Baseline。MP(Main Profile )& HP(High Profile)可以大幅减少视频的码率。关于H264 Profile参见:H264 Profile。

2. Android平台对MP & HP的支持情况

2.1 Android

Google声称在Android 6.0就已经支持MP,但是6.0的源代码中还是强制使用Baseline:

    if (h264type.eProfile != OMX_VIDEO_AVCProfileBaseline) {        ALOGW("Use baseline profile instead of %d for AVC recording",            h264type.eProfile);        h264type.eProfile = OMX_VIDEO_AVCProfileBaseline;    }

详情参考:https://my.oschina.net/jerikc/blog/483641

在Android 7.0之后才移除了这段代码。也就是说要想使用MP要求Android系统版本在7.0及其以上。
关于HP(High Profile)Android文档中并没有说明支持这个Profile,但是我们在源代码中找到了对应的支持,详情参考:Android MediaCodec参数笔记

在Android 7.0及其之后的系统中已经支持了MP和HP。

2.2 平台厂商

这里说的平台厂商是指芯片提供商,如高通、MTK、华为、三星等。
笔者测试了几款机器结果如下:

3. 参考文献

https://my.oschina.net/jerikc/blog/483641

更多相关文章

  1. Android(安卓)是什么
  2. Android(安卓)解析 HTML
  3. Android(安卓)IOS平台AE动画库
  4. Android各个版本API的区别
  5. 编译Android平台的opencv
  6. ReactNative: Android与iOS平台兼容处理
  7. Android各个版本API的区别
  8. Supporting Multiple Screens(支持Android各种屏幕尺寸)
  9. Android(安卓)Visual Studio配置的相关说明

随机推荐

  1. Android(安卓)应用程序的结构
  2. 用一个二维码做下载地址,自动区分是 ios
  3. x264在android平台上的编译和使用
  4. 【移动开发】Android中各种xml汇总
  5. android mtk平台默认输入法
  6. Android(安卓)Studio初步使用及HelloWorl
  7. 2011.07.12(2)——— android Messenger 跨
  8. Android(安卓)解决帧动画卡顿问题
  9. EditText
  10. Ubuntu下android开发环境搭建