国标GB28181协议视频推流平台EasyGBD如何研发开启软编码的?
原标题:国标GB28181协议视频推流平台EasyGBD如何研发开启软编码的?
国标EasyGBD自研发上线以来 , 一直伴随着EasyGBS一起使用 , 但其实EasyGBD也可以单独使用 , 只要接收平台支持国标GB28181协议即可 。
文章图片
最近EasyGBD新增了软编码的功能 , 用户使用时可根据自身需求修改编码 。 本文将和大家分享一下EasyGBD开发软编码的过程 。
文章图片
1、在设置界面 , 提供了使用软编码的选择框:
可以设置是否使用软编码:
SPUtil.setswCodec(this,isChecked)
2、启动视频软编码器SWConsumer , 本质就是X264Encoder 。 X264Encoder加载了libx264enc.so库 , 主要方法是:
/**
*创建编码器
*@paramw要编码的视频的宽度
*@paramh要编码的视频的高度
*@parambitrate要编码的码率
*/
publicvoidcreate(intw,inth,intframeRate,intbitrate){
long[]handle=newlong[1];
create(w,h,frameRate,bitrate,handle);
mHandle=handle[0];
}
/**
*编码
*@paramyv12yv12格式的视频数据(数据长度应该为w*h*1.5)
*@paramoffset视频数据的偏移(即在yv12里的起始位)
*@paramout编码后的数据
*@paramoutOffset编码后的视频数据的偏移(即在out里的起始位)
*@paramoutLenoutLen[0]编码后的视频数据的长度
*@paramkeyFramekeyFrame[0]编码后的视频帧的关键帧标识
*@returnreturnsnegativeonerror,zeroifnoNALunitsreturned.
【国标GB28181协议视频推流平台EasyGBD如何研发开启软编码的?】*/
publicintencode(byte[]yv12,intoffset,byte[]out,intoutOffset,int[]outLen,byte[]keyFrame){
returnencode(mHandle,yv12,offset,out,outOffset,outLen,keyFrame);
}
/**
*关闭编码器
*/
publicvoidclose(){
close(mHandle);
}
EasyGBD可以在TSINGSEE青犀视频官方网站下载使用 , 当然EasyGBS也是可以配套测试的 , 如果大家有测试需求 , 欢迎联系我们获取测试账号 。
文章图片
- 伟鸿集团(03321-HK)与广东汇徽隆投资签框架合作补充协议
- 唯一让寂然称赞边路实力媲美杰杰,此人一号三国标!战力全部突破1W7
- 中俄疫苗在全球广受欢迎,白宫却鸡蛋里挑骨头:称不符合美国标准
- 全网首个“零充党”,有15个国标玩家诞生,离辅助全国标只差两个
- 中俄对外援助新冠疫苗,却遭美国批评,白宫:不符合“美国标准”
- 美国标准就是世界标准?白宫:中俄搞“疫苗外交”不符合美国标准
- 中俄疫苗畅销全球,美却称不符合美国标准,拉拢多国制定对抗计划
- 格里芬|曝活塞寻求与布雷克-格里芬达成买断协议
- 作业|为给学生减负,长沙一小学签不做作业协议,评论区里家长吵翻天
- 刚与ASML签订采购协议的中芯国际,成这些半导体公司业绩重要来源