如何在 Android 中流式传输时动态更改 MediaCodec 编码比特率?
How to change MediaCodec encoding bitrate on the fly while streaming in Android?
我想根据 Android MediaCodec
动态更改 编码比特率 包括 H264 和 AAC到当前网络。
如何动态更新 Android MediaCodec
中的编码比特率?
PS:我发现 PARAMETER_KEY_VIDEO_BITRATE
和 setParameters
可用于 API 19
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"
Communicate additional parameter changes to the component instance.
Throws
IllegalStateException if in the Uninitialized state.
在API19下有什么办法吗?
停止编解码器,设置参数并重新启动它对我有用。
您的格式需要支持自适应比特率。例如。我能够使用以下设置比特率。请确保您处于 api 19 或更高版本 though.I 正在将 H264 帧编码到 FLV 容器中。
Bundle bitrate = new Bundle();
bitrate.putInt(MediaCodec.PARAMETER_KEY_VIDEO_BITRATE, targetBitrate);
mEncoder.setParameters(bitrate);
我想根据 Android MediaCodec
动态更改 编码比特率 包括 H264 和 AAC到当前网络。
如何动态更新 Android MediaCodec
中的编码比特率?
PS:我发现 PARAMETER_KEY_VIDEO_BITRATE
和 setParameters
可用于 API 19
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"
Communicate additional parameter changes to the component instance.
Throws IllegalStateException if in the Uninitialized state.
在API19下有什么办法吗?
停止编解码器,设置参数并重新启动它对我有用。
您的格式需要支持自适应比特率。例如。我能够使用以下设置比特率。请确保您处于 api 19 或更高版本 though.I 正在将 H264 帧编码到 FLV 容器中。
Bundle bitrate = new Bundle();
bitrate.putInt(MediaCodec.PARAMETER_KEY_VIDEO_BITRATE, targetBitrate);
mEncoder.setParameters(bitrate);