在vue中使用海康插件实现视频监控,视频直播方法一(RTMP流加Flash加videoJS)_videojs监控插件-程序员宅基地

技术标签: rtmp  海康威视  vue  视频直播  视频监控  

在vue中使用海康插件实现视频监控,视频直播方法一(RTMP流加Flash加videoJS)

第一步

用npm装这个几个包

 "video.js": "^6.6.0",

 "videojs-flash": "^2.2.0",

 "videojs-swf": "^5.4.2",

第二步

在页面引入上述包

//视频插件包
import videojs from "video.js";
import "video.js/dist/video-js.css";
import "videojs-flash";
import SWF_URL from "videojs-swf/dist/video-js.swf";
videojs.options.flash.swf = SWF_URL; // 设置flash路径,Video.js会在不支持html5的浏览中使用flash播放视频文件

第三步

运用了swiper对视频进行动态生成,分屏等功能。

     <div class="swiper-no-swiping" id="swp" >
          <swiper :options="swiperOption">
            <swiper-slide
              :class="{swiperCss1:flagCss1,swiperCss4:flagCss4}"
              v-for="(item,index) in videoList"
              :key="index"
            >
              <div class="vBox">
                <h4>{
   {item.cameraName}}</h4>
                <div class="V_Box">
                  <div class="openVideoBox" @click="videoControl(item) "></div>
                  <video
                    :id="'my_player'+index"
                    class="video-js vjs-default-skin vjs-big-play-centered"
                    preload="auto"
                    :height="flagCss1==true ? '500px':'300px'"
                  >
                    <source :src="item.outTurnFlow" type="rtmp">
                  </video>
                </div>
              </div>
            </swiper-slide>
            <div class="swiper-button-prev" slot="button-prev"></div>
            <div class="swiper-button-next" slot="button-next"></div>
          </swiper>
        </div>

data里面得数据配置

     //轮播图控件
     swiperOption: {
        slidesPerView: 1,
        slidesPerColumn: 1,
        spaceBetween: 30,
        navigation: {
          nextEl: ".swiper-button-next",
          prevEl: ".swiper-button-prev"
        }
      },
      //视频控件
      VideoOptions: {
        autoplay: true, // 是否自动播放
        muted: false, // 是否静音
        fluid: false, // 宽高自适应
        loop: false,//是否循环播放
        techOrder: ["flash"]
      },

methods里面得请求

// 查询视频列表并播放视频
    onSearch() {
    
      if (JSON.stringify(this.player1) !== "{}") {
    
        if (this.videoList.length > 0) {
    
          this.videoList.forEach((element, index) => {
    
            this.player1 = videojs("my_player" + index);
            this.player1.dispose();
          });
        }
        this.player1 = {
    };
        this.videoList = [];
      }
      if (this.formInline.section_id.length > 0) {
    
        this.axios.get("video/list", {
    
            params: {
     section_id: this.formInline.section_id }
          }).then(res => {
    
            if (res.data.pageResultList.length > 0) {
    
              this.videoList = res.data.pageResultList;
              setTimeout(() => {
    
                if (this.videoList.length > 0) {
    
                  this.videoList.forEach((element, index) => {
    
                    this.player1 = videojs(
                      "my_player" + index,
                      this.VideoOptions
                    );
                  });
                }
              }, 200);
            }else{
    
                this.$message(res.message)
            }
          });
      }
    },

注:上述有些样式代码,是为了切换分屏时候做得动态绑定处理

第四步

切换页面时需要停止这个播放才不会报错

beforeDestroy() {
    
    if (JSON.stringify(this.player1) !== "{}") {
    
      if (this.videoList.length > 0) {
    
        this.videoList.forEach((element, index) => {
    
          this.player1 = videojs("my_player" + index);
          this.player1.dispose();
        });
      }
    }
  }  
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jinglianglove/article/details/102587791

智能推荐

控制Android充电震动的代码,Android手机使用Tasker控制充电-程序员宅基地

文章浏览阅读667次。起因看到网上有人说,备用机长时间插在电源上会导致电池鼓包,虽然不确定真假,但还是“宁可信其有,不可信其无”,安全第一嘛。工具taskeresp8266开发板带光耦的继电器usb公头,母头,线材若干电烙铁(非必需,如果直接截断一根usb线接到继电器上的话,4也可以省了)操作基本流程tasker在电量变化时通知单片机当前电量,单片机收到手机发来的http post包后查看当前电量,并决定是否操作继电器..._tasker 震动

使用 matplotlib 绘制简单图表(折线图、柱形图、条形图、堆积面积图、直方图、饼图、散点图、箱形图、雷达图、误差棒图)_用matplotlib绘制图-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。X轴代表日期,y轴代表温度,由图可以清晰的看出北京市未来15天的最高气温和最低气温都呈现逐步下降后反弹的趋势。————2013-2019财年某电商平台的GMV。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块并设置中文。中的pyplot模块、numpy模块。中的pyplot模块、numpy模块。中的pyplot模块、numpy模块。中的pyplot模块、numpy模块。_用matplotlib绘制图

WebView内存泄漏解决方法_web-view memory access out-程序员宅基地

文章浏览阅读292次。##1.新开进程在WebView所在的activity新开辟一个进程,在onDestroy中杀死WebView所在的进程@Overridepublic void onDestroy() { android.os.Process.killProcess(android.os.Process.myPid()); super.onDestroy();}清单文..._web-view memory access out

Springboot整合PageHelper分页插件,java分布式开发面试题-程序员宅基地

文章浏览阅读227次,点赞3次,收藏7次。可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源6072290)][外链图片转存中…(img-S0YU0wqO-1711156072290)]上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源本文已被。

linux报错Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&inf_linux 安装vsftpd couldnot retrieve mirrorlist-程序员宅基地

文章浏览阅读1.6k次。解决方法:服务器未联网,联网即可解决_linux 安装vsftpd couldnot retrieve mirrorlist

matlab rx算法,精通MATLAB智能算法(2015代码)-程序员宅基地

文章浏览阅读363次。文件名大小更新时间Intelligent algorithm\10\s10_1\1.jpg535472014-04-26Intelligent algorithm\10\s10_1\s10_1.m87752014-04-26Intelligent algorithm\10\s10_2\1.jpg535472014-04-26Intelligent algorithm\10\s10_2\bys.m1..._rx-algorithm及其变体代码实现

随便推点

LayUI-Table-添加禁止选中-程序员宅基地

文章浏览阅读1.6k次。LayUI这几年比较流行,里面的Table组件也比较强大,但是前面的CheckBox没有禁止选中功能,今天就来试试,看看能不能给添加一个禁止选中功能。Fork LayUI源码LayUI项目地址Clone到本地找到src里面lay下面的modules文件夹里面的table.js添加字段标记参照这里我们也添加一个"IS_DISABLE"的标记添加完如下 config: { ..._layui 行不允许选中

大数问题——26进制_z-26进制数是一个每位都是大写字母的数字。 a、b、c、…、x、y、z 分别依次代表一-程序员宅基地

文章浏览阅读4.3k次。杭电2100LovekeyProblem Description XYZ-26进制数是一个每位都是大写字母的数字。 A、B、C、…、X、Y、Z 分别依次代表一个0 ~ 25 的数字,一个 n 位的26进制数转化成是10进制的规则如下 A0A1A2A3…An-1 的每一位代表的数字为a0a1a2a3…an-1 ,则该XYZ-26进制数的10进制值就为 m = a0 * 26^(n-1) + a_z-26进制数是一个每位都是大写字母的数字。 a、b、c、…、x、y、z 分别依次代表一

程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)_直接插入排序34,65,12,56,78,10-程序员宅基地

文章浏览阅读129次。程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)原创 2012年05月12日 11:18:05标签:java /数据结构 /算法50847前几天,看到一篇前辈的博文“程序员必知的8大排序”,不禁的手痒起来,重新翻开严蔚敏老师的《数据结构》复习了一遍,然后一一的用java去实现,其中有不足之处,还望各位道友指正_直接插入排序34,65,12,56,78,10

Android:Json数据转换成Map_android json to hashmap-程序员宅基地

文章浏览阅读1.6k次。本文利用Gson来做实现,先导入:implementation 'com.google.code.gson:gson:2.8.6'主要利用的是JsonObject里的entrySet()方法,相关Demo代码如下:import com.google.gson.Gson;import com.google.gson.JsonElement;import com.google.gson.JsonObject;import java.util.HashMap;import java.ut_android json to hashmap

R语言 quantmod下载股票代码无法访问Yahoo的唯一解决方法_r语言下载不了雅虎数据-程序员宅基地

文章浏览阅读394次。总结而言,当无法访问Yahoo时,使用quantmod包下载股票代码的一个可行解决方法是选择替代数据源,例如Alpha Vantage,并使用其提供的API密钥来获取数据。值得注意的是,使用Alpha Vantage作为替代数据源可能会有一些限制,例如每分钟请求的次数有限制,并且可能无法提供与Yahoo相同的数据范围和质量。getSymbols函数用于从指定的数据源获取股票数据,参数src用于指定数据源,api.key用于传递API密钥。在获得API密钥后,我们可以使用以下代码来获取股票代码。_r语言下载不了雅虎数据

Matlab函数句柄调用图像K均值分类_function varargout = classification_outputfcn(hobj-程序员宅基地

文章浏览阅读1.2k次。function varargout = guideTemp2(varargin)% GUIDETEMP2 MATLAB code for guideTemp2.fig% GUIDETEMP2, by itself, creates a new GUIDETEMP2 or raises the existing% singleton*.%% H = GUID_function varargout = classification_outputfcn(hobject, eventdata, handles)