我使用MediaCodec
编码摄像头的视频设置:什么是有效的比特率用于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
设置的最小比特率是用于任何给定的分辨率。当我设置一个没有任何影响的比特率时,不会引发任何错误或任何错误。
这似乎并没有真正回答这个问题。 CDD表示设备必须支持以最低比特率进行编码,但这并不意味着设备不允许低于最低要求的比特率。最低要求在那里,因此可以保证达到一定的质量水平。 – cyngus 2015-06-27 01:24:59
同意该文件描述了对硬件设备的要求,而不是对应用程序的要求。 – Ernest 2016-01-19 11:40:14