如何生成 AAC ADTS 基本流与 Android MediaCodec

如题所述

第1个回答  2016-03-28
  设置了 profile 之后,你还要设置一个 Level 属性,但是目前最新的 SDK 里面并没有提供这个 Key。

  即使你手动的设置 level ,比如像这样:

  6MediaCodec codec =
createEncoderByType(MediaFormat.MIMETYPE_VIDEO_AVC);

  MediaFormat format = =
MediaFormat.createVideoFormat(MediaFormat.MIMETYPE_VIDEO_AVC, 1920, 1080);

  format.setInteger(MediaFormat.KEY_PROFILE,
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh);

  format.setInteger("level", Level_xxx);

  codec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);

  还是不行的,因为 Android 强制将 profile 设置为 Baseline 了。

  6// XXX

  if (h264type.eProfile != OMX_VIDEO_AVCProfileBaseline) {

  ALOGW("Use baseline profile instead of %d for AVC recording",

  h264type.eProfile);

  h264type.eProfile = OMX_VIDEO_AVCProfileBaseline;

  }

  总之,Android 在使用 MediaCodec 进行 encode 的时候,只能使用 Baseline 的 profile。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网