码迷,mamicode.com
首页 > 微信 > 详细

RTSP、GB28181监控摄像头实现WEB、微信直播的服务

时间:2019-06-05 00:12:32      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:视频播放   参考   功能   snap   serve   odi   注销   获取   开发人员   

引言

全民直播时代已经到来。现在的直播必然需要支持手机直播,如果能够嵌入到全面宠儿微信中,那就能深度民心了。从技术上而言,微信直播,自然需要使用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
  • 返回: 基础配置信息表
名称解释备注
ServiceLanPortEasyNVR服务监听端口ReadOnly
ServiceLanIPEasyNVR服务本地地址ReadOnly
ServiceWanIPEasyNVR服务公网端口暂时不启作用
ServiceWanPortEasyNVR服务公网地址暂时不启作用
ChannelSnapInterval通道快照间隔单位为分钟
NginxRTMPPortEasyNVR配套的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
  • 操作: 显示成功

下载地址

https://www.liveqing.com/docs/download/LiveNVR.html

获取更多信息

邮件:support@liveqing.com

技术交流QQ群:947137753

咨询电话:15156896292(同微信)

WEB:www.liveqing.com

RTSP、GB28181监控摄像头实现WEB、微信直播的服务

标签:视频播放   参考   功能   snap   serve   odi   注销   获取   开发人员   

原文地址:https://www.cnblogs.com/kumukim/p/10976925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!