在互联网飞速发展的时代,开发者常会说的一个词就是“跨平台”。自从移动端的用户需求愈来愈大,H5逐渐发展,跨平台彷佛已经成为了软件开发不可或缺的技术。EasyNVR互联网直播系统不管是PC浏览器仍是手机APP、手机浏览器、微信客户端,均可以无缝接入,摒弃浏览器插件这种受限的用户接入方式,轻量、友好地进行所有直播、录像、检索、回放等功能的对接,一套系统,全终端兼容!javascript
在展现界面上,EasyNVR已简洁、轻便、清新的风格深受广大用户的喜欢,同时针对用户在使用过程当中的需求,支持多通道直播,可是当用户有更灵活多变的播放需求以及丰富的样式风格要求时,EasyNVR二次开发接口就发挥其做用了。
css
1.经过接口能够实现用户多变复杂的业务需求,彻底能够按照本身的喜爱定制漂亮的外观,接口文档http://demo.easynvr.com:10800/apidoc/)能够在线参考。html
2.新建文件demo目录结构以下easy-player.swf和easy-player-element.min.js文件能够经过https://www.npmjs.com/package/easy-player)获取,插件有详细使用文档。
3.使用到的接口java
4.调取接口必须带上对应的通道,播放协议可选默认FLV。jquery
5.若是是按需须要30秒调取一次保活接口,否则服务端30秒后会中止向设备端拉取视频流。web
6.index.html内容文件以下chrome
javascript <!DOCTYPE HTML> <html> <head> <title>EasyNVR</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport"> <!-- 引入样式插件 --> <link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> <style> .col-4 { border: 1px #ccc solid; } </style> </head> <body> <!-- 容器标签 --> <div class="container"> <div class="row" id="row"> </div> </div> <!-- 按钮列表 --> <button id="btn1">开始播放</button> <button id="btn3">增长播放窗口</button> <button id="btn2">中止保活</button> </body> <!-- 引入播放器插件 --> <script type="text/javascript" src="easy-player-element.min.js"></script> <!-- 引入jquery插件 --> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> <script> //定义变量来存放软件服务的IP和端口 var httpStr = "http://127.0.0.1:10800" $(document).ready(function () { //定义一个定时器用来保活接口 var time = 0 //当点击开始播放按钮执行保活状态 $("#btn1").click(function () { //经过get请求直播连接接口 //这里我使用的是软件通道3,本地测试使用本机可用的通道。 $.get(httpStr + "/api/v1/getchannelstream?channel=3&protocol=HLS", function (data, status) { //data中有接口返回的详细信息可在控制台查看 console.log(data) //将成功获取的播放地址注入到easy-player标签中 $(".testPlayer").attr("video-url", httpStr + data.EasyDarwin.Body.URL); //开启一个定时器每隔30秒请求一次保活接口方法 time = setInterval(() => { //调取保活接口 touchchannelstream() }, 30 * 1000); }); }); //当点击中止保活按钮执行保活状态中止 $("#btn2").click(function () { //中止定时器 clearInterval(time); }); //当点击增长按钮会向页面插入一个窗口 $("#btn3").click(function () { $("#row").append('<div class="col-4"><easy-player class="testPlayer" live="true" aspect="300:100" show-custom-button="true"></easy-player></div>') }); }); //定义一个保活接口方法 function touchchannelstream() { $.get(httpStr + "/api/v1/touchchannelstream?channel=3&protocol=HLS", function (data, status) { $("#test2").attr("video-url", httpStr + data.EasyDarwin.Body.URL); console.log("保活") }); } </script> </html>
7.启动成功点击增长播放窗口npm
8.窗口增长完成点击开始播放
9.以服务的方式启动 ,在当前文件下打开cmd 输入 hs -obootstrap
hs -o
若是软件有npm
npm install http-server -g 全局安装
若是没有可使用其余服务的方式打开此文件。api
EasyNVR是一款拥有完整、自主、可控知识产权,同时又可以具有软硬一体功能的安防互联网化流媒体服务器,可以经过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具备RTSP、Onvif协议输出的设备接入到EasyNVR,EasyNVR可以将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),而且EasyNVR可以将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发。详情可访问EasyNVR官网:http://www.easynvr.com