在Android中,如何在流媒体时动态更改MediaCodec编码比特率?

在Android中,如何在流媒体时动态更改MediaCodec编码比特率?,android,video-encoding,android-mediacodec,android-mediarecorder,Android,Video Encoding,Android Mediacodec,Android Mediarecorder,我想根据当前网络动态更改AndroidMediaCodec的编码比特率,包括H264和AAC 如何在AndroidMediaCodec中动态更新编码比特率 PS:我发现API 19上提供了PARAMETER\u KEY\u VIDEO\u比特率和setParameters 动态更改视频编码器的目标比特率。该值是一个整数对象,包含以bps为单位的新比特率 常量值:“视频比特率” 向组件实例传达其他参数更改 投掷 如果处于未初始化状态,则为IllegalStateException 在API 1

我想根据当前网络动态更改Android
MediaCodec
编码比特率,包括H264和AAC

如何在Android
MediaCodec
中动态更新编码比特率

PS:我发现API 19上提供了
PARAMETER\u KEY\u VIDEO\u比特率
setParameters

动态更改视频编码器的目标比特率。该值是一个整数对象,包含以bps为单位的新比特率

常量值:“视频比特率”

向组件实例传达其他参数更改

投掷 如果处于未初始化状态,则为IllegalStateException


在API 19下有什么方法可以做到这一点吗?

停止编解码器、设置参数并重新启动对我来说很有效。

您的格式需要支持自适应比特率。我可以使用以下命令设置比特率。请确保您使用的是api 19或更高版本。我正在将H264帧编码到FLV容器中

Bundle比特率=新Bundle();
比特率.putInt(MediaCodec.PARAMETER\u KEY\u VIDEO\u比特率,targetBitrate);

设置参数(比特率)

@fadden你能给我一些建议吗?谢谢。对不起,我不知道。为什么不呢?我认为在不停止编码器的情况下改变比特率是不可能的。我也这么认为。所以我希望有人能保证。