Firefly开源社区

打印 上一主题 下一主题

求助:H264编码profile从baseline提高到high的问题

9

积分

0

威望

0

贡献

技术小白

积分
9

求助:H264编码profile从baseline提高到high的问题

发表于 2015-4-20 10:13:57      浏览:8434 | 回复:2        打印      只看该作者   [复制链接] 楼主
android的H264编码本身只支持到baseline,画面的质量比较差。我通过修改frameworks/av/media/libstagefright/ACodec.cpp
if (h264type.eProfile != OMX_VIDEO_AVCProfileBaseline) {
    h264type.eProfile = OMX_VIDEO_AVCProfileBaseline;
}
让high能传递给编码器OMX.rk.video_encoder.avc
之后编码过程中OMX->getParameter返回的profile是8,对应是high

而输出的h264视频数据中sps是0x42 0xE0 0x28 0x8D......
其中第一个字节0x42是profile
对应kAVCProfileBaseline      = 0x42

也就是说profile high被传递给了编码器,可是编码器实际编码出来的还是baseline
不知道是不是厂商提供的编码组件本身没有支持。或者有没什么办法可以解决这个问题。
回复

使用道具 举报

936

积分

20

威望

19

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
936
发表于 2015-4-20 10:24:33        只看该作者  沙发
没试过 修改framework代码去实现这个的
你上层设置MediaCodec 里面的KEY_BIT_RATE属性看看。
回复

使用道具 举报

9

积分

0

威望

0

贡献

技术小白

积分
9
发表于 2015-4-20 10:32:30        只看该作者  板凳
修改码率会提高需要占用的带宽。我们主要是希望可以降低带宽消耗,提高效果,所以才想到要把baseline改到high
OMX.rk.video_encoder.avc这个不知道是不是瑞星微提供的库。不知道有没有代码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表