For Android Kitkat devices we can set desired AVC profile and level into media format as per code snippet below(sets baseline with level 1.3). Please set this before starting MediaCodec. format.setInteger("profile",MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline); format.setInteger("level", MediaCodecInfo.CodecProfileLevel.AVCLevel13); Starting with Android 5.0, it is possible to set profile (SDK Level 21) and level (SDK Level 23). http://developer.android.com/reference/android/media/MediaFormat.html#KEY_PROFILEhttp://developer.android.com/reference/android/media/MediaFormat.html#KEY_LEVEL videoFormat.setInteger(MediaFormat.KEY_PROFILE, MediaCodecInfo.CodecProfileLevel.AVCProfileMain); videoFormat.setInteger("level", MediaCodecInfo.CodecProfileLevel.AVCLevel3);videoFormat.setInteger(MediaFormat.KEY_PROFILE, MediaCodecInfo.CodecProfileLevel.AVCProfileHigh); videoFormat.setInteger("level", MediaCodecInfo.CodecProfileLevel.AVCLevel3);