美文网首页
Android MediaRecorder录像最低码率限制

Android MediaRecorder录像最低码率限制

作者: 珍惜注意力 | 来源:发表于2023-09-11 16:24 被阅读0次

问题:
在某些设备上用MediaRecorder录像,设置比较低的码率时会失效

mMediaRecorder.setVideoEncodingBitRate(600_000);//设置低码率录像

实际设置600kbps,结果录制的视频码率高于600多kbps,在我的设备上(MT6769)实测总是高于800kbps,查看api文档,提示高版本会有录像最低码率限制。

解决方法:
通过查找系统源码,看到有设置编码模式的参数key,尝试了一下,竟然有效。
实测只有设置编码模式为固定码率(CBR)的时候才生效

        String mode = "video-param-bitrate-mode="+MediaCodecInfo.EncoderCapabilities.BITRATE_MODE_CBR;
        Class<? extends MediaRecorder> clz = mMediaRecorder.getClass();
        try {
            Method setParameter = clz.getDeclaredMethod("setParameter", String.class);
            setParameter.setAccessible(true);
            setParameter.invoke(mMediaRecorder, mode);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

相关文章

网友评论

      本文标题:Android MediaRecorder录像最低码率限制

      本文链接:https://www.haomeiwen.com/subject/nfoevdtx.html