LiveNVR全方位解析:多品牌设备接入与多协议流输出实现安防监控直播集成
- 1、背景概述
- 2、视频流拉转配置指南
-
- 2.1、RTSP规则参考
- 2.2、通道配置步骤
-
- [2.2.1 RTSP及其他流拉转配置](#2.2.1 RTSP及其他流拉转配置)
- [2.2.2 Onvif添加配置](#2.2.2 Onvif添加配置)
- [2.2.3 SDK接入配置](#2.2.3 SDK接入配置)
-
- [2.2.3.1 海康SDK接入](#2.2.3.1 海康SDK接入)
- [2.2.3.2 大华SDK接入](#2.2.3.2 大华SDK接入)
- [2.2.3.3 宇视SDK接入](#2.2.3.3 宇视SDK接入)
- [2.2.3.4 天地伟业SDK接入](#2.2.3.4 天地伟业SDK接入)
- [2.2.4 视频文件拉转配置](#2.2.4 视频文件拉转配置)
- [2.2.5 海康ISUP接入](#2.2.5 海康ISUP接入)
-
- [2.2.5.1 海康ISUP接入配置](#2.2.5.1 海康ISUP接入配置)
- [2.2.5.2 海康设备接入](#2.2.5.2 海康设备接入)
-
- [2.2.5.2.1 海康EHOME接入配置示例](#2.2.5.2.1 海康EHOME接入配置示例)
- [2.2.5.2.2 海康ISUP接入配置示例](#2.2.5.2.2 海康ISUP接入配置示例)
- [2.2.5.3 通道配置](#2.2.5.3 通道配置)
-
- [2.2.5.3.1 直播流接入类型选择海康ISUP](#2.2.5.3.1 直播流接入类型选择海康ISUP)
- [2.2.5.3.2 海康ISUP设备ID设置](#2.2.5.3.2 海康ISUP设备ID设置)
- 2.3、通道启用
- 2.4、播放查看
- 3、视频集成方法
- 4、分享页面集成方式
- 5、视频流地址集成方式
-
- 5.1、直播流地址获取(页面查看)
-
- [5.1.1 播放页面查看](#5.1.1 播放页面查看)
- [5.1.2 浏览器跟踪NETWORK](#5.1.2 浏览器跟踪NETWORK)
- 5.2、直播流地址获取(接口调用)
-
- [5.2.1 接口服务地址说明](#5.2.1 接口服务地址说明)
- [5.2.2 获取通道直播链接接口](#5.2.2 获取通道直播链接接口)
- [5.2.3 获取HTTP-FLV播放地址示例](#5.2.3 获取HTTP-FLV播放地址示例)
-
- [5.2.3.1 接口调用示例](#5.2.3.1 接口调用示例)
- [5.2.3.2 接口返回示例](#5.2.3.2 接口返回示例)
- [5.2.4 获取WS-FLV播放地址示例](#5.2.4 获取WS-FLV播放地址示例)
-
- [5.2.4.1 接口调用示例](#5.2.4.1 接口调用示例)
- [5.2.4.2 接口返回示例](#5.2.4.2 接口返回示例)
- [5.2.5 获取WebRTC播放地址示例](#5.2.5 获取WebRTC播放地址示例)
-
- [5.2.5.1 接口调用示例](#5.2.5.1 接口调用示例)
- [5.2.5.2 接口返回示例](#5.2.5.2 接口返回示例)
- [5.2.6 获取RTMP播放地址示例](#5.2.6 获取RTMP播放地址示例)
-
- [5.2.6.1 接口调用示例](#5.2.6.1 接口调用示例)
- [5.2.6.2 接口返回示例](#5.2.6.2 接口返回示例)
- [5.2.7 获取HLS播放地址示例](#5.2.7 获取HLS播放地址示例)
-
- [5.2.7.1 接口调用示例](#5.2.7.1 接口调用示例)
- [5.2.7.2 接口返回示例](#5.2.7.2 接口返回示例)
- [5.2.8 RTSP相关](#5.2.8 RTSP相关)
-
- [5.2.8.1 开启RTSP](#5.2.8.1 开启RTSP)
- [5.2.8.2 配置RTSP流用户密码](#5.2.8.2 配置RTSP流用户密码)
- [5.2.8.3 获取RTSP播放地址示例](#5.2.8.3 获取RTSP播放地址示例)
-
- [5.2.8.3.1 接口调用示例](#5.2.8.3.1 接口调用示例)
- [5.2.8.3.2 接口返回示例](#5.2.8.3.2 接口返回示例)
- 5.3、直播流地址获取(静态拼接)
-
- [5.3.1 HTTP端口直播流地址格式](#5.3.1 HTTP端口直播流地址格式)
- [5.3.2 HTTPS端口直播流地址格式](#5.3.2 HTTPS端口直播流地址格式)
- [5.3.3 关闭静态流地址播放](#5.3.3 关闭静态流地址播放)
- 6、接口调用常见问题
-
- [6.1 接口调用示例](#6.1 接口调用示例)
- [6.2 401 Unauthorized问题](#6.2 401 Unauthorized问题)
- [6.3 输出GB28181方法](#6.3 输出GB28181方法)
- 7、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务说明
1、背景概述
在小区、厂区等监控场景中,常面临摄像头接入、Web无插件播放、云台控制及视频集中存储等需求。若仅能获取RTSP等直播流地址,如何高效解决这些问题?
LiveNVR Onvif/RTSP流媒体流媒体服务提供了完善解决方案,支持RTSP等多种流接入、Onvif协议接入,可输出RTMP/HLS/HTTP-FLV/WS-FLV/RTSP/GB28181等多种格式流,实现传统安防设备互联化与无插件直播。同时,能对接入的高清网络摄像机RTSP流及RTMP、HTTP-FLV、M3U8等直播流进行互联网分发,支持GB28181注册级联至第三方国标平台,并具备实时云端存储、录像计划、检索及时移回放功能。
2、视频流拉转配置指南
2.1、RTSP规则参考
2.2、通道配置步骤
进入通道配置页,选择对应通道右上角的设置按钮即可进行配置,具体配置接入详情。

2.2.1 RTSP及其他流拉转配置
支持配置拉转RTSP直播流及其他类型直播流。


2.2.2 Onvif添加配置
通过Onvif可实现摄像头直播及云台控制的添加,查看Onvif发现、探测及添加的具体操作。

2.2.3 SDK接入配置
2.2.3.1 海康SDK接入
详情参考:海康摄像头通过海康SDK接入,支持回看倍速播放设备存储录像
2.2.3.2 大华SDK接入

2.2.3.3 宇视SDK接入

2.2.3.4 天地伟业SDK接入

2.2.4 视频文件拉转配置

2.2.5 海康ISUP接入
2.2.5.1 海康ISUP接入配置
在LiveNVR基础配置的"海康ISUP接入配置"中,需填写以下信息:
- 服务IP(设备可访问的IP)
- 接入端口(需开放TCP端口)
- 报警端口(需开放UDP/TCP端口,不填则不接收报警)
- 收流端口区间(需开放8000、8001、8002这三个UDP/TCP端口)
- 接入密码(ISUP接入时需使用)

2.2.5.2 海康设备接入
2.2.5.2.1 海康EHOME接入配置示例
填写上述"海康ISUP接入配置"中的相关信息及自定义且不重复的设备ID。

2.2.5.2.2 海康ISUP接入配置示例
除填写"海康ISUP接入配置"的相关信息和自定义不重复的设备ID外,还需填写上述配置的"接入密码"。

2.2.5.3 通道配置
2.2.5.3.1 直播流接入类型选择海康ISUP

2.2.5.3.2 海康ISUP设备ID设置
- 已注册的海康设备,可下拉选择;
- 未注册设备,可先填写分配的ID,设备注册后自动上线。

2.3、通道启用
勾选"是否启用",点击【确定】即可启用通道。

2.4、播放查看
在视频广场找到对应通道,点击即可播放。

3、视频集成方法
- 分享页面集成:将包含播放器的页面通过iframe等方式集成到业务系统。
- 视频流地址集成 :通过接口等方式获取视频流地址,应用到web、APP、PC等播放器,可使用LivePlayer.js H5播放器。
4、分享页面集成方式
为便于在网页中集成播放功能,提供了可通过HTML iframe集成的分享页,详见,地址格式如下:
http://ip:port/play.html?channel=xx
dart
<!-- 直播 -->
<iframe src="http://ip:port/play.html?channel=1&aspect=fullscreen" allowfullscreen allow="autoplay; fullscreen"></iframe>
URL参数说明:
- channel:通道号
- aspect:设置视频播放区域宽高比(如640x360),aspect=fullscreen时整页显示播放器,可选
- share:是否显示分享,可选值yes/no,默认yes
- fluent:是否流畅模式播放,可选值yes/no,默认yes
- autoplay:是否自动播放,可选值yes/no,默认yes
- controls:是否显示播放器控制栏,可选值yes/no,默认yes
- stretch:是否拉伸显示,可选值yes/no,默认no
- muted:是否静音,可选值yes/no,默认yes
- protocol:播放流格式,可选rtmp/hls/flv/ws_flv,默认自动检测
5、视频流地址集成方式
5.1、直播流地址获取(页面查看)
5.1.1 播放页面查看
在视频广场点击需播放的通道,可直接查看流地址。

5.1.2 浏览器跟踪NETWORK
在视频广场点击播放后,打开浏览器开发者模式(F12),在Network中可跟踪到**/api/v1/getchannelstream**接口的调用及结果。

5.2、直播流地址获取(接口调用)
5.2.1 接口服务地址说明
示例地址为http://192.168.2.135:10800,实际使用时需更换为自身部署的LiveNVR的IP及端口。
5.2.2 获取通道直播链接接口

5.2.3 获取HTTP-FLV播放地址示例
5.2.3.1 接口调用示例
http://192.168.2.135:10800/api/v1/getchannelstream?channel=1\&protocol=flv
5.2.3.2 接口返回示例
URL字段需拼接服务的IP和端口使用。
json
{
"LiveQing": {
"Header": {
"CSeq": "1",
"Version": "v1",
"MessageType": "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
"ErrorNum": "200",
"ErrorString": "Success OK"
},
"Body": {
"AudioEnable": false,
"ChannelName": "拉取 FLV",
"DeviceType": "FLV",
"NumOutputs": 0,
"OSD": "拉取 FLV",
"Ondemand": true,
"Recording": false,
"SnapURL": "/snap/channel_1.jpg?t=1615518655678277862",
"SourceAudioCodecName": "aac",
"SourceAudioSampleRate": 8000,
"SourceVideoCodecName": "h264",
"SourceVideoFrameRate": 25,
"SourceVideoHeight": 576,
"SourceVideoWidth": 704,
"URL": "/flv/hls/stream_1.flv"
}
}
}
5.2.4 获取WS-FLV播放地址示例
5.2.4.1 接口调用示例
http://192.168.2.135:10800/api/v1/getchannelstream?channel=1\&protocol=ws-flv
5.2.4.2 接口返回示例
直接使用返回的URL字段。
json
{
"LiveQing": {
"Header": {
"CSeq": "1",
"Version": "v1",
"MessageType": "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
"ErrorNum": "200",
"ErrorString": "Success OK"
},
"Body": {
"AudioEnable": false,
"ChannelName": "拉取 FLV",
"DeviceType": "FLV",
"NumOutputs": 1,
"OSD": "拉取 FLV",
"Ondemand": true,
"Recording": false,
"SnapURL": "/snap/channel_1.jpg?t=1615519865764505509",
"SourceAudioCodecName": "aac",
"SourceAudioSampleRate": 8000,
"SourceVideoCodecName": "h264",
"SourceVideoFrameRate": 25,
"SourceVideoHeight": 576,
"SourceVideoWidth": 704,
"URL": "ws://192.168.2.135:10800/ws-flv/hls/stream_1.flv"
}
}
}
5.2.5 获取WebRTC播放地址示例
5.2.5.1 接口调用示例
http://192.168.2.135:10800/api/v1/getchannelstream?channel=1\&protocol=webrtc
5.2.5.2 接口返回示例
直接使用返回的URL字段。
json
{
"LiveQing": {
"Header": {
"CSeq": "1",
"Version": "v1",
"MessageType": "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
"ErrorNum": "200",
"ErrorString": "Success OK"
},
"Body": {
"AudioEnable": false,
"ChannelName": "拉取 FLV",
"DeviceType": "FLV",
"NumOutputs": 1,
"OSD": "拉取 FLV",
"Ondemand": true,
"Recording": false,
"SnapURL": "/snap/channel_1.jpg?t=1615519865764505509",
"SourceAudioCodecName": "aac",
"SourceAudioSampleRate": 8000,
"SourceVideoCodecName": "h264",
"SourceVideoFrameRate": 25,
"SourceVideoHeight": 576,
"SourceVideoWidth": 704,
"URL": "webrtc://192.168.2.135:10800/rtc/stream_1"
}
}
}
5.2.6 获取RTMP播放地址示例
5.2.6.1 接口调用示例
http://192.168.2.135:10800/api/v1/getchannelstream?channel=1\&protocol=rtmp
5.2.6.2 接口返回示例
服务需开启对应的RTMP TCP端口,直接使用返回的URL字段。
json
{
"LiveQing": {
"Header": {
"CSeq": "1",
"Version": "v1",
"MessageType": "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
"ErrorNum": "200",
"ErrorString": "Success OK"
},
"Body": {
"AudioEnable": false,
"ChannelName": "拉取 FLV",
"DeviceType": "FLV",
"NumOutputs": 1,
"OSD": "拉取 FLV",
"Ondemand": true,
"Recording": false,
"SnapURL": "/snap/channel_1.jpg?t=1615519865764505509",
"SourceAudioCodecName": "aac",
"SourceAudioSampleRate": 8000,
"SourceVideoCodecName": "h264",
"SourceVideoFrameRate": 25,
"SourceVideoHeight": 576,
"SourceVideoWidth": 704,
"URL": "rtmp://192.168.2.135:10935/hls/stream_1"
}
}
}
5.2.7 获取HLS播放地址示例
5.2.7.1 接口调用示例
http://192.168.2.135:10800/api/v1/getchannelstream?channel=1\&protocol=hls
5.2.7.2 接口返回示例
URL字段需拼接服务的IP和端口使用。
json
{
"LiveQing": {
"Header": {
"CSeq": "1",
"Version": "v1",
"MessageType": "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
"ErrorNum": "200",
"ErrorString": "Success OK"
},
"Body": {
"AudioEnable": false,
"ChannelName": "拉取 FLV",
"DeviceType": "FLV",
"NumOutputs": 1,
"OSD": "拉取 FLV",
"Ondemand": true,
"Recording": false,
"SnapURL": "/snap/channel_1.jpg?t=1615519865764505509",
"SourceAudioCodecName": "aac",
"SourceAudioSampleRate": 8000,
"SourceVideoCodecName": "h264",
"SourceVideoFrameRate": 25,
"SourceVideoHeight": 576,
"SourceVideoWidth": 704,
"URL": "/hls/stream_1/stream_1_live.m3u8"
}
}
}
5.2.8 RTSP相关
5.2.8.1 开启RTSP
RTSP输出默认关闭,需在基础配置界面配置RTSP端口(默认554),并在服务器上开放该TCP端口

5.2.8.2 配置RTSP流用户密码
在livenvr.ini的[rtsp]节点下添加配置(testname和testpass替换为自定义信息),重启LiveNVR后生效。配置后,播放RTSP流地址需包含用户名密码,格式如下:
rtsp://用户名:密码@192.168.2.135:554/stream_3
ini
...
[rtsp]
username=testname
password=testpass
...
5.2.8.3 获取RTSP播放地址示例
5.2.8.3.1 接口调用示例
http://192.168.2.135:10800/api/v1/getchannelstream?channel=1\&protocol=rtsp
5.2.8.3.2 接口返回示例
直接使用返回的URL字段。
json
{
"LiveQing": {
"Header": {
"CSeq": "1",
"Version": "v1",
"MessageType": "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
"ErrorNum": "200",
"ErrorString": "Success OK"
},
"Body": {
"AudioEnable": false,
"ChannelName": "拉取 FLV",
"DeviceType": "FLV",
"NumOutputs": 1,
"OSD": "拉取 FLV",
"Ondemand": true,
"Recording": false,
"SnapURL": "/snap/channel_1.jpg?t=1615519865764505509",
"SourceAudioCodecName": "aac",
"SourceAudioSampleRate": 8000,
"SourceVideoCodecName": "h264",
"SourceVideoFrameRate": 25,
"SourceVideoHeight": 576,
"SourceVideoWidth": 704,
"URL": "rtsp://192.168.2.135:554/stream_3"
}
}
}
5.3、直播流地址获取(静态拼接)
LiveNVR支持通过流地址直接启动通道拉流,无需调用开始直播,配置规则如下:
5.3.1 HTTP端口直播流地址格式
- WEBRTC: webrtc://{ip}:{port}/rtc/stream_{通道号}
- FLV: http://{ip}:{port}/flv/hls/stream_{通道号}.flv
- WS_FLV: ws://{ip}:{port}/ws-flv/hls/stream_{通道号}.flv
- HLS: http://{ip}:{port}/hls/stream_{通道号}/stream_{通道号}_live.m3u8
- RTMP: rtmp://{ip}:{port}/hls/stream_{通道号}
- RTSP: rtsp://{ip}:{port}/stream_{通道号}
5.3.2 HTTPS端口直播流地址格式
- WEBRTC: webrtc://{ip}:{port}/rtc/stream_{通道号}
- FLV: http://{ip}:{port}/flv/hls/stream_{通道号}.flv
- WS_FLV: ws://{ip}:{port}/ws-flv/hls/stream_{通道号}.flv
- HLS: http://{ip}:{port}/hls/stream_{通道号}/stream_{通道号}_live.m3u8
- RTMP: rtmp://{ip}:{port}/hls/stream_{通道号}
- RTSP: rtsp://{ip}:{port}/stream_{通道号}
5.3.3 关闭静态流地址播放
在livenvr.ini的[base_config]节点下设置allow_stream_start_by_url=0(默认开启),重启LiveNVR服务生效。
ini
[base_config]
allow_stream_start_by_url=0
6、接口调用常见问题
6.1 接口调用示例
LiveNVR二次开发接口jquery调用示例:解决JS|axios调用接口跨域问题
6.2 401 Unauthorized问题
播放流鉴权或接口调用报401 Unauthorized的解决方法
6.3 输出GB28181方法
LiveNVR输出GB28181级联至海康、宇视、大华等第三方国标平台及政务公安内网视频平台的方法