Search code examples
androidvideo-encodingandroid-mediacodecandroid-mediarecorder

How to change MediaCodec encoding bitrate on the fly while streaming in Android?


I want to change the encoding bitrate including H264 and AAC by Android MediaCodec dynamically , according to the current network.

How to update the encoding bitrate in Android MediaCodec dynamically ?

PS: I found PARAMETER_KEY_VIDEO_BITRATE and setParameters is available on API 19

PARAMETER_KEY_VIDEO_BITRATE

Change a video encoder's target bitrate on the fly. The value is an Integer object containing the new bitrate in bps.

Constant Value: "video-bitrate"

setParameters

Communicate additional parameter changes to the component instance.

Throws IllegalStateException if in the Uninitialized state.

Is there any way to do it under API 19 ?


Solution

  • Stopping the Codec, setting the parameters and restarting it worked for me.