vue+flv.js实现视频播放

这篇具有很好参考价值的文章主要介绍了vue+flv.js实现视频播放。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、使用步骤

1.引入库

代码如下(示例): npm install --save flv.js  下载flv依赖

导入:import flvjs from "flv.js";

2.读入数据

使用video标签引入
          <video
            id="videoElement"
            controls
            autoplay
            muted
            controlsList="nodownload"
            :disablePictureInPicture="true"
            v-show="conditions"
            style="width: 100%; height: 100%; object-fit: fill"
          ></video>

1.获取视频流地址并使用

     createVideo() {
      getCameraVideoAPI({ cameraId: id }).then((res) => {

        if (res.success) {
          const that = this;
          this.flvPlayerList = [];

          if (flvjs.isSupported()) {
            var videoElement = document.getElementById("videoElement");
            videoElement.addEventListener("click", mouseHandler, false);
            function mouseHandler(event) {
              event.preventDefault();
            }//这个我是用来防止用户点击,可不加
            that.flvPlayer = flvjs.createPlayer({
              type: "flv",
              url: res.result,
              isLive: true,
              hasAudio: false, // 关闭声音
              reuseRedirectedURL: true, //重用301/302重定向url,用于随后的请求,如查找、重新连接等
              // cors: true,
              enableWorker: false, //不启用分离线程
              enableStashBuffer: false, //关闭IO隐藏缓冲区
              autoCleanupSourceBuffer: true, //对SourceBuffer进行自动清理缓存
              autoCleanupMaxBackwardDuration: 12, //    当向后缓冲区持续时间超过此值(以秒为单位)时,请对SourceBuffer进行自动清理
              autoCleanupMinBackwardDuration: 60, //指示进行自动清除时为反向缓冲区保留的持续时间(以秒为单位)。
              stashInitialSize: 128, // 缓存大小(kb)  默认384kb
              fixAudioTimestampGap: false,
            });
            this.flvPlayer.attachMediaElement(videoElement);
            // this.flvPlayer.attachMediaElement(document.getElementById('videojs-player' + model.index + "_" + this.pageId));
            that.flvPlayer.load();
            that.flvPlayer.play(); //不用打开
            that.flvPlayerList.push(that.flvPlayer);
          }
        }
      });
    },

2.有一个问题就是同时只能播放6个视频,超出6个视频会加载不出来,需要摧毁上一个视频,关闭视频的时候调用这个方法就好

    //销毁视频实例
    destoryVideo() {
      if (this.flvPlayerList.length) {
        this.flvPlayerList.forEach((item) => {
          console.log(item);
          item.unload();

          item.detachMediaElement();
        });
      }
      if (this.flvPlayer) {
        this.flvPlayer.unload();
        this.flvPlayer.detachMediaElement();
        this.flvPlayer.destroy();
        this.flvPlayer = null;
      }
    },

3.还有一个就是,flv视频在谷歌浏览器播放,如果你离开页面他会暂停在那,回来会从暂停的时间进行播放,所以为了解决这个,就监测用户进入离开,进入时重新调取视频,离开就销毁

  mounted() {

    document.addEventListener("visibilitychange", this.handleVisiable);

  },
  destroyed() {

    this.destoryVideo();
    document.removeEventListener("visibilitychange", this.handleVisiable);

    //清除计时器
  },
  methods: {


    //离开页面回来刷新视频
    handleVisiable(e) {
      switch (e.target.visibilityState) {
        case "prerender":
          // console.log("网页预渲染,内容不可见");
          break;
        case "hidden":
          // console.log("内容不可见,处理后台、最小化、锁屏状态");
          this.destoryVideo();
          break;
        case "visible":
          this.createVideo();
          break;
      }
    },
}

总结

okk就这样了文章来源地址https://www.toymoban.com/news/detail-619260.html

到了这里,关于vue+flv.js实现视频播放的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3使用flv.js播放推流视频,完整版组件

    目录 前言 1、构建 2、销毁 3、断流、卡顿重连 4、报错、停滞重连 5、累计延时处理 6、手动全屏 前言 本人是在vue3中使用flv.js处理推流时,遇到的一些问题,以及处理办法,归纳总结为一个组件,仅限于推流使用。 目前只贴出部分关键代码,若需要完整的代码,请往github下

    2024年02月16日
    浏览(29)
  • 视频知识点(17)- flv.js 实现播放本地视频文件的技巧

    目录 问题 解决 一、启动 HTTP 静态服务 二、播放 URL 三、允许静态服务跨域

    2023年04月08日
    浏览(25)
  • vue项目中视频实时播放时 播放器遇到的问题和解决过程 flv.js - EasyPlayer - LivePlayer

    需要画面监控设备实时播放,支持HTTP-FLV直播流,支持其他流后续可能会更换 需要类似于安防监控多个视频实时画面同步 播放器可控制度强,完全由我们来控制播放暂停进行拉流断流 项目使用的是的vue3+ts 原本使用的video.js 但是不支持HTTP-FLV播放,改用flv.js 引入flv.js 开发问

    2024年01月24日
    浏览(35)
  • vue项目中视频实时播放时播放器遇到的问题和解决过程 flv.js - EasyPlayer - LivePlayer

    需要画面监控设备实时播放,支持HTTP-FLV直播流,支持其他流后续可能会更换 需要类似于安防监控多个视频实时画面同步 播放器可控制度强,完全由我们来控制播放暂停进行拉流断流 项目使用的是的vue3+ts 原本使用的video.js 但是不支持HTTP-FLV播放,改用flv.js 引入flv.js 开发问

    2024年02月01日
    浏览(38)
  • flvjs实现视频播放——示例

    flv.js是由Bilibili开源(Apache)的一个HTML5纯JavaScript编写的Flash 视频(FLV)播放器,不需要flash,HTTP FLV直播当前不是所有的浏览器都支持,目前支持(Chrome 43+、FireFox 42+、Edge 15.15048+和Safari 10.1+)。它解析FLV文件转码为ISO BMFF(MP4碎片)片段,然后通过Media Source Extensions将片段喂

    2023年04月09日
    浏览(16)
  • Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流

    Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流: Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_win nginx-rtmp最新版_霸道流氓气质的博客-CSDN博客 Vue中使用vue-video-player和videojs-flash插件实现播放rtmp视频文件流: Vue中使用vue-video-player和videojs-flash插件实现播放

    2024年02月03日
    浏览(35)
  • Vue实现摄像头视频分屏, 使用flv.js接收rtmp/flv视频流

    1. 现有的平台系统播放实时视频。 因为用户电脑都是Linux系统,无法直接使用海康前端SDK,讨论决定由后台推视频流,简单调研后发现最流行的是flv,而且有B站开源的flv.js适配。前期后台推给我RTMP前缀的视频流,我尝试使用video.js,西瓜视频等都失败了,后来后端改为http前

    2024年02月03日
    浏览(42)
  • vue+flv.js+SpringBoot+websocket实现视频监控与回放

    需求:vue+springboot的项目,需要在页面展示出海康的硬盘录像机连接的摄像头的实时监控画面以及回放功能. 之前项目里是纯前端实现视频监控和回放功能.但是有局限性.就是ip地址必须固定.新的需求里设备ip不固定.所以必须换一种思路. 通过设备的主动注册,让设备去主动连接服

    2024年02月02日
    浏览(28)
  • video.js 视频截图、录制、自定义全屏,hls、flv、mp4视频播放

    功能 video.js内嵌 截图、录制功能 (图片、视频会下载到本地) 自定义全屏 播放hls、flv、mp4 功能集合成Vue组件 参考 video.js components RecordRTC demo video 截图并下载 video.js添加自定义组件的方法 使用RecordRTC对video视频进行录制 播放hls、flv、mp4 安装 引入 html 引入组件(视频地址使

    2023年04月08日
    浏览(30)
  • video.js 播放m3u8、flv、rtmp、RTS格式视频

     第一种方案(只适用m3u8格式): 属性 说明    options: {                     autoplay: true, // 设置自动播放                     muted: true, // 设置了它为true,才可实现自动播放,同时视频也被静音 (Chrome66及以上版本,禁止音视频的自动播放)                     prelo

    2024年02月12日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包