[发明专利]一种基于android系统H264编解码的方法在审
申请号: | 201610086874.2 | 申请日: | 2016-02-16 |
公开(公告)号: | CN105744278A | 公开(公告)日: | 2016-07-06 |
发明(设计)人: | 钟添华 | 申请(专利权)人: | 福建星网智慧科技股份有限公司 |
主分类号: | H04N19/42 | 分类号: | H04N19/42;H04N19/40 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 林晓琴 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 android 系统 h264 解码 方法 | ||
【技术领域】
本发明涉及一种基于android系统H264编解码的方法。
【背景技术】
音视频应用,如VOIP音视频通话和视频监控领域,为了提高用户体验,视频一般是要求高清,但经常出现手机端观看视频的时候,会一卡一卡的,撇开网络原因,大部分归结于CPU占满导致,性能不够,为解决此问题,急切寻找可以硬件加速的方案。
为了解决这个问题,一种是通过JNI封装使用软件编解码,如果使用软件方式,性能不高,在编解码高分辨率,如720P/1080P/4K的时候,CPU明显是力不从心,另外一种是使用厂商硬件编解码的接口,但这些接口各大厂家都不统一,每换个芯片方案,对应的接口也跟着换。
早期androidSDK还没有提供硬件编码和解码的API,直到API16后,才提供MediaCodec类,才支持硬件编解码接口。
由于市面上android手机基本上已经更新换代,基本上是4.x以后系统,本发明的解码接口统一使用androidsdk提供的MediaCodec接口。
【发明内容】
本发明所要解决的技术问题在于提供一种基于android系统H264编解码的方法,使用MediaCocdec完成硬件编解码,可直接使用硬件加速。
本发明是这样实现的:
一种基于android系统H264编解码的方法,包括:
解码流程:
步骤a1:使用MediaCodec.createDecoderByType,参数适用video/avc创建解码器;
步骤a2:使用MediaFormat.createVideoFormat,参数为video/avc,视频长,视频宽创建解码格式;
步骤a3:使用MediaCodec.configure接口配置步骤a1创建好的解码器,携带步骤a2创建好的解码格式参数;
步骤a4:使用MediaCodec.quequeInputBuffer把解码数据放到解码器,然后通过MediaCodec.dequeueInputBuffer获取解码后的YUV数据;
步骤a5:循环步骤a4直至解码结束;
编码流程:
步骤b1:使用MediaCodec.createEncoderByType,参数适用video/avc创建解码器;
步骤b2:使用MediaFormat.createVideoFormat创建视频格式,视频格式参数有video/aac,视频长、宽、帧率、码率、IDR间隔、颜色空间设置为YUV420P;
步骤b3:使用MediaCodec.configure接口配置步骤b1创建好的编码器,携带步骤b2创建好的视频格式参数;
步骤b4:android摄像头采集到的数据格式一般是NV21格式,需要转换成YUV420P格式,转换完后,使用MediaCodec.quequeInputBuffer把YUV420P数据放到编码器;
步骤b5:通过MediaCodec.dequeueInputBuffer获取编码后的H264数据;
步骤b6:循环步骤b4、b5,直至编码结束。
本发明的优点在于:本发明解决了使用高分辨率视频编解码性能瓶颈问题,提高了音视频应用使用高分辨率,并具在android框架中有一定的通用性,可直接使用硬件加速。
【附图说明】
下面参照附图结合实施例对本发明作进一步的描述。
图1是本发明中解码流程示意图。
图2是本发明编码流程示意图。
【具体实施方式】
请参阅图1和图2所示,一种基于android系统H264编解码的方法,包括:
解码流程:
步骤a1:使用MediaCodec.createDecoderByType,参数适用video/avc创建解码器;
步骤a2:使用MediaFormat.createVideoFormat,参数为video/avc,视频长,视频宽创建解码格式;
步骤a3:使用MediaCodec.configure接口配置步骤a1创建好的解码器,携带步骤a2创建好的解码格式参数;
步骤a4:使用MediaCodec.quequeInputBuffer把解码数据放到解码器,然后通过MediaCodec.dequeueInputBuffer获取解码后的YUV数据;
步骤a5:循环步骤a4直至解码结束;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网智慧科技股份有限公司,未经福建星网智慧科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610086874.2/2.html,转载请声明来源钻瓜专利网。