如何在Android中流式传输时动态更改MediaCodec编码比特率?

时间:2015-08-05 04:00:51

标签: android video-encoding mediacodec android-mediarecorder

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

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

PS:我发现API 19上有PARAMETER_KEY_VIDEO_BITRATEsetParameters

PARAMETER_KEY_VIDEO_BITRATE

  

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

     

常数值:“视频比特率”

setParameters

  

将其他参数更改传达给组件实例。

     

抛出   如果处于未初始化状态,则为IllegalStateException。

有没有办法在API 19下进行?

2 个答案:

答案 0 :(得分:3)

您的格式需要支持自适应比特率。例如。我能够使用以下设置比特率。请确保您已经在api 19或更高版本中。我正在将H264帧编码为FLV容器。

Bundle bitrate = new Bundle(); bitrate.putInt(MediaCodec.PARAMETER_KEY_VIDEO_BITRATE, targetBitrate); mEncoder.setParameters(bitrate);

答案 1 :(得分:0)

停止编解码器,设置参数并重新启动它对我有用。