Android MediaCodec 設置 MediaFormat.KEY_PROFILE和MediaFormat.KEY_I_FRAME_INTERVAL之怪异现象
前言
最近在做关于Android硬编硬解的相关项目,发现了一个怪异现象,记录下来,以备后期研究。
设置 MediaCodec profile
网上查找了下都是几年前的帖子,说的是
https://android.googlesource.com/platform/frameworks/av/+/437ced8a14944bf5450df50c5e7e7a6dfe20ea40/media/libstagefright/ACodec.cpp源码中介绍:
设置了 profile 之后,还要设置一个 Level 属性。
如下:
MediaCodec 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);
如果还是不行的,因