LiveNVR监控流媒体Onvif/RTSP功能-海康大宇视天地伟业SDK接入拉转直播流文件ISUP接入转换成视频直播流地址输出RTSP/WebRTC/RTMP/HLS/HTTP-FLV/WS-FLV

LiveNVR功能-海康大宇视天地伟业SDK接入拉转直播流文件ISUP接入转换成视频直播流地址输出RTSP/WebRTC/RTMP/HLS/HTTP-FLV/WS-FLV

1、背景说明

某些场景下(小区监控、厂区监控等),我们需要接入摄像头,但手头上只能获取到摄像头直播流地址,如RTSP流地址。我们可能需要将视频流发布web页面,可以用浏览器快速无插件的浏览观看。我们可能需要云台操作摄像头。我们可能需要将视频监控的视频流做集中的存储录制。此时我们可以用什么来解决,安防监控摄像头设备的接入呢?

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端口需要开放)
  • 接入密码(ISUP接入时要填此密码)

在这里插入图片描述

2.2.5.2、海康设备接入
2.2.5.2.1、海康EHOME接入配置示例

填写上 1、海康 ISUP 接入配置 中配置的相关信息,设备ID(自定义不要重复

在这里插入图片描述

2.2.5.2.2、海康ISUP接入配置示例

填写上 1、海康 ISUP 接入配置 中配置的相关信息,设备ID(自定义不要重复),ISUP多了个密钥填写,就是上面配置的接入密码

在这里插入图片描述

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

<!-- 直播 -->
<iframe src="http://ip:port/play.html?channel=1&aspect=fullscreen" allowfullscreen allow="autoplay; fullscreen"></iframe>

其中 URL 参数:

  • channel 通道号

  • aspect 配置只显示视频播放区域, 同时指定宽高比, 可选, wxh, 例如 640x360, 即16:9, 当 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, 默认 auto check

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 是示例的ip及端口,更换成自己部署的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和端口

{
    "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字段

{
    "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字段

{
    "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、接口返回示例

获取接口返回的,URL字段,服务需要开启对应的rtmp端口 TCP

{
    "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和端口

{
    "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

...
[rtsp]
username=testname
password=testpass
...
5.2.8.2、获取RTSP播放地址示例
5.2.8.2.1、接口调用示例

http://192.168.2.135:10800/api/v1/getchannelstream?channel=1&protocol=rtsp

5.2.8.2.2、接口返回示例

获取接口返回的,URL字段

{
    "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服务

[base_config]
allow_stream_start_by_url=0 

6、接口调用相关问题

6.1、接口调用示例

LiveNVROnvif|RTSP流媒体服务中二次开发接口jquery调用示例

6.2、401 Unauthorized

播放或是调用接口报401 Unauthorized如何播放调用?

6.3、如何输出GB28181

LiveNVR如何输出GB28181级联至海康宇视大华等第三方国标平台政务公安内网视频平台?

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

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. Udp通信 使用Java进行Udp通信,需要使用Java提供的DatagramSocket和DatagramPacket类。DatagramSocket类表示Udp套接字,用于发送和接收数据报。DatagramPacket类表示一个Udp数据包,其中包含了数据和目标地址等信息。 在发送数据时,需要创建一个DatagramPacket对象,并将数据和目标地址封装到该对象中。然后使用DatagramSocket的send()方法发送该数据包。 在接收数据时,需要创建一个DatagramPacket对象,并使用DatagramSocket的receive()方法接收数据包。接收到的数据也会被封装到该对象中。 2. RTP RTP是实时传输协议,用于实现音视频的实时传输。在使用RTP时,需要使用RTP协议栈,可以使用开源的JMF(Java Media Framework)或FFmpeg等库来实现。 使用RTP时,需要定义一个RTP数据包格式,该格式包括了RTP头和负载数据。RTP头包括了序列号、时间戳、源地址等信息,用于保证数据的顺序和时序性。 在发送数据时,需要将数据按照RTP数据包格式进行封装,并使用Udp进行传输。在接收数据时,需要解析RTP数据包,并将负载数据提取出来进行处理。 3. RTSP RTSP是实时传输协议,用于控制音视频的传输。在使用RTSP时,需要使用RTSP协议栈,可以使用开源的Netty等库来实现。 使用RTSP时,需要定义一个RTSP请求和响应格式,包括了请求方法、URI、协议版本等信息。在发送数据时,需要构造一个RTSP请求,并使用Tcp进行传输。在接收数据时,需要解析RTSP响应,并根据响应进行处理。 4. ONVIF ONVIF是开放网络视频接口论坛的标准,用于实现网络摄像头的互联互通。在使用ONVIF时,需要使用ONVIF协议栈,可以使用开源的ONVIF Device Manager等库来实现。 使用ONVIF时,需要定义一个ONVIF请求和响应格式,包括了命名空间、方法名、请求体等信息。在发送数据时,需要构造一个ONVIF请求,并使用Http进行传输。在接收数据时,需要解析ONVIF响应,并根据响应进行处理。 5. H264/H265 H264/H265是视频压缩标准,用于将原始视频数据进行压缩,以减小数据量。在使用H264/H265时,需要使用H264/H265编码库,可以使用开源的x264等库来实现。 使用H264/H265时,需要将原始视频数据进行编码,并按照H264/H265码格式进行封装。在接收数据时,需要解析H264/H265码,并将编码数据解码为原始视频数据进行处理。 6. 图片或视频输入处理输出 在输入图片或视频时,需要使用Java提供的图像和视频处理库,可以使用开源的JavaCV等库来实现。在输出H264/H265码时,需要使用Udp进行传输,可以使用Java提供的DatagramSocket和DatagramPacket类来实现。 在处理视频时,可以将视频分为一帧一帧的图像进行处理,对于每一帧图像,可以进行图像增强、滤波、裁剪等处理。然后将处理后的图像进行H264/H265编码,并按照码格式进行封装。最后使用Udp进行传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值