【发布时间】:2014-11-24 11:05:27
【问题描述】:
我正在使用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 设置的最小比特率对于任何给定的分辨率是多少。当我设置一个没有任何效果的比特率时,不会抛出任何错误或任何东西。
【问题讨论】:
标签: java android encoding android-mediacodec