Android MediaCodec Format设置讨论贴

樱桃火 2015-11-06 11:55:23
需要怎么设置MediaCodec的编码参数,比如码流帧率

MediaFormat mediaFormat = MediaFormat.createVideoFormat(MIME_TYPE, 1280, 720);
mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, mColorFormat);
mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE);
mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL,IFRAME_INTERVAL);
mMediaCodec = MediaCodec.createByCodecName(codecInfo.getName());
mMediaCodec.configure(mediaFormat, null, null,MediaCodec.CONFIGURE_FLAG_ENCODE);
在这里设置的format 参数为什么无效, 经过编码后输出的新格式不是Format参数
if (outputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
// no output available yet
Log.d(TAG, "no output from encoder available");
} else if (outputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
// not expected for an encoder
outputBuffers = mMediaCodec.getOutputBuffers();
Log.d(TAG, "encoder output buffers changed");
} else if (outputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
// not expected for an encoder
// should happen before receiving buffers, and should only happen once
if (mMuxerStarted) {
throw new RuntimeException("format changed twice");
}
MediaFormat newFormat = mMediaCodec.getOutputFormat();//这一行得到的新的Format不是前面自己设置的参数
Log.d(TAG, "encoder output format changed: " + newFormat);



各位大神, 请指教啊 !!!!!
...全文
782 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouxionger 2015-11-13
  • 打赏
  • 举报
回复
楼主这个问题解决了吗,我也遇到一样的问题了
樱桃火 2015-11-06
  • 打赏
  • 举报
回复
自己顶

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧