引言

全民直播时代已经到来。现在的直播必然需要支持手机直播,如果能够嵌入到全面宠儿微信中,那就能深度民心了。从技术上而言,微信直播,自然需要使用H5页面。目前手机浏览器不支持RTSP、RTMP,想要在手机微信上直播那就需要HLS视频流。

如果能够将小区、工程、学校、园区、街道等等某个区域内的所有监控摄像头实现网络直播,支持PC、手机同时随时随地观看,就实现了将传统监控行业转成网络直播。这里引入LiveQing团队开发的LiveNVR。

直播页面自定义开发##

LiveNVR默认的直播、配置页面基本可以满足大部分客户的基本需求。对于部分用户可能需要更改页面展示,增加其他业务功能等需要,可以基于LiveNVR接口文档提供的RESTful接口进行自定义开发。LiveNVR默认的展示页面也是基于这些接口做的开发,当然也可以作为Demo供开发人员开发自定义页面时参考。

接口列表

1. 登录LiveNVR

  • 接口: /api/v1/login?username=xxx&password=xxx
  • 参数
名称 解释 含义
Username 登陆用户名 -
Password 登陆密码 经过MD5加密的字符
  • 返回: 200 OK or 401 Unauthorized

      {
    "LiveQing" : {
    "Body" : {
    "Token" : "a19cb5f6e7d2449d8d24c8a0fc554ca7"
    },
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_LOGIN_ACK",
    "Version" : "1.0"
    }
    }
    }
  • 操作: 登录,登陆后会返回token,以后调用接口需要在cookie中携带token信息“token=a19cb5f6e7d2449d8d24c8a0fc554ca7”

2. 注销登陆

  • 接口: /api/v1/logout

  • 返回: 200 OK 401 Unauthorized

      {
    "LiveQing" : {
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_LOGOUT_ACK",
    "Version" : "1.0"
    }
    }
    }
  • 操作: 再次请求接口需要重新登陆

3. 修改密码

  • 接口: /api/v1/modifypassword?oldpassword=xxx&newpassword=xxx

  • 参数

名称 含义 备注
Oldpassword 旧密码 经过MD5加密的字符
Newpassword 新密码 经过MD5加密的字符
  • 返回: 200 OK or 401

      {
    "LiveQing" : {
    "Body" : {
    "Token" : "8b65982a99664d19bcccc35ff8d2acaf"
    },
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_MODIFY_PASSWORD_ACK",
    "Version" : "1.0"
    }
    }
    }
  • 操作: 修改密码成功会返回新的token

4. 获取LiveNVR服务信息

  • 接口:/api/v1/getserverinfo
  • 返回
名称 含义 备注
Server 服务器软件版本信息 -
RunningTime 服务器累计运行时长信息 -
Hardware 服务器硬件版本信息 -
InterfaceVersion 接口服务版本信息 -
{
"LiveQing" : {
"Body" : {
"Hardware" : "x86",
"InterfaceVersion" : "v1",
"RunningTime" : "30 Days 0 Hours 1 Mins 40 Secs",
"Server" : "EasyNVR/1.1 (Build/16.1020; Platform/Win32; State/Development; )"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_INFO_ACK",
"Version" : "1.0"
}
}
}
  • 操作: 显示

5. 【视频广场】显示所有在线通道预览

  • 接口:/api/v1/getchannels
  • 返回:
    1. 所有设备列表信息,在线&不在线 通道(包含快照信息)
    2. 通道名称、通道号、通道快照、通道是否在线
名称 含义 备注
Channel 通道号 通道号
Name 通道名称 通道名称
Online 是否在线 1在线/0离线
SnapURL 快照地址 返回为快照的相对网络地址
	{
"LiveQing" : {
"Body" : {
"ChannelCount" : "2",
"Channels" : [
{
"Channel" : 1,
"Name" : "channel1",
"Online" : 1,
"SnapURL" : "/snap/1/2016-10-24/20161024125212.jpg"
},
{
"Channel" : 2,
"Name" : "channel2",
"Online" : 0,
"SnapURL" : ""
}
]
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_GET_CHANNELS_ACK",
"Version" : "1.0"
}
}
}
  • 操作: H5列表显示

6. 播放单个通道直播

  • 接口:/api/v1/getchannelstream?channel=1&protocol=RTMP
  • 参数
名称 含义 备注
Channel 通道号 -
Protocol 获取直播的协议 RTMP/HLS
  • 返回: 直播流地址URL

      {
    "LiveQing" : {
    "Body" : {
    "ChannelName" : "通道名"
    "URL" : "rtmp://{host}:10035/hls/stream_1"
    },
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_GET_CHANNEL_STREAM_ACK",
    "Version" : "1.0"
    }
    }
    }

注:返回的URL中带有{host}占位符,{host}即为api接口请求中的IP字段,如果返回的URL为hls地址,那么直接为/hls/stream_1.m3u8地址,需要前端自动拼接成EasyNVR HTTP播放地址,比如EasyNVR的web访问地址为:http://192.168.66.189:10080/,那么返回的hls应该拼接为http://192.168.66.189:10080/hls/stream_1.m3u8,rtmp地址应该拼接为:rtmp://192.168.66.189:10035/hls/stream_1;

  • 操作:调用播放器进行播放

7. 视频播放心跳

  • 接口: /api/v1/touchchannelstream?channel=1&line=local&protocol=rtmp

  • 参数: 同接口6

  • 返回: 直播流地址

      {
    "LiveQing" : {
    "Body" : {
    "ChannelName" : "通道名"
    "URL" : "rtmp://{host}:10035/hls/stream_1"
    },
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_TOUCH_CHANNEL_STREAM_ACK",
    "Version" : "1.0"
    }
    }
    }
  • 操作:播放视频心跳,60秒内发送一次,否则自动停止推流

8. 获取LiveNVR基本配置信息

  • 接口: /api/v1/getbaseconfig
  • 返回: 基础配置信息表
名称 解释 备注
ServiceLanPort EasyNVR服务监听端口 ReadOnly
ServiceLanIP EasyNVR服务本地地址 ReadOnly
ServiceWanIP EasyNVR服务公网端口 暂时不启作用
ServiceWanPort EasyNVR服务公网地址 暂时不启作用
ChannelSnapInterval 通道快照间隔 单位为分钟
NginxRTMPPort EasyNVR配套的rtmp服务器端口 默认10035
	{
"LiveQing" : {
"Body" : {
"ChannelSnapInterval" : "120",
"NginxRTMPPort" : "10035",
"ServiceLanIP" : "192.168.66.222; 127.0.0.1; ",
"ServiceLanPort" : "10010",
"ServiceWanIP" : "none-config",
"ServiceWanPort" : "10010"
},
"Header" : {
"CSeq" : "1",
"ErrorNum" : "200",
"ErrorString" : "Success OK",
"MessageType" : "MSG_SC_SERVER_BASE_CONFIG_ACK",
"Version" : "v1"
}
}
}
  • 操作:显示

9. 设置LiveNVR基本配置信息

  • 接口: /api/v1/setbaseconfig?ChannelSnapInterval=120&NginxRTMPPort=10035&ServiceLanPort=10010&ServiceWanIP="none-config"&ServiceWanPort=10010

  • 参数:

  • 返回: 200 OK

      {
    "LiveQing" : {
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_SET_BASE_CONFIG_ACK",
    "Version" : "1.0"
    }
    }
    }
  • 操作:显示配置成功,重启后生效

10. 发现Onvif设备

  • 接口: /api/v1/discoverdevices

  • 返回: 200 OK

      {
    "LiveQing" : {
    "Body" : {
    "ChannelCount" : "1",
    "Channels" : [
    {
    "IP" : "192.168.66.222",
    "Onvif" : "/onvif/devices",
    "Port" : 8080
    }
    ]
    },
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_DISCOVER_DEVICES_ACK",
    "Version" : "1.0"
    }
    }
    }

11. 探测设备信息

  • 接口: /api/v1/probedevice?ip=192.168.66.222&username=admin&password=admin

  • 参数:

名称 含义 备注
Username 登陆用户名 设备用户名
Password 登陆密码 设备密码(明文)

返回:

 200 OK

{

"LiveQing" : {

"Body" : {

"IP" : "192.168.66.222",

"Onvif" : "/onvif/devices",

"Password" : "admin",

"Port" : "8080",

"Rtsp" : "rtsp://192.168.66.222:554/11",

"UserName" : "admin"

},

"Header" : {

"CSeq" : "1",

"ErrorNum" : "200",

"ErrorString" : "Success OK",

"MessageType" : "MSG_SC_SERVER_PROBE_DEVICE_ACK",

"Version" : "1.0"

}

}

}

12. Onvif云台控制

  • 接口:/api/v1/ptzcontrol?channel=1&actiontype=continuous&command=down&speed=5&protocol=onvif
  • 参数:
名称 含义 备注
channel 通道ID 例:1
actiontype 动作类型 continuous或者single
command 动作命令 stop停止、up向上移动、down向下移动、left向左移动、right向右移动、zoomin、zoomout、focusin、focusout、aperturein、apertureout
speed 动作速度 例如:5
protocol 摄像机接入的协议 暂时仅支持ONVIF接入的摄像机
reserve 保留 暂未使用

只有Onvif类型接入的设备才能支持云台控制功能,同时,设备必须有云台,他才会转动;

13. 单个通道配置

  • 接口: /api/v1/setchannelconfig?Cdn=&Channel=2&Enable=0&IP=192.168.66.22&Name=channel2&Onvif=”/device/service”&Password=admin&Port=8080&Protocol=RTSP&Rtsp=”rtsp//192.168.66.22/22”&UserName=admin&OnDemand=1&Audio=1

  • 参数

名称 含义 备注
Channel 设置的通道号 例如:1
Enable 通道是否启用 1启用、0禁用
IP 摄像机IP地址 例如:192.168.66.222
Name 摄像机名称 例如:测试通道
Port 摄像端口 例如:554、8080
Protocol 摄像机接入的协议 ONVIF、RTSP
Username 摄像机登陆用户名 例如:admin
Password 摄像机登陆密码 例如:admin
RTSP 摄像机的RTSP地址 例如:rtsp://192.168.66.222/11
ONVIF 摄像机的Onvif地址 /onvif/devices
Cdn 推送的CDN地址 rtmp://rtmp.aliyun.com/live/209?sign=faefabe&tm=20161005190329
OnDemand 是否按需直播 1启用、0不启用
Audio 是否启用音频输入 1启用、0不启用
  • 返回: 200 OK

      {
    "LiveQing" : {
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_SET_CHANNEL_CONFIG_ACK",
    "Version" : "1.0"
    }
    }
    }
  • 操作:显示配置成功,即时生效!

14. 获取LiveNVR所有通道信息

  • 接口: /api/v1/getchannelsconfig

  • 返回: 通道列表数组信息

      {
    "LiveQing" : {
    "Body" : {
    "ChannelCount" : "16",
    "Channels" : [
    {
    "Cdn" : "",
    "Channel" : 1,
    "Enable" : 1,
    "IP" : "192.168.66.222",
    "Name" : "channel1",
    "OnDemand" : 1,
    "Online" : 1,
    "Onvif" : "/onvif/devices",
    "Password" : "admin",
    "Port" : 8080,
    "Protocol" : "RTSP",
    "Rtsp" : "rtsp://192.168.66.222/11",
    "UserName" : "admin",
    "Audio" : 1
    },
    {
    "Cdn" : "",
    "Channel" : 2,
    "Enable" : 0,
    "IP" : "192.168.66.22",
    "Name" : "channel2",
    "OnDemand" : 1,
    "Online" : 0,
    "Onvif" : "/onvif/devices",
    "Password" : "admin",
    "Port" : 8080,
    "Protocol" : "RTSP",
    "Rtsp" : "rtsp://192.168.66.22/22",
    "UserName" : "admin",
    "Audio" : 1
    },
    ……
    ]
    },
    "Header" : {
    "CSeq" : "1",
    "ErrorNum" : "200",
    "ErrorString" : "Success OK",
    "MessageType" : "MSG_SC_SERVER_GET_CHANNELS_CONFIG_ACK",
    "Version" : "1.0"
    }
    }
    }
  • 操作:显示,单个通道可禁用/启用/修改配置

17. 重启接口

  • 接口: /api/v1/restart
  • 返回: 200 OK
  • 操作: 显示成功

RTSP、GB28181监控摄像头实现WEB、微信直播的服务的更多相关文章

  1. 【miscellaneous】海康威视监控摄像头实现web端无插件监控实拍效果

    [rtsp]海康威视监控摄像头实现web端无插件监控实拍效果 详细介绍参见:http://live.cuplayer.com/RtspCameraLive.html web端无须装插件(支持PC,安卓 ...

  2. 基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控

    前言 随着互联网的发展,尤其是移动互联网,基于H5.微信的应用越来越多,企业也更多地想基于H5.微信公众号来快速开发和运营自己的产品,那么传统的安防IPC所输出的各种RTSP.GB28181.SDK视 ...

  3. 网页直播、微信直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的easynvr

    近期遇到好多客户咨询关于实现微信直播.或者是将直播页面集成进入自己项目中. 该方案的主要目的:完成在公网一直进行内网摄像头的RTMP/HLS直播! 实现方案的具体实现: EasyNVR+EasyDSS ...

  4. rtsp转rtmp、hls网页直播服务器EasyNVR前端兼容性调试:ie下的 pointer-events- none

    发现问题: 之前在做EasyNVR 的web页面开发过程中,力求的都是一个播放效果的.功能的展示.对于兼容性也有注意,但有些细节还是难免有所疏忽. 内部测试发现:由于我们是流媒体的实时视频直播,在we ...

  5. 一种微信直播H5直播与存储回放的HLS摄像机方案

    接上篇 在上一篇博客<一种流量成本节省60%以上的手机直播微信直播H5直播幼儿园直播方案>中,我们一共介绍了两种省钱的HLS直播途径: 方案一:编码器或者内网推流直接对接云存储的场景 如果 ...

  6. EasyNVR+EasyDSS实现简单套路的RTMP、微信直播、录像、回放方案

    安防领域HLS直播问题探讨 近期外出交流比较多,在之前的一篇博客<一种流量成本节省60%以上的手机直播微信直播H5直播幼儿园直播方案>我们说到了一种模式,就是当我们在做最近火热的幼儿园直播 ...

  7. 实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析

    转自:http://www.cnblogs.com/fengyun99/p/3541249.html 关于XMPP组件的文章,先休息两天,好歹已经完整的写了一份. 这两天,先实现一套关于web微信扫描 ...

  8. 基于Flask 实现Web微信登陆

    网页版微信登陆网址 https://login.wx.qq.com/ 获取微信登陆的二维码 在浏览器中访问登陆接口 https://login.wx.qq.com/ 我们查找二维码的图片可以看到 其中 ...

  9. Web微信模拟

    一.概要 目的:实现一个具有web微信类似功能的项目 框架:Django 模块:render.HttpResponse.BeautifulSoup.re.time.requests.json.rand ...

  10. requests+django+bs4实现一个web微信的功能

    前言: 今天我们利用requests模块+django+bs4浏览器来实现一个web微信的基本功能,主要实现的功能如下 a.实现返回二维码 b.实现手机扫码后二维码变成变成头像 c.实现手机点击登陆成 ...

随机推荐

  1. 使用systemd 监控服务并实现故障自动重启

    一.为什么需要自动重启? 在生产环境中,服务可能因内存溢出.资源竞争.外部依赖中断等问题意外崩溃.手动恢复效率低下,而 systemd 的自动重启机制可在秒级内恢复服务,显著提升系统可用性. ⚙️ 二 ...

  2. Hive与Clickhouse对比

    个人理解,欢迎指正 对比指标 Hive Clickhouse 元数据管理 元数据存MySQL,通过HiveMetaStore管理 每个Shard自己管理 数据存储 HDFS 本地磁盘 架构设计 MR架 ...

  3. 利用VBA批量删除Excel中的中文/英文/数字或者替换中英文符号

    ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 在Excel中经常会遇到去除所有的中文,英文或者数字等情况.但是由于Excel并不支持一次替换所有的中文,英文,数字等,所以有些 ...

  4. 一、webrtc版本接听视频电话-纯js版

    先看效果 用户1--拨打 用户2–接听 前端代码 index.html <!DOCTYPE html> <html lang="en"> <head& ...

  5. vue被部署到子(二级)目录

    需求有的时候,你的域名很珍贵,除了二级域名外.你还可以将你的项目部署在服务器二级目录下,这样的话,就可以部署多个项目了.比如说,我有一个域名为dshvv.com的服务器,我想部署两个项目:12306项 ...

  6. win10 注册

    最近新安装了一台AMD YES 2700. 安装win10的企业版,没有注册,推荐淘宝. 但是我没有使用淘宝.你懂得链接 FREE. 以后赚钱了有机会用正版吧. http://www.tudoupe. ...

  7. FastAPI与GraphQL的完美邂逅:如何打造高效API?

    扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ 1. FastAPI与Graph ...

  8. Python字符串处理技巧全解析

    还在为处理文本数据头疼? 据统计,Python开发者70%的日常编码都在和字符串打交道! 本文详解Python字符串操作核心技巧:- ️ 字符串切片与拼接的隐藏技巧- 文本查找替换的实战方法- 数据清 ...

  9. ICEE-Interface-SATA的数据与电源接口

    **SATA 数据接口(7pins) SATA 电源接口(15pins4Sections: +12V, +5V, +3.3V, GND) ** Sata实物:

  10. AICodeHelper - AI编程助手

    https://aicodehelper.com/ 只能使用英文进行提问,他会用英文回答,但是可以让AI用中文回答