精华内容
下载资源
问答
  • 最近用JAVA的SIP协议写了一个GB28181平台的对接,并成功完成了海康、大华、中威等设备,更重要的是海康平台、公安一所平台的对接。因为行业内很少有JAVA方面的设备接入实现,希望本篇能够让JAVA在安防接入生态中发挥...
  • 基于Java实现的GB28181平台。 使用指南 修改config.properties文件中的配置信息,编译运行即可。 功能更新日志 2020.3.25 注册; 恢复 目录查询; 实时视频流(TCP被动/ UDP)。 测试工具 谢谢 ,; 国标QQ交流群 ...
  • 基于gb28181协议的视频接入;包括vue的前端源码;Sip信令试用服务器;大华、海康的摄像头视频接入方式;非商业用途,仅限demo展示用
  • GB28181平台测试程序,可以作为GB28181 上级 和 下级 支持对接海康、科达、大华、雄迈等各种市面热销平台,对于政府部门GB28181对接成功案例很多
  • GB28181:基于JAVA的设备注册实现[part2] 一、不鉴权 二、鉴权 三、伪代码 /** * 处理注册相关业务 * * @param requestEvent * @param messageFactory * @param headerFactory * @param sipProvider */ ...

    GB28181:基于JAVA的设备注册实现[part2]


    一、不鉴权

    image

    二、鉴权

    image

    三、伪代码

    /**
    
    * 处理注册相关业务
    
    *
    
    * @param requestEvent
    
    * @param messageFactory
    
    * @param headerFactory
    
    * @param sipProvider
    
    */
    
    private void doRequestRegister(RequestEvent requestEvent,AddressFactory addressFactory, MessageFactory messageFactory, HeaderFactory headerFactory, SipProvider sipProvider) {
    
    Request request = requestEvent.getRequest();
    
        try {
    
    String deviceId = getDeviceIdByRequest(request);
    
            log.info("Register deviceId is {}, toURI is {}", deviceId);
    
            if (StringUtils.isEmpty(deviceId)) {
    
    log.error("Register error, deviceId is empty!");
    
    return;
    
            }
    
    //无需鉴权或者鉴权判断通过
    
            if (isAuthClosed(deviceId) || isAuthorizationPass(request)) {
    
    //返回成功 返回Response.OK
    
                log.info("Register doSuccess!");
    
                doSuccess(requestEvent, addressFactory, messageFactory, headerFactory, sipProvider);
    
            }else if (isRegisterWithoutAuth(request)) {
    
    doUnAuthorized(requestEvent, messageFactory, headerFactory, sipProvider, request, deviceId);
    
            }else {
    
    doLoginFail403(requestEvent, addressFactory, messageFactory, headerFactory, sipProvider);
    
            }
    
    }catch (Exception e) {
    
    log.error("处理Register请求的时候出错 error, {}", e.getMessage());
    
            e.printStackTrace();
    
        }
    
    }
    

    四、有兴趣加群一起交流

    扣 群 号:

    541410132,注明:CSDN
    源码:给个star吧https://gitee.com/yuntian_admin/srymy

    展开全文
  • JAVA实现GB28181接入 —— SIP协议简介

    千次阅读 2021-01-22 09:44:45
    一、GB28181 简介 1. GB28181全称是: 《安全防范视频监控联网系统 信息传输、交换、控制技术要求》 目前最新版本是2016版。 2. GB28181引用的文件: RFC 2030 简单网络时间协议(SNTP)第四版 RFC 2326 RTSP:...

    一、GB28181 简介

    1. GB28181全称是:

    《安全防范视频监控联网系统 信息传输、交换、控制技术要求》
    目前最新版本是2016版。

    2. GB28181引用的文件:

    • RFC 2030 简单网络时间协议(SNTP)第四版
    • RFC 2326 RTSP:实时流协议
    • RFC 2976 SIP INFO方法
    • RFC 3261 SIP: 会话初始协议
    • RFC 3263 会话初始协议(SIP):定位SIP服务器
    • RFC 3428 会话初始协议(SIP) 即时消息扩展
    • RFC 3550 实时传输协议
    • RFC 3725 会话初始协议(SIP)中第三方呼叫控制(3PCC)的当前最佳实现
    • RFC 4566 SDP: 会话描述协议
    • RFC 3219 TRIP(Telephony Routing over IP)IP电话路由协议
    • ITU-T Rec. G.711-1988数字传输系统的通用部分:音频的脉冲编码调制
    • ITU-T Rec. G.723.1-1996数字传输系统的通用部分:5.3和6.3kbit的多媒体通信传输中的双速率
      语音编码器
    • ITU-T Rec. G.729-1996数字传输系统的通用部分:利用共轭结构代数码激励线形预测的8kbit/s
      语音编码
    • ITU-T Rec. H.264-2005 H系列:音视频和多媒体系统,音视频服务基础-活动视频编码:通
      用音视频服务的先进视频编码
    • ITU-T Rec. H.264.1-2005 H系列:音视频和多媒体系统,音视频服务基础-活动视频编码:H.264
      先进视频编码的一致性说明
    • GB/T GB/T 25724-2010 安全防范监控数字视音频编解码技术要求

    3. 缩略语

    • B2BUA Back to Back User Agent 背靠背用户代理
    • CIF Common Intermediate Format 通用中间格式
    • DNS Domain Name System 域名系统
    • DVR Digital Video Recorder 数字硬盘录像机
    • IP Internet Protocol 因特网协议
    • MANSCDP Monitoring and Alarming Network System Control Description Protocol
      监控报警联网系统控制描述协议
    • MANSRTSP Monitoring and Alarming Network System Real-Time Streaming Protocol
      监控报警联网系统实时流协议
    • NAT/FW Network Address Translator and FireWall 网络地址翻译/防火墙
    • NTP Network Time Protocol 网络时间协议
    • PS Program Stream 节目流
    • RTCP Real-time Transport Control Protocol 实时传输控制协议
    • RTP Real-time Transport Protocol 实时传输协议
    • RTSP Real-Time Streaming Protocol 实时流化协议
    • SDP Session Description Protocol 会话描述协议
    • SIP Session Initiation Protocol 会话初始协议
    • S/MIME Secure Multipurpose Internet Mail Extensions 安全多用途网际邮件扩充协议
    • TCP Transmission Control Protocol 传输控制协议
    • TLS Transport Layer Security 传输层安全
    • UA User Agent 用户代理
    • UAC User Agent Client 用户代理客户端
    • UAS User Agent Server 用户代理服务端
    • UDP User Datagram Protocol 用户数据报协议
    • URI Universal Resource Identifier 全局资源标识符
    • XML EXtensible Markup Language 可扩展标记语言
    • SVAC Surveillance video and audio coding 安全防范监控数字视音频编码

    4. 互联结构

    在这里插入图片描述

    5. 联网方式

    级联

    信令级联结构示意图
    在这里插入图片描述
    媒体级联结构示意图:
    在这里插入图片描述

    互联

    在这里插入图片描述
    在这里插入图片描述

    6. 通讯协议

    在这里插入图片描述

    二、SIP协议

    1. 定义

    SIP 协议,即 会话初始协议(Session Initiation Protocol),是一个应用层的 点对点协议,用于初始、管理和终止网络中的语音和视频会话,是 GB28181 的核心之一。

    按照 IETFRFC2543 的定义:

    SIP是一个基于文本的应用层控制协议,独立于底层传输协议 TCP/UDP/SCTP,用于建立、修改和终止IP网上的双方或多方多媒体会话。SIP协议借鉴了HTTP、SMTP等协议,支持代理、重定向及登记定位用户等功能,支持用户移动。通过与RTP/RTCP、SDP、RTSP等协议及DNS配合,SIP支持语音、视频、数据、E-mail、状态、IM、聊天、游戏等。SIP协议可在TCP或UDP之上传送,由于SIP本身具有握手机制,可首选UDP。

    在这里插入图片描述

    SIP 用于设备管理,其中有两个要素 - SIP用户代理 和 SIP网络服务器。
    在这里插入图片描述

    2. SIP结构

    一个合法的SIP请求必须至少包含如下头域:TO,FROM,Cseq,Call-ID,Max-Forwards, Via;这些字段在所有SIP请求中必须包含。这6个字段是SIP消息的基本组成部分,他们提供了用于路由用的核心信息,包含了消息的地址,响应的路由,消息传递次数,详细的顺序,事务的唯一标志。

    这些头域字段是必须包含在请求行之后的,请求行包含了请求的方法,Request-URI,SIP的版本号码。请求行例子:REGISTER sip:192.168.10.177:5060 SIP/2.0。

    在这里插入图片描述

     

     

    SIP的优点:

    1.扩展性:

    SIP可以由特定的应用程序扩展,并具有内置的机制来创建其他应用程序。此外,SIP消息可以承载各种消息体(如纯文本、媒体会话描述、XML文本等)的有效负载,因此应用程序开发人员可以将SIP用作任何类型应用程序数据的通用传输机制。   

    2.冗余设计:

    SIP并不在传输层实现冗余。它有一个内置的命令重传机制(即,如果目标接收者不确认该命令)。这使得通信系统更加可靠,因为任何丢失的命令,例如媒体服务器组的一个成员的故障,都会被该组的另一个成员重新传输和确认。

    3.传输独立:

    SIP不绑定到特定的传输协议,但它可以在任何传输数据包的协议(如IPv4、ATM、IPv6等)上运行。这意味着UCS可以在更广泛的网络中配置,不仅适用于基于IP的网络,还适用于其他传输协议。

    4.轻量级特性:

    SIP是一个绝对的轻量级协议,每条消息的开销在几百字节以内,而且一条消息的格式很容易解析。这意味着解析或组成命令消息只占用很少的CPU资源,而且这些消息只带来很少的网络开销。另外,SIP可以操作在无连接的传输协议(如UDP)之上,这就消除了连接时间(即建立一个连接的时间)的开销,而在面向套接字或连接的协议(如TCP)中,这个开销是很典型的。   

    5.支持加密:

    SIP含有的另一功能是在通信双方之间指定加密计划。这允许媒体服务器为了传送安全的服务而与其他可靠的网络单元交换加密命令和媒体流。

    展开全文
  • GB28181:基于JAVA的Catalog目录获取[part3] 1、国标文件里面catalog的描述 2、java组装SIP流请求信令 private void doResponseInvite(ResponseEvent responseEvent, AddressFactory addressFactory, ...

    GB28181:基于JAVA的Catalog目录获取[part3]

    1、国标文件里面catalog的描述

    QQ图片20210128113040.png

    2、java组装SIP流请求信令

    
        private void doResponseInvite(ResponseEvent responseEvent, AddressFactory addressFactory, MessageFactory messageFactory, HeaderFactory headerFactory, SipProvider sipProvider, Response response, CSeqHeader cSeqHeader) throws ParseException, SipException, InvalidArgumentException {
            if (responseEvent.getResponse().getStatusCode()== Response.OK) {
                log.info("收到INVITE的OK返回,组装发送ACK信令");
                sendAckRequest(responseEvent,messageFactory,addressFactory, headerFactory, sipProvider, response);
            } else {
                log.info("异常的INVITE返回,返回编码:{}",responseEvent.getResponse().getStatusCode());
            }
        }
    
        private void sendAckRequest(ResponseEvent responseEvent, MessageFactory messageFactory, AddressFactory addressFactory, HeaderFactory headerFactory, SipProvider sipProvider, Response response) throws InvalidArgumentException, ParseException, SipException {
            CSeqHeader cSeqHeader = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
            CallIdHeader callIdHeader = ((CallIdHeader) response.getHeader(CallIdHeader.NAME));
            ToHeader toHeader = ((ToHeader) response.getHeader(ToHeader.NAME));
            FromHeader fromHeader = ((FromHeader) response.getHeader(FromHeader.NAME));
            SipURI requestURI = (SipURI) toHeader.getAddress().getURI();
            MaxForwardsHeader maxForwards = headerFactory.createMaxForwardsHeader(70);
            ViaHeader viaHeader = ((ViaHeader) response.getHeader(ViaHeader.NAME));
            viaHeader.setRPort();
            ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
            viaHeaders.add(viaHeader);
            cSeqHeader.setMethod(Request.ACK);
            Request ACKRequest = messageFactory.createRequest(requestURI, Request.ACK, callIdHeader, cSeqHeader, fromHeader, toHeader, viaHeaders, maxForwards);
            sipProvider.sendRequest(ACKRequest);
        }
    

    3、源码

    源码:给个star吧https://gitee.com/yuntian_admin/srymy

    展开全文
  • GB28181设备SDK

    2020-08-13 16:18:58
    Happytime GB28181设备是符合GB28181标准的程序,支持GB28181 2016版本。 支持GB28181标准2016版的所有功能。 支持H264,H265和PS封装。 支持订阅,通知功能。 支持录音播放,录音下载,支持语音通话和音频广播。 它...
  • GB28181_RTSP_Demo_(gb28181_rtsp.out) 使用手册 运行环境:centos7.3 x64 的linux系统
  • 上篇文章中对GB28181的协议做了简单描述,这个还是很简单的,通过协议我们最主要的实现: 摄像头的注册 点播和关闭指令 摄像头在点播后,会向指定的UDP端口推送视频流,这里耗费了不少时间 收流 首先我们需要启动...

    上篇文章中对GB28181的协议做了简单描述,这个还是很简单的,通过协议我们最主要的实现:

    1. 摄像头的注册
    2. 点播和关闭指令
      摄像头在点播后,会向指定的UDP端口推送视频流,这里耗费了不少时间

    收流

    首先我们需要启动一个UDP服务,将摄像头发送的数据接收,JAVA启动UDP端口的例子很多,就不举例了。一般每一帧大概1500个字节以下,收到数据后放到一个byte[]中,后面就要解析读取H264裸数据了

    拆包

    GB28181这块对内容的描述比较简单,造成走了很多弯路。
    最早我直接去掉RTP12个字节的包头,然后写入一个文件中去验证,结果这个文件居然也可以播放,一些地方有一点花屏。

    实际上包结构也比较简单,整体就是
    12字节RTP包头 + PS数据
    所以第一步 先把12个字节包头去掉

    这里先贴个图
    在这里插入图片描述
    PS数据的格式处理起来比较麻烦
    格式如下
    关键帧
    PSheader| PS system header | PS system Map | PES header | h264 raw data
    非关键帧
    PS header | PES header | h264raw data

    关键帧也叫I帧,非关键帧是P帧
    借用https://blog.csdn.net/comhaqs/article/details/102702713中的3张图
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    这篇博客写的很好 我们获取其中绿色的部分。而我在实际抓包的时候,发现这个有一部分内容,就是我红框的地方,上图没有描述。
    后来查阅到,这部分叫做SEI,这部分实际测试 不处理也不影响结果。

    我在收流的时候,启动一个线程来接收流,拆包处理后,把数据传送给另外一个线程进行转码。

    转码

    展开全文
  • 2)具备接收28181设备或者平台心跳功能,心跳超时能将内存里面的管理设备或者平台下线。 3)具备对28181设备或者平台校时功能。 4)具备目录查询功能,对获取的到设备列表进行管理。 5)具备实时点播开始和结束功能...
  • gb28181开发源码

    2018-06-02 14:06:51
    本资料包包括基于国标协议编写的gb28181开发源码,可直接用于ARM、DSP架构
  • 本文档包含GB28181视频流协议的完整VS工程,工程运行后自动加载一段文档内的视频文件,按GB28181视频流传输到后台。在工程运行前需要在源代码中设置好GB28181服务器连接地址以及端口,媒体播放器地址以及端口,可以...
  • 国标gb28181全系列都可以参考过去的过去了的博客,再次表示感谢。 解析流程参考https://blog.csdn.net/chen495810242/article/details/39207305 代码基于github上的修改https://github.com/yangjiechina/JGB28181...
  • GB28181Android.zip

    2019-09-05 11:29:40
    GB28181 Android 端实现, 包括 RTP/PS/H264/G711,demo工程
  • gb28181简单实现sip信令服务器(java版基于springboot):三、sip摄像头注册(代码实现)
  • GB28181客户端实现,封装sdk接口. (GB28181 client implementation, encapsulation sdk interface.)
  • GB28181(海康内部资料

    2019-04-11 17:13:47
    GB28181海康内部资料里面分类都很详细,用于2812国标视频对接开发
  • gb28181对接测试工具

    2018-03-29 13:36:51
    对接海康,大华,科达,雄迈等诸多GB28181上级、下级平台对接,可以直接使用
  • GB28181-推流.rar

    2019-09-03 07:11:08
    GB28181的设备端推流测试程序,测试信令和打包情况,RTP传输
  • GB28181转RTSP、RTMP和HLS

    2018-08-22 20:26:46
    国标GB28181转RTSP、RTMP和HLS管理平台,支持局域网和公网。
  • GB28181调试服务器

    2017-10-27 23:38:28
    GB28181调试服务器,基于tomcat,可用。注意webapps下无war包,war包在webapps同级目录下,名称为SIPStandardDebug.war。将war包放在webapps目录下运行tomcat。启动完成访问 ...
  • GB28181平台代码 Windows

    2019-03-13 16:09:39
    GB28181平台源代码,支持Widnows平台,C++实现
  • 最近用JAVA的SIP协议写了一个GB28181平台的对接,并成功完成了海康、大华、中威等设备,更重要的是海康平台、公安一所平台的对接。因为行业内很少有JAVA方面的设备接入实现,希望本篇能够让JAVA在安防接入生态中发挥...
  • GB28181使用python实现源码 作为上级域对接海康蓝盾平台。包括catalog设备信息,预览设备视频流保存成本地文件以及球机PTZ控制 参考博文 ps流 h264解析 ...
  • GB28181协议——布防和报警订阅

    千次阅读 2020-12-16 09:52:19
    GB28181协议——摄像机报警订阅布防布防结果报警订阅报警订阅结果报警通知取消报警订阅 布防 SetGuard 布防 ResetGuard 撤防 》》》》》IPC MESSAGE sip:34020000001110000001@3402000000 SIP/2.0 From: <sip:...
  • GB28181+GB35114

    2018-12-05 15:08:08
    压缩包内含如下文件: GB 35114-2017 公共安全视频监控联网信息安全技术要求.pdf GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求.pdf GB-T-25724-2017.pdf
  • 使用ffmpeg实现GB28181关键帧打包
  • GB28181平台测试程序,可以作为GB28181 上级 和 下级 支持对接海康、科达、大华、雄迈等各种市面热销平台,对于政府部门GB28181对接成功案例很多
  • GB28181对接视频流

    千次阅读 2019-02-15 08:40:11
     今天抽空写下以GB28181的方式获取摄像机视频流以备后用,同时也希望能帮助到正着手开发GB28181对接视频的同学,这块的资料实在不多。 今天讲的内容不涉及到平台对接,平台对接下次有时间再讲,平台对接相对更麻烦...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 471
精华内容 188
关键字:

gb28181java

java 订阅