美文网首页
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