gb28181的SPVMN测试环境搭建以及设备端和服务器的具体实现
1、GB/T28181开发1之SPVMN(1.0.0.1)环境搭建
https://blog.csdn.net/hiwubihe/article/details/82910685
2、SPVMN 视频监控联网调测软件完整版
https://download.csdn.net/download/chming_love/9389401
3、gb28181设备端实现
1) libeXosip包里tools目录下的sip_reg.c实现了sip的注册(gb28181协议是复用sip协议的注册来接入的)
https://www.cnblogs.com/dong1/p/10258344.html
2) 感谢Kira Jackson同学2012年公开的gb28181的实现
https://files.cnblogs.com/files/dong1/GBT28181.rar
libeXosip自带的sip_reg.c只有注册流程,这个基本算是比较完善的实现了各种指令的处理,仅操作硬件的回调函数需要自行实现
/*回调函数*/ struct _csenn_eXosip_callback { /*获取设备信息*/ /*device_info:设备信息结构体指针*/ /*返回值:成功时返回0,失败时返回负值*/ int (*csenn_eXosip_getDeviceInfo)(struct _device_info *device_info); /*获取设备状态*/ /*device_info:设备状态结构体指针*/ /*返回值:成功时返回0,失败时返回负值*/ int (*csenn_eXosip_getDeviceStatus)(struct _device_status *device_status); /*获取录像文件的起始时间与结束时间*/ /*时间格式:xxxx-xx-xxTxx:xx:xx*/ /*period_start:录像时间段起始值*/ /*period_end:录像时间段结束值*/ /*start_time:当前返回录像文件的起始时间*/ /*end_time:当前返回录像文件的结束时间*/ /*返回值:成功时返回符合时间段条件的剩余录像文件数量,失败时返回负值*/ int (*csenn_eXosip_getRecordTime)(char *period_start, char *period_end, char *start_time, char *end_time); /*设备控制:向左、向右、向上、向下、放大、缩小、停止遥控/开始手动录像、停止手动录像/布防、撤防/报警复位/设备远程启动*/ /*ctrl_cmd:设备控制命令,_device_control类型的枚举变量*/ /*返回值:成功时返回0,失败时返回负值*/ int (*csenn_eXosip_deviceControl)(enum _device_control ctrl_cmd); /*媒体控制:实时点播/回放/下载*/ /*control_type:媒体控制类型,实时点播/Play,回放/Playback,下载/Download*/ /*media_ip:媒体服务器IP地址*/ /*media_port:媒体服务器IP端口*/ /*返回值:成功时返回0,失败时返回负值*/ int (*csenn_eXosip_mediaControl)(char *control_type, char *media_ip, char *media_port); /*播放控制:播放/快放/慢放/暂停*/ /*control_type:播放控制,播放/快放/慢放/PLAY,暂停/PAUSE*/ /*play_speed:播放速度,1为播放,大于1为快放,小于1为慢放*/ /*pause_time:暂停时间,单位为秒*/ /*range_start:播放范围的起始值*/ /*range_end:播放范围的结束值*/ /*返回值:成功时返回0,失败时返回负值*/ int (*csenn_eXosip_playControl)(char *control_type, char *play_speed, char *pause_time, char *range_start, char *range_end); }csenn_eXosip_callback;
3) sip接入成功了,就可以实现音视频流的rtsp点播服务了
ps封装及rtp/udp发送
https://blog.csdn.net/yingyemin/article/details/82910366
4、gb28181服务端端实现
28181服务端就需要跟上面的设备端对应了
首先需要sip服务器,然后rtsp点播请求,这里的rtsp点播是个客户端程序,跟设备里的RTSP服务对应。
gb28181服务器端的PS数据流的解析(rtsp客户端接收设备数据)
https://blog.csdn.net/mo4776/article/category/8485703
也可以用开源的工具,live555和ffmpeg都已经支持了ps流的解析。
5、gb28181一些细节,有网友做了个扫盲专栏
https://blog.csdn.net/longlong530/column/info/gbt28181
6、具体协议分析,有网页抓包了,搬过来
http://www.cnblogs.com/dpf-10/p/8915723.html
gb28181的SPVMN测试环境搭建以及设备端和服务器的具体实现的更多相关文章
- Spvmn测试环境搭建及其安全性讨论
一.说明 这几天都在做设备的协议分析,然后看到有个叫Spvmn的不懂要怎么操作才能触发其操作过程,问了测试部的同事说也没有测试文档,自己研究了一下这里做个记录. 按我现在理解,各厂商有自己的私有协议. ...
- 『与善仁』Appium基础 — 1、Android系统的测试环境搭建
目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...
- 『与善仁』Appium基础 — 14、Appium测试环境搭建
目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...
- Linux测试环境搭建的学习建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...
- 总结Selenium自动化测试方法(二)测试环境搭建
(接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...
- 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security Socket Layer)全称 ...
- openstack controller ha测试环境搭建记录(二)——配置corosync和pacemaker
corosync.conf请备份再编辑:# vi /etc/corosync/corosync.conf totem { version: 2 token: 10000 t ...
- 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结
Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...
随机推荐
- Unity教程之-基于行为树与状态机的游戏AI
AI.我们的第一印象可能是机器人,现在主要说在游戏中的应用.关于AI的相关文章我们在前面也提到过,详细请戳这现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完成的.比 ...
- DWORD类型
INT 代表int,DWORD 代表 unsigned longint会随着机器位数的不同而发生变化,比如在16位机上为16为,在32位机上为32位,在64位机上为64位.看看最原始的定义就知道了. ...
- 【SJSB】 android-javascript开发框架
这是一个本人开发的android壳,作用就是为html5开发提供各种接口以调用native. 只是第一个版本,随笔以纪念.详细的说明和api都在 项目的readme中. 项目地址: https://g ...
- fork函数详解--20
一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同 ...
- redisTools-IdGenerator
public class IdGenerator : RedisToolBase { //redis客户端对象 private static readonly NedisClient client = ...
- MyException--org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ###
org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may ...
- Emulator Error: Could not load OpenGLES emulation library: Could not load DLL!
Copy the file below from SDK\tools\lib to SDK\tools. libEGL_translator.dlllibGLES_CM_translator.dlll ...
- python常用内置模块,执行系统命令的模块
Subprocess模块 python3.5将使用Subprocess模块跟操作系统进行交互,比如系统命令,他将替换 os.system os.spawn* subprocess.run()方法封装的 ...
- Thinkphp 修改U方法按路由规则生成url
tp开户路由后,使用U方法是不会按路由规则生成url的,一般我们是要手动修改模版,把里面的U方法去掉,手动修改链接,如果是已经写好的程序,后期才添加路由,修改起链接就太麻烦了 今天无聊就修改了一下U方 ...
- ping命令和telnet命令
1.检查能不能连接上远程主机 ping 主机ip 2.检查远程主机端口是不是开放 telnet 198.10.10.69 1521 Trying 198.10.10.69...Connected t ...