前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyNVR网页无插件播放摄像机RTSP流是如何调取接口在Web页实现多窗口同时直播的

EasyNVR网页无插件播放摄像机RTSP流是如何调取接口在Web页实现多窗口同时直播的

作者头像
EasyNVR
发布2020-04-23 15:26:36
1.2K0
发布2020-04-23 15:26:36
举报
文章被收录于专栏:EasyNVR

背景需求

在互联网飞速发展的时代,开发者常会说的一个词就是“跨平台”。自从移动端的用户需求越来越大,H5逐渐发展,跨平台似乎已经成为了软件开发不可或缺的技术。EasyNVR互联网直播系统无论是PC浏览器还是手机APP、手机浏览器、微信客户端,都可以无缝接入,摒弃浏览器插件这种受限的用户接入方式,轻量、友好地进行全部直播、录像、检索、回放等功能的对接,一套系统,全终端兼容!

在展示界面上,EasyNVR已简洁、轻便、清新的风格深受广大用户的喜欢,同时针对用户在使用过程中的需求,支持多通道直播,但是当用户有更灵活多变的播放需求以及丰富的样式风格要求时,EasyNVR二次开发接口就发挥其作用了。

EasyNVR
EasyNVR

解决方案

1.通过接口可以实现用户多变复杂的业务需求,完全可以按照自己的喜好定制漂亮的外观,接口文档http://demo.easynvr.com:10800/apidoc/)可以在线参考。

2.新建文件demo目录结构如下easy-player.swf和easy-player-element.min.js文件可以通过https://www.npmjs.com/package/easy-player)获取,插件有详细使用文档。

EasyNVR
EasyNVR

3.使用到的接口

4.调取接口必须带上对应的通道,播放协议可选默认FLV。

EasyNVR
EasyNVR

5.如果是按需需要30秒调取一次保活接口,不然服务端30秒后会停止向设备端拉取视频流。

EasyNVR
EasyNVR

6.index.html内容文件如下

代码语言:javascript
复制
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.启动成功点击增加播放窗口

EasyNVR
EasyNVR

8.窗口增加完成点击开始播放

EasyNVR
EasyNVR

9.以服务的方式启动 ,在当前文件下打开cmd 输入 hs -o

hs -o 如果软件有npm npm install http-server -g 全局安装 如果没有可以使用其他服务的方式打开此文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景需求
  • 解决方案
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档