我们经常会有一些物联网、作战指挥、工业监控方面的大型项目,需要上大屏展示直播,尤其是多屏展示的功能,传统安防里面,我们一般都是采用的海康、大华、宇视的解码器上大屏的;而现在,越来越多的项目,是基于网页、H5、B/S、Chrome的架构,轻量、友好、无插件、去IE化,那么这个时候,我们往往思维上还是需要像传统安防上大屏一样,做到多屏播放展示,那么在H5里面怎么做到呢,这就是我们今天将要讲解的这个例子:

完成运行效果图:

一、四分屏展示样式布局

1.通过html、css等来进行样式排版

根据需求的四分屏的样式;来合理的划分出四个大块,分别用于放置四个播放器;
以四等分结构为例进行前端的排版;

html样式布局:

   <div class="row col-sm-9 video-show"><div class="col-md-6 window1 video-window" alt="1"></div><div class="col-md-6 window2 video-window" alt="2"></div><div class="col-md-6 window3 video-window" alt="3"></div><div class="col-md-6 window4 video-window" alt="4"></div></div>

CSS样式的定义:

.video-window{float: left;margin-left: 1%;margin-bottom: 1%;width: 48%;height: 0;position: relative;padding-bottom: 25%;background-color: #000;
}

用于合理的四等分四个块的大小及位置;
确定好四个块的位置过后可以;通过初始化videojs来加载出播放器,完成rtmp格式的视频流直播;

二、四分屏播放处理##

1.分别加载不同的videojs来进行视频的直播


问题:

使用videojs来进行视频播放时需要将videojs进行初始化,然后才可以进行视频的播放。

由于进行的是监控或其他实时视频的播放,每一次视频播放的src都不一定是相同的,并且当视频播放窗口占满后,如果我们需要进行播放其他设备推流的视频信息,会出现没有播放窗口可用的情况。

解决:

由于每次使用的src是不同的,并且四个播放窗口也是不同的,可以通过不同的窗口来给对应窗口下进行加载的videojs设置不同的id值,来进行区分不同的videojs;如果加载的videojs没有对应的id来区别他的唯一性,videojs在加载第一次成功后,再次加载会出现videojs的冲突报错;
因此通过给不同的窗口设置不同的“alt”的属性值;当加载对应窗口下面的videojs时,通过对应窗口的“alt”属性来给对应的videojs进行id的赋值;这样不仅可以确定videojs的唯一性,也可以将videojs和所属的窗口一一对应起来,这样只需要将不同的src,在对应的窗口下初始化videojs之前将所要播放的src通过js追加进来。

2.不同窗口对应的视频的播放、关闭等


问题:
如何判断不同窗口中的videojs是否初始化?

解决:

定义一个全局的数组,来进行播放窗口的存储;默认存储的是没有初始化videojs的窗口 1,2,3,4

var windows = [1, 2, 4, 3];

当对应窗口进行videojs初始化的时候,删除windows中对应的值;然后通过判断windows数组中的值;及可判断出当前所有窗口中,那些窗口中存在已经初始化的videojs,那些只是默认的video加载标签窗口;


问题:
如何动态的向没有进行播放的窗口进行视频的添加播放?

解决:
通过全局数组windows中的值可以判断出当前的四个窗口中的video的播放状态;
windows存在的必然是没有进行播放的窗口对应的数字。当有需要视频进行播放,初始化videojs的时候,可以随机或者特定的获取windows中的具体元素。通过获取到的元素来找到相对应的窗口进行视频的播放。


问题:
如何关闭对应窗口的视频播放(不是暂停、停止播放。)?

解决:
可以给对应的窗口一个关闭按钮,当触发关闭按时来进行videojs的关闭;
由于播放的是实时推流的rtmp格式的视频文件;因此在关闭窗口的时候需要将推流的信息也停掉,videojs内置的方法可以关闭视频流。

videojs("video").dispose();

关于EasyNVR

EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;

以上我们所讲述的内容,代码都Github中可以获取:https://github.com/EasyNVR

EasyNVR纯H5摄像机直播解决方案前端解析之:RTSP安防监控实时直播的四分屏的前端展示方案相关推荐

  1. EasyNVR纯H5摄像机直播解决方案前端解析之:RTSP安防监控实时直播的网页H5自动播放方案

    我们很多安防.互联网.直播的应用场景中,在打开一路直播流后,极少看到需要点击播放按钮才能直播 播放视频流的情况,但是由于H5场景的播放需要兼容的浏览器非常多,这样的情况下经常会遇到各种各样的摄像机网页 ...

  2. 解析弱电安防监控管理系统的安装技术重点

    建筑弱电工程与安防系统 在对电力进行应用时,按照电力输送功率的强弱,可以将其分为弱电和强电两类.一般来说,建筑中的弱电主要包括国家规定的安全电压等级.控制电压等低电压电能,如控制电源.应急照明灯备用电 ...

  3. 基于SkeyeVSS二次开发实现自己的安防监控设备网络摄像机、硬盘录像机、国标设备等的WEB无插件直播点播解决方案

    在安防领域,其主要应用场景: 1. 接入设备量大.播放用户量少: 2. 存储录像量大且持久,回放的用户量少: 3. 网络环境复杂,协议兼容性要求高: 我们需要接入多种网络环境下的多种不同协议的设备,例 ...

  4. RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播方案EasyNVR之主要功能模块及相关技术特点与性能指标分析

    EasyNVR安防流媒体服务解决方案,支持RTSP稳定拉流接入,支持Onvif协议接入,支持RTSP/RTMP/HLS/HTTP-FLV分发,将传统安防监控设备互联化,无插件直播等. 功能模块 1.设 ...

  5. SkeyeVSS综合安防监控Onvif、RTSP、GB28181视频云无插件直播点播解决方案之监控视频云端录像无插件回放

    SkeyeVSS综合安防监控Onvif.RTSP.GB28181视频云无插件直播点播解决方案之监控视频云端录像无插件回放 SkeyeVSS通过接入SkeyeRMS录像服务器实现对接入系统的摄像机.NV ...

  6. SkeyeVSS综合安防监控Onvif、RTSP、GB28181安防协议互联网无插件直播点播解决方案

    系统介绍 SkeyeVSS是一个基于Web无插件直播点播的视频云综合监控管理系统: 支持 WEB 页面配置管理; 支持组织机构管理; 支持设备或平台通过GB/T28181协议接入; 支持IPC.NVR ...

  7. 流媒体服务器+终端(android,ios,web),如何从海康平台上拉流接入RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR?...

    背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...

  8. SkeyeVSS综合安防监控Onvif、RTSP、GB28181视频云无插件直播点播解决方案之监控视频实时多屏预览

    SkeyeVSS综合安防监控Onvif.RTSP.GB28181视频云无插件直播点播解决方案之监控视频实时多屏预览 SkeyeVSS支持一分屏.四分屏.九分屏.16分屏.25分屏.36分屏等几种N*N ...

  9. SkeyeVSS综合安防监控Onvif、RTSP、GB28181视频云无插件直播点播解决方案之子系统微服务集群解决方案

    SkeyeVSS综合安防监控Onvif.RTSP.GB28181视频云无插件直播点播解决方案之子系统微服务集群 我们通过SkeyeVSS系列文章<SkeyeVSS集群部署说明文档>可以了解 ...

最新文章

  1. AngularJs前端环境搭建
  2. fatal error LNK1123: 转换到 COFF 期间失败
  3. 【技术综述】人脸风格化核心技术与数据集总结
  4. mysql查看系统运行日志文件_mysql自身运行日志文件详解
  5. 我的世界java版tis,我的世界1.7.10~1.8.8 9tis-3d回到汇编的时代mod
  6. 简介DOTNET 编译原理 简介DOTNET 编译原理 简介DOTNET 编译原理
  7. python封装c接口_用C为python3.1封装mysql接口(一)
  8. python大学什么专业学校_好学校的差专业和一般大学的好专业,该怎么选?我来说真话……...
  9. 龟兔赛跑预测(蓝桥杯)
  10. STM32工作笔记0040---认识MOS管
  11. 《ETL原理及应用》学习笔记 ·001【ETL介绍】
  12. php 调用vs2013 dll文件,vs2015 肿么添加dll文件
  13. JavaWeb播放视频实现断点续传、分片上传
  14. 美国物流发展趋势对中国物流的影响
  15. Ubuntu截图快捷键
  16. canvas画圆又毛边
  17. 孙溟㠭绘画篆刻——《梦》
  18. arm920t中断系统详解
  19. 获取Angular中的AngularJS功能
  20. java 实习生刚入职都会做些什么工作呢?

热门文章

  1. 数字化转型六图法:算法地图
  2. Oracle数据字典使用
  3. Cocos Creator—定制H5游戏首页loading界面 1
  4. 华为鸿蒙官网商城,再见安卓!鸿蒙版京东App上架华为商城:正式版最快6月见...
  5. C++学习(二六六)LINK_DIRECTORIES
  6. FC协议功能子模块,实现FC-1553协议,ASM协议,AV协议的应用,多种接口可定制
  7. ubuntu设置共享文件夹
  8. 大成182672 浅谈网络推广
  9. Android低功耗优化,基于Android嵌入式系统的低功耗优化
  10. mysql数据库迁移方案_MySQL迁移升级解决方案