我正在使用MediaCodec来编码来自摄像头的视频:

MediaFormat format = MediaFormat.createVideoFormat("video/avc", width, height);

format.setInteger(MediaFormat.KEY_BIT_RATE, 250000);

format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 1);

format.setInteger(MediaFormat.KEY_FRAME_RATE, 15);

format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);

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

我发现根据我给出的分辨率,有一些最小有效比特率要设置.如果我在该数量下设置比特率,则完全被忽略.如果我将比特率设置为高于此不可见阈值,则按预期工作.我想要做的是查询我可以为KEY_BIT_RATE设置的最小比特率对于任何给定的分辨率.当我设置一个没有任何影响的比特率时,不会抛出任何错误或任何错误.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐