LiveNVR全方位解析:多品牌设备接入与多协议流输出实现安防监控直播集成直播流地址输出

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规则参考

可参考大华、海康、宇视、华为等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级联至海康、宇视、大华等第三方国标平台及政务公安内网视频平台的方法

7、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务说明

相关推荐
Marvin13112 年前
LiveNVR监控流媒体Onvif/RTSP常见问题-如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放
如何对比延时·视频流延时·livenvr视频平台·livenvr转国标·非国标转gb28181