视频平台
# 业务功能使用指南
视频系统在物联网扮演着非常重要的角色,是智慧园区、智慧城市的“眼睛”。为支持视频系统在Web中应用,敢为软件顺应时代的需求,研发了具有多协议支持、跨平台、高性能的敢为视频平台。视频平台主要包含两个部分,第一个是视频流服务,用来转换视频流和接收推拉流配置,是视频平台的基础;第二个部分是视频平台,其功能包含设备管理、视频流代理、视频列表、视频回放、应用管理等功能。
# 视频教程
# 流媒体服务器配置
# 流媒体服务配置
config.ini文件是流媒体服务的启动配置文件,配置详情见流媒体服务配置文件中详解。
Windows下版本依赖环境包括:VC++2015及以上版本,windows环境下在有vc++2015及以上版本出现libssl-1_1-x64.dll下图错误提示,需安装OpenSSL,安装OpenSSL参考连接: https://lexiangla.com/docs/186bd74eda6f11ecb29f7a4dce2bb862?company_from=823abee6207d11ea8105525400edef21
Linux下版本依赖环境包括:gcc>=4.8。
# 流媒体运行
windows环境下运行
运行MediaServer.exe程序,运行效果如图所示。
Liunx环境下运行(CentOS8 64位为例)如图所示
说明:
进入存放流媒体服务的文件夹找到运行程序
MediaServer为流媒体的运行程序
以守护进程模式启动流媒体服务 ./MediaServer -d &
程序运行效果如图所示
# 视频平台配置
打开\IoTCenterWeb\publish\plugins\Ganweisoft.IoTCenter.Module.VideoPlatform目录下的Ganweisoft.IoTCenter.Module.VideoPlatform.json文件,添加流媒体服务连接配置信息。在内网和云端需要连接流媒体服务的时候需要配置准确。
"MediaService": {
"url": "127.0.0.1", //流媒体服务地址
"https": false, //是否启用https
"port": 8088, //流媒体端口号
"rtmp_port": 1935, // rtmp 端口号
"rtsp_port": 554, //rtmp 端口号
"secret": "035c73f7-bb6b-4889-a715-d9eb2d1925cc",
"imgSavePath": "",
"tokenExpireTime": 30, //鉴权时间
"siteId": 1,
"NorthUrl": "http://127.0.0.1:44381", //ivs拉流配置地址
"NorthAppId": "gwvideo", //ivs拉流配置账户
"NorthSecret": "2NJ09mW02BcaM6p+RjLWKg==", // ivs拉流账户密码(已经使用敢为加密)
"siteList": [ //视频系统录像参数
{
"siteId": 1,
"VideotapeCallbackUrl": "",
"VideoUploadUrl": "http://172.168.100.13:44391/api/VideoInfo/PuthMP4Record", //录像推送地址路径
"secret": "035c73f7-bb6b-4889-a715-d9eb2d1925cc",
"ClientUrl": "http://172.168.100.13:44391" //录像地址
}
],
"ClientVideoRecordPath": "D:\\Temp" //视频录制储存地址
},
"IPOptions": {
"WhiteIP": [
"192.168.110.101", //视频平台流地址观看白名单,添加后可以直接播放视频平台的视频
"172.168.100.97"
]
},
"SIPService": {
"Id": "44010200492000000001", //sip服务摄像头id
"PassWd": "csAlX0hCl2WWYPNln6XLtA==", //sip服务密码(已经使用敢为加密)
"IP": "", //sip ip地址
"Port": 5061 //sip 服务端口号
}
# 数据库配置
# 拓展插件配置
# 端口配置
打开图示目录下的appsetting文件修改端口。
# 通过新端口进入IoTCenter平台
功能介绍
视频平台主要包含设备管理、视频流代理、视频列表、视频回放、应用管理等功能。
# 设备列表
对设备信息列表的管理,添加、编辑、删除、查询,设备信息为视频设备的基础信息,视频流接入的时需要关联设备信息,如图所示。
添加
点击“添加”按钮,输入视频设备的基本信息,点击确定按钮后保存数据。(图片示例中的拉流地址:rtsp://admin:ganwei8888@@192.168.0.30:554/Streaming/Channels/1)
说明:
字段 | 值 |
---|---|
流类型 | 通过下拉选择对应的类型。 |
设备类型 | 根据设备选择。 |
拉流地址(URL) | 地址为设备的拉流地址支持流类型中的拉流协议。 |
通道号 | 设备本身支持的通道号 如海康摄像头支持 1,2通道号,可以填写任意一个通道号 |
编辑
点击“编辑”按钮,对设备的信息进行修改,点击“确定”按钮后保存数据,如图所示。
删除
点击“删除”按钮,删除设备信息,该操作不可恢复,如图所示。
查询
根据设备名称模糊查询,如图所示。
视频接入
视频流接入分3个大类型,普通拉流、国标SIP推流、推流。3大类型的“添加”、“编辑”、“删除”操作都一致。
普通拉流
普通拉流为直接获取摄像头或者录像机的信息,由敢为流媒体服务直接对摄像头等设备进行拉流再通过虚拟设备等一系列配置进行流播放,如图所示。
点击“添加”按钮,填写基本信息,点击“确定”保存数据。
点击“确定”后,程序会尝试从流媒体获取流信息,查看是否拉流成功或者流是否存在,保存成功后显示如图所示。
说明:
字段 | 值 |
---|---|
域名 | 自定义字段最好为字母、数字,中文会出现拉流地址乱码。 |
应用名 | 自定义字段最好为字母、数字,中文会出现拉流地址乱码,组成流地址的关键字段 |
流id | 自定义字段最好为字母、数字,中文会出现拉流地址乱码,不能出现重复的流ID,组成流地址的关键字段。 |
流名称 | 自定义字段。 |
拉流地址 | 通过选择的设备自动填入。 |
转HLS | 选择是会有转HSL的流。 |
录制MP4 | 选择是将自动开始录制MP4文件。 |
拉流方式 | 根据下拉框选择。 |
状态 | 启用才能拉流,停用将关闭拉流。 |
从IoTCenter拿视频流 | IoTCenter拿视频流,是另外一种拉流方式 |
设备号 | 选择从IoTCenter拿视频流后,出现的菜单,填写设备管理中的设备号 |
站点号 | 站点号为数据库中的equip表中,“sta_n”字段的值 |
视频协议 | 可以选择拉流协议 |
推流
管理第三方推流信息,未记录信息在案的推流信息不匹配的都不允许往敢为流媒体服务推流。
点击“推流”,点击“添加”,点击“确认”,如图所示。
点击“确定”后,程序会检查是否已经收到该流信息。
SIP推流
国标28181协议推流,在此处配置好SIP推流信息后,由国标设备主动向敢为流媒体服务去推流。如图所示,海康摄像头配置路径。
说明:
字段 | 值 |
---|---|
SIP用户名 | 摄像头的SIP的id号 |
密码 | 填写在IoTCenterWeb的配置文件中,需要加密工具加密 |
SIP服务器地址 | 地址是敢为视频服务地址 |
SIP服务器ID | 填写在IoTCenterWeb的配置文件中 |
SIP服务器端口 | 填写在IoTCenterWeb的配置文件中 |
使用SIP服务前需要配置Web的配置文件和摄像头的SIP服务,并且填写正确。之后再添加设备,如图所示。
SIP信息列表的数据由SIP服务进行管理,当在SIP服务添加一个设备时,会在SIP信息列表中自动添加一条流信息。
删除
点击“删除”按钮,删除数据,此操作不可恢复,如图所示。删除数据后,会断开视频拉流或者关闭推流。
流地址
在视频平台的视频接入中,点击流地址,可以获取当前流在各个协议下的播放地址。
查询
根据流名称来模糊查询,如图所示。
生成设备
使用“生成设备”功能,自动生成绑定“设备管理”中的“视频流设备”和“虚拟设备”。两种设备下生成“遥测量”和“设置量”的同时并进行相关信息的自动绑定。可批量选择设备进行生成绑定,如图所示。
绑定云台
点击“绑定云台”输入云台设备的,进行绑定操作。当云台设备id为空时将接触绑定操作,如图所示。
# 视频输出
管理向第三方推的流信息。添加、编辑、删除等操作。
添加一个视频输出后,敢为流媒体服务将向第三方视频服务器推流。支持rtmp和rtsp推流。新增或修改推流信息后将会主动推流并返回推流成功标识,填写信息如图所示。
视频流的url组成方式;
以rtsp://somedomain.com:554/live/0?token=abcdefg&field=value为例,该url分为以下几个部分的说明:
组成部分 组成部分的内容 协议(scheam) rtsp协议,默认端口554 虚拟主机(vhost) somedomain.com,该字段既可以是域名也可以是ip,如果是ip则对应的虚拟主机为__defaultVhost__ 服务端口号(port) 554,如果不指定端口号,则使用协议默认端口号 应用名(app) live 流ID(streamid) 0 参数(args) token=abcdefg&field=value 视频平台推流配置目标流地址结构组成方式;
以rtmp://139.159.242.177:1935/appname/streamid1 为例,该地址组成部分的说明:
组成部分 组成部分详细解释 rtmp 流类型 可为其他流类型 139.159.242.177 云端视频平台服务器的IP地址。如果设备在局域网也可以写局域网地址。 appname 在云端视频平台中应用的名称。 streamid1 在云端视频平台中的流id。
# 应用列表
应用管理是给其他平台或产品使用视频平台的鉴权功能。
应用管理是给其他平台或产品使用视频平台的鉴权功能,其中包含应用的appKey、appSecret和过期时间等配置。其中appKey和appSecret是平台添加的时候自动生成的,用户在请求视频平台的视频流时,需要带上这两个参数,如图所示。
添加应用,如图所示,“应用名”;自定义名称;“过期时间”;时间到期后应用将不能在访问指定的视频流。
修改视频权限,通过修改视频权限控制应用能够访问的视频流。如图所示,视频流组成为“视频接入”部分的域名/应用/流id。
# 视频列表
播放视频流,可进行录像抓拍等。
播放视频流,可进行录像抓拍等,如图所示。
# 视频录制
录制视频。
# 回放列表
可以查看、管理录像信息并能播放录像。
可以查看、管理录像信息并能播放录像,如图所示。
# 视频流服务协议图
视频流服务是视频平台运行的基础,也是视频流转换、回放和截图等操作的处理程序。敢为视频流服务提供跨平台视频流协议转换功能,为视频平台打下坚实的基础。
视频流服务是视频平台运行的基础,也是视频流转换、回放和截图等操作的处理程序。敢为视频流服务提供跨平台视频流协议转换功能,为视频平台打下坚实的基础,协议概述如图所示。
# 摄像头直连方式配置参考
摄像头直连。
前提条件,流媒体服务部署正常,配置前准备摄像头IP,账号密码,按照以下方式进行组合。
账号 | 密码 | IP地址 |
---|---|---|
user | 123 | 192.168.1.2 |
按照以下方式进行组合。
rtsp://user:123@192.168.1.2:554/Streaming/Channels/1(这种格式是海康的拉流格式)
# 第一步(添加一个设备)
将摄像头地址添加到视频平台的设备列表中,如图所示。
# 第二步(将设备视频流拉入视频平台)
将添加好的摄像头接入到视频平台的视频接入。
点击添加,点击设备名,下拉菜单就会弹出刚刚添加在设备列表的摄像头,选中要添加的摄像头。
填入“域名”“应用”“流id”参数,随机字母数字,需要和其他摄像头设备不重复。
其他选项按参考图4-2-1所示进行配置的所实列进行填写。
点击保存,这样就成功在视频平台接入了一个摄像头,如果显示拉流成功,就可以在视频列表中进行观看。(如果拉流失败就用本节最开始的拉流地址重新创建设备“展厅门口球机”)
# 第三步(给摄像头添加权限)
添加权限在应用列表中,选择过期的时间,如图所示。
添加好之后,将摄像头勾选上去,如图所示。摄像头添加权限之后可以点击生成设备,就会自动在IoTCenter中的设备管理中生成相应的视频流和虚拟设备,以及云台控制等参数。
# 第四步(生成设备,绑定云台)
生成设备可以批量生成,也可以单个生成。如图所示,点击之后就会在设备管理中生成相应的视频流和虚拟子设备。
如果摄像头支持云台控制,可以进行云台的绑定。点击“绑定云台”输入云台设备的,进行绑定操作。当云台设备ID为空时将接触绑定操作,如图所示。
# 第五步(在视频系统中观看视频,操作云台)
点击选择需要播放的设备,在屏幕中点击播放,就可以观看视频了,如图所示。
# ivs拉流方式配置参考
# 第一步(添加动态库)
添加如图所示的动态库到web的dll目录。
# 第二步(修改数据表)
修改数据表,将iotEquip ,iotSetParm,iotYcp,表中执行sql文件生成如下图的数据
# 第三步(生成ivs视频子设备)
登录后设备,在设备模板中配置ivs 地址密码,如图所示
在设备管理中添加ivs视频子系统到设备管理中,如图所示
添加ivs视频子系统到设备管理之后到设备列表中生成设备,点击初始化数据就可以生成摄像头,如图所示。
可以选择一个摄像头,点击摄像头的设置点中的查看视频地址测试摄像头获取ivs地址是否正常,如图所示。
之后可以在遥测量中查看获取到的流地址,至此ivs获取流地址配置完成。
# 第四步(添加一个视频账户,修改配置文件)
在账号管理中添加一个视频账户,如图所示。
将刚刚添加的视频账户的密码使用敢为加密进行加密,如图所示。
将账号和密码添加到web中的配置文件中,如图所示。
# 第五步(拉流到视频平台)
先将ivs视频子系统中的摄像头添加两个字段 ,vp_rtsp 添加到第一个遥测量,vp_play_start添加到设置点的获取视频地址的设置点.
遥测量
设置点
接着查看需要拉流的设备的设备号,并记住这个设备号,如图所示。
转到视频平台,首先在设备列表中添加一个授权,如图所示。
在设备列表中添加一个设备名,如图所示。
在视频接入中点击添加设备,设备名中选择刚刚添加的设备名,再按照下图进行填写,是否启用,选择停用,如图所示。
说明:
字段 | 值 |
---|---|
站点号 | 站点号为数据库中的equip表中,“sta_n”字段的值 |
视频协议 | 可以选择拉流协议 |
设备号 | 设备号是设备管理中的摄像头的设备编号 |
视频流协议可以选择,websocket(ws)、flv、rtmp、rtsp、hls协议进行拿流。
将新添加的视频接入在应用列表中加入权限,如图所示。
再回到视频接入中设备进行编辑,将设备选择启用,点击保存,如果拉流成功,就会显示拉流成功,拉流成功后就可以进入下一步。
# 第六步(自动生成“视频流设备”)
参考摄像头直连方式配置中的,第四步(生成设备,绑定云台)。
手动生成“视频流设备”
手动配置 “视频流设备”
在设备管理中手动添加一个设备,命名为“视频流”,设备的参数按照下图进行填写。
再到“视频流”设备中添加一个遥测量来获取视频平台的流(一路遥测量指一路视频流),填写参考下图。
再在“视频流”设备中添加一个设置点,用来播放添加的这一路流,如图所示。
现在完成了视频流的一个播放测点的设置,和一路视频流的设置。
创建虚拟播放设备
添加一个虚拟设备来播放视频流,按照下图所示对添加的设备进行设置。
下一步,给这个虚拟设备加一个遥测量来取流,如图所示。
接着在这个虚拟设备中添加一个播放设置量来播放视频,填写方法如图所示。
通过ivs获取一路摄像头的视频流在ivs中观看的配置就完成了,可以打开视频系统中观看添加的虚拟设备,播放视频,如图所示。
# 接入海康云平台录像回放
首先在数据库中的GW_VideoPlatform_ThirdParty表中添加录像机的地址,和动态库的名称。
在设备列表中选择摄像头,点击修改设备参数,在设备设置中的“预留字段3”中添加一个。“$+海康摄像头的编号”,如果有设备号,则在设备号后面进行追加,如图所示。
例1;无设备号:“$32028101002000000000”
例2;有设备号,设备号假设20:“20$32028101002000000000”
接着在视频系统中的录像回放中点击第三方录像回放,选择需要查看的时间,点击搜索,如图所示。
# 服务器通过端口映射在公网使用视频系统
说明:视频系统播放的是“ws”视频流。图中“视频流设备”的遥测量为视频平台所接摄像头的视频地址。“Vp-摄像头”为虚拟设备,将“视频流设备”的遥测量接入到对应的虚拟设备。生成的设备默认为服务器的局域网地址,如果服务器的端口映射到公网,需要在公网播放视频,需要添加新的“遥测量”为将局域网的地址替换成公网地址。
配置方法;(修改摄像头1)
首选需要把“视频流设备”中摄像头1的ws流的遥测量进行修改,将操作参数后面追加映射到的公网地址(“wslive;8088”修改为“wslive;8088;111.47.00.000”)。这个遥测就会作为外网播放的遥测量。
第二步;在视频流设备中新增一个遥测量,作为摄像头1内网播放的遥测量,参数和刚才修改的“ws-摄像头1”参数区别就只有操作参数的区别,在操作参数中的地址改成局域网地址。添加好在设备列表就会如下图显示,一个是公网地址,一个是内网地址。
第三步;将新增加的遥测量添加到虚拟设备(vp-摄像头xx)的遥测中,上图中新增加的遥测的编号为7,添加的时候需要用到,如下图进行添加。
添加完成之后会如下图所示。
第四步;修改前端播放器中的参数,将服务器的局域网ip填写在文件中,修改的文件地址为
D:\IoTCenter\IoTCenterWeb\publish\wwwroot\ganwei-base-video-system\static\json\player.json