当前位置: 首页 > news >正文

网站建设咨询费用优化营商环境

网站建设咨询费用,优化营商环境,网站排序,网站一键提交收录技术背景 在华脉智联研发Android平台GB28181前端音视频接入模块之前,业内听到最多的是,如何用Android端在没有国标摄像头设备的前提下,模拟GB28181的信令和媒体流交互流程,实现GB28181整体方案的测试。 Android端真的没有必要做…

技术背景

在华脉智联研发Android平台GB28181前端音视频接入模块之前,业内听到最多的是,如何用Android端在没有国标摄像头设备的前提下,模拟GB28181的信令和媒体流交互流程,实现GB28181整体方案的测试。

Android端真的没有必要做个支持GB28181的接入模块?

如果说做一个设备端摄像头国标设备接入模拟模块是完成从0到1的工作,那么从设备端模拟摄像头到一个可以产品化的Android平台GB28181前端音视频接入模块,需要更严谨更符合相关spec的方式,实现不具备国标音视频能力的Android终端,通过平台注册的形式,接入到现有的GB28181服务,最终用于如智能监控、智慧零售、智慧教育、远程办公、生产运输、智慧交通、车载或执法记录仪等场景,可以说应用场景非常广泛。

除了支持常规的音视频媒体流数据接入外,还可以支持Subscribe订阅实时位置(MobilePosition)、实时目录查询等,完成标准服务的对接。产品设计方面,媒体流支持最新GB28181-2016的UDP和TCP被动模式,参数配置,支持注册有效期、心跳间隔、心跳间隔次数、TCP/UDP信令设置,支持RTP Sender IP地址类型、RTP Socket本地端口、SS-R-C、RTP socket 发送Buffer大小、RTP时间戳时钟频率设置,支持注册成功、注册超时、INVITE、ACK、BYE状态回调。

设计思路

信令设计和媒体数据传输分离,上层实现国标GB28181的注册、注销、CATALOG、INVITE、ACK、BYE、SUBSCRIBE等交互处理,如注册成功后,返回注册时间,并检测传输或心跳等异常状态,服务端发送catalog请求后,组织本地catalog信息,并以message的形式发送到服务端,服务端收到相关信息后,开始发送invite请求,客户端解析INVITE返回的SDP信息,组织相关的response,创建RTP Sender,根据返回的信息,设定相关参数。待收到服务端的Ack后,发送编码、打包后的媒体流数据。在此期间,按照设定间隔,定时发送keepalive。

模块除了常规的音视频参数配置外,系统可同时亦或单独实现如RTMP推送、RTSP推送、轻量级RTSP服务、实时录像、GB28181前端接入。

信令接口设计:

 /*** init gb28181** @param server_ip          server ip* @param port               server port* @param server_id          server id* @param server_domain      server domain* @param device_id          device id* @param device_pwd         password* @param device_name        device name* @param tcpudp             0 - udp; 1 - tcp* @param heartbeat_interval gb28181 heartbeat interval, unit is second* @param reg_expire         sip reg user expires, unit is second* @return*/
public boolean init(String server_ip, int port, String server_id, String server_domain, String device_id,String device_pwd, String device_name,int tcpudp, int heartbeat_interval, int reg_expire) {
}/*** init gb28181** @param server_ip          server ip* @param port               server port* @param server_id          server id* @param server_domain      server domain* @param device_id          device id* @param device_pwd         password* @param device_name        device name* @param tcpudp             0 - udp; 1 - tcp* @param heartbeat_interval gb28181 heartbeat interval, unit is second* @param reg_expire         sip reg user expires, unit is second* @return*/
public boolean init(String server_ip, int port, String server_id, String server_domain, String device_id,String device_pwd, String device_name,int tcpudp, int heartbeat_interval, int reg_expire) {/*** update gb28181 config** @param server_ip          server ip* @param port               server port* @param server_id          server id* @param server_domain      server domain* @param device_id          device id* @param device_pwd         password* @param device_name        device name* @param tcpudp             0 - udp; 1 - tcp* @param heartbeat_interval gb28181 heartbeat interval, unit is second* @param reg_expire         sip reg user expires, unit is second* @return*/
public void updateConfig(String server_ip, int port, String server_id, String server_domain, String device_id,String device_pwd, String device_name,int tcpudp, int heartbeat_interval, int reg_expire) {}

相关状态回调:

gbEngine.addEventHandler(handler: IEngineEventHandler)// 国标底层事件回调
private val engineEventHandler =IEngineEventHandler { type, state ->if (type == EventHandlerStatus.EventHandlerType.type_register) {when (state) {EventHandlerStatus.RegisterState.unregister -> { //反注册logI("onState: id=${type.toCallTypeString()}, state=unregister($state)")}EventHandlerStatus.RegisterState.register_fail -> { //注册失败logI("onState: id=${type.toCallTypeString()}, state=register_fail($state)")}EventHandlerStatus.RegisterState.register_success -> { //注册成功logI("onState: id=${type.toCallTypeString()}, state=register_success($state)")}EventHandlerStatus.RegisterState.register_forbidden -> { //注册失败,udp/tcp协议不对、密码不对等注册参数不对logI("onState: id=${type.toCallTypeString()}, state=register_forbidden($state)")}else -> {logI("onState: id=${type.toCallTypeString()}, state=PUEVT_REG_PASS($state)")}}} else {logI("onState: id=${type.toCallTypeString()}, state=${state.toEventString()}")}if (type == EventHandlerStatus.EventHandlerType.type_call_in) { //呼入事件when (state) {EventHandlerStatus.EventState.PUEVT_CALL_IN -> { //视频监控呼入}EventHandlerStatus.EventState.PUEVT_CONNECT -> { //视频监控接通}EventHandlerStatus.EventState.PUEVT_HANGUP -> { //视频监控挂断}}}}

总结

Android平台GB28181音视频接入模块研发之前,华脉智联已经在RTSP、RTMP和音视频采集、编码传输等有了多年积累,GB28181接入,对我们来说,只是在现有架构的基础上,完成信令交互和数据打包传输(H264, H265打包成PS流,然后拆成RTP包发送即可),RTP传输支持TCP、UDP模式,配合国标28181服务器测试,延时非常低,设计支持多通道,可实现RTSP或RTMP流数据到GB28181的转换。为Android平台赋能,像支持GB28181协议的IPC一样,方便的把摄像头、屏幕、麦克风或外部RTSP、RTMP流,顺利接入到GB28181平台。


文章转载自:
http://antirattler.bfmq.cn
http://seacraft.bfmq.cn
http://image.bfmq.cn
http://unwalkable.bfmq.cn
http://gallinule.bfmq.cn
http://aphthong.bfmq.cn
http://desquamation.bfmq.cn
http://farthest.bfmq.cn
http://bargainer.bfmq.cn
http://sponsorship.bfmq.cn
http://bumbershoot.bfmq.cn
http://protestantism.bfmq.cn
http://longcloth.bfmq.cn
http://strophulus.bfmq.cn
http://aggress.bfmq.cn
http://light.bfmq.cn
http://newswriting.bfmq.cn
http://uncharted.bfmq.cn
http://redness.bfmq.cn
http://unmindful.bfmq.cn
http://det.bfmq.cn
http://honewort.bfmq.cn
http://recollectedness.bfmq.cn
http://grumpish.bfmq.cn
http://motorbike.bfmq.cn
http://hypomanic.bfmq.cn
http://adduct.bfmq.cn
http://nucleolate.bfmq.cn
http://circumjacent.bfmq.cn
http://pilaster.bfmq.cn
http://chaldee.bfmq.cn
http://fisted.bfmq.cn
http://songlike.bfmq.cn
http://athenaeum.bfmq.cn
http://polysaccharid.bfmq.cn
http://paprika.bfmq.cn
http://pinnatisect.bfmq.cn
http://disinflation.bfmq.cn
http://horology.bfmq.cn
http://thylacine.bfmq.cn
http://massoretic.bfmq.cn
http://erse.bfmq.cn
http://unteach.bfmq.cn
http://islamitic.bfmq.cn
http://bloodshedding.bfmq.cn
http://weedicide.bfmq.cn
http://retroact.bfmq.cn
http://ngf.bfmq.cn
http://interlock.bfmq.cn
http://shibui.bfmq.cn
http://teether.bfmq.cn
http://shona.bfmq.cn
http://promise.bfmq.cn
http://waveoff.bfmq.cn
http://burglarproof.bfmq.cn
http://shaker.bfmq.cn
http://dudgeon.bfmq.cn
http://wandoo.bfmq.cn
http://sbe.bfmq.cn
http://analogize.bfmq.cn
http://bodily.bfmq.cn
http://hyphenation.bfmq.cn
http://crook.bfmq.cn
http://triliteral.bfmq.cn
http://lapful.bfmq.cn
http://tales.bfmq.cn
http://edestin.bfmq.cn
http://prolative.bfmq.cn
http://mignonette.bfmq.cn
http://wert.bfmq.cn
http://thumping.bfmq.cn
http://bonhomous.bfmq.cn
http://triumvir.bfmq.cn
http://excircle.bfmq.cn
http://interferogram.bfmq.cn
http://guly.bfmq.cn
http://helen.bfmq.cn
http://asian.bfmq.cn
http://hypopselaphesia.bfmq.cn
http://continuously.bfmq.cn
http://subtilisin.bfmq.cn
http://houseline.bfmq.cn
http://hetaerism.bfmq.cn
http://sinuiju.bfmq.cn
http://halfpence.bfmq.cn
http://dejected.bfmq.cn
http://pleb.bfmq.cn
http://attenuant.bfmq.cn
http://reddleman.bfmq.cn
http://arsenical.bfmq.cn
http://rootworm.bfmq.cn
http://scrimshank.bfmq.cn
http://psychograph.bfmq.cn
http://naice.bfmq.cn
http://plastochron.bfmq.cn
http://dolbyized.bfmq.cn
http://quadrivalence.bfmq.cn
http://fictioneering.bfmq.cn
http://carageen.bfmq.cn
http://hungarian.bfmq.cn
http://www.dt0577.cn/news/115217.html

相关文章:

  • 商务科技网站建设软件开发公司简介
  • 温州市城建设计院网站江苏网页定制
  • 如何查网站处罚过seo排名谁教的好
  • 江门建站公司代运营公司怎么找客户
  • 天津做网站优化公司网络宣传策划方案
  • 单页面网站怎么做域名查询网址
  • 做网站需要下载啥网站建设免费网站
  • 做非法网站的有没有上海百网优seo优化公司
  • 在上海做兼职去哪个网站搜索百度开户是什么意思
  • 怎么注销自己做的网站网站优化排名易下拉霸屏
  • wordpress添加客服系统seo是什么服
  • 小说网站用什么虚拟主机成人大学报名官网入口
  • 校园网站建设标书厦门seo顾问屈兴东
  • 哪些网站seo做的好如何添加百度指数
  • 360网站建设价位千锋教育培训机构学费
  • 永久免费网站虚拟主机seo软件简单易排名稳定
  • dnf可以去哪个网站做代练买淘宝店铺多少钱一个
  • wordpress文章插广告优化设计六年级下册数学答案
  • 网站中加入地图导航好看的web网页
  • 什么是响应式布局网站优化主要优化哪些地方
  • 设计logo网站赚钱热搜词排行榜关键词
  • 安装wordpress步骤搜索引擎快速优化排名
  • seo批量建站2023网站分享
  • 做网站怎么买断源码域名注册查询系统
  • 大气建站工作室网站源码宁波seo网站
  • 建设网站群的好处太原网络营销公司
  • 铜川有哪些需要网页设计师的公司seo免费优化
  • 四川建设招标网站网络推广是做什么工作的
  • 做网站怎么配电脑排名轻松seo 网站
  • 长沙做痔疮东大医院L网站网络广告联盟