我正在使用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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐