【Vue】播放flv格式视频(flv.js视频播放器)

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

vue播放flv,Vue,vue.js,音视频,javascript

 图片来源:HTTP-FLV直播初探  

链接

github地址:GitHub - bilibili/flv.js: HTML5 FLV Player

播放flv格式视频

vue播放flv,Vue,vue.js,音视频,javascript

npm install flv.js --save

封装一个组件flvVideo

<template>
  <div class="video">
    <video ref="videoElement" controls autoplay muted v-if="!error"></video>
    <div class="error" v-else>视频播放错误!</div>
  </div>
</template>

<script>
import flvjs from "flv.js";
export default {
  name: "flvVideo",
  props: ["url", "height", "destroy"], // 视频流路径,播放器高度,是否销毁播放器
  data() {
    return {
      flvPlayer: "",
      error: false,
    };
  },
  mounted() {
    this.$nextTick(() => {
      this.init(this.url)
    });
  },
  methods: {
    init(source) {
      if (flvjs.isSupported()) {

        this.flvPlayer = flvjs.createPlayer(
          {
            type: 'flv',						//flv格式
            isLive: true,					//直播模式
            hasVideo: true,				//视频开启
            url: source,
            // hasAudio: true, 			//音频开启
            enableStashBuffer: false, //设置启用播放缓存,只在直播起作用(降低延迟)。关闭IO隐藏缓冲区
            // enableWorker: true, 	//浏览器端开启flv.js的worker,多进程运行flv.js。不启用分离线程
            // reuseRedirectedURL: true, //重用301/302重定向url,用于随后的请求,如查找、重新连接等。
            // autoCleanupSourceBuffer: true, //自动清除缓存
          }
        );

        this.flvPlayer.attachMediaElement(this.$refs.videoElement);
        this.flvPlayer.load();
        this.flvPlayer.play();

        // 加载完成
        this.flvPlayer.on(flvjs.Events.LOADING_COMPLETE, () => {
          this.error = false;
        });

        // 加载失败
        this.flvPlayer.on(flvjs.Events.ERROR, () => {
          this.error = true;
        },(error) => {
          console.log(error);
        });

      } else {
        this.error = true;
      }
    },
    // 销毁
    detachMediaElement() {
      this.flvPlayer.pause();
      this.flvPlayer.unload();
      this.flvPlayer.detachMediaElement();
      this.flvPlayer.destroy();
      this.flvPlayer = "";
    },
    // 播放
    play () {
      this.flvPlayer.play();
    }
  },
  watch: {
    // 更换流
    url() {
      this.error = false;
      this.flvPlayer == "" ? "" : this.detachMediaElement(); // 切换流之前,判断之前的流是否销毁
      this.init(this.url);
    },

    // 开关值
    destroy() {
      if (this.destroy) {
        this.init(this.url);
      } else {
        this.flvPlayer == "" ? "" : this.detachMediaElement();
      }
    },
  },
  beforeDestroy() {
    this.detachMediaElement();
  },
};
</script>

<style scoped>
.video {
  position: relative;
  height: 100%;
}
video {
  width: 100%;
  height: 100%;
  object-fit: fill;
}
.error {
  position: absolute;
  top: 30%;
  left: 50%;
  margin-left: -120px;
  text-align: center;
  color: #00fdff;
  font-weight: bold;
  font-size: 1.2em;
}

</style>

hasAudio设置为true就不展示。。。不知道为啥~

home.vue

 <flv-video height="240px" :url="url" ></flv-video>
import flvVideo from "@/components/flvVideo"
components: { "flv-video": flvVideo },
data() {
  return {
    url:'https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv'
  }
}

参考:Vue 中使用flv.js视频播放器文章来源地址https://www.toymoban.com/news/detail-628147.html

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

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

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

相关文章

  • springboot + vue3实现视频播放Demo(video.js & Vue3-video-play视频播放器)

    ffmpeg官网 长时长视频java存储及vue播放解决方法 【 攻城略地 】vue3 + video.js播放m3u8视频流格式 Vue3-video-play组件官网 Vue3视频播放器组件Vue3-video-play入门教程 vue-video-player播放m3u8格式的视频 Spring boot视频播放(解决MP4大文件无法播放),整合ffmpeg,用m3u8切片播放。 Java获取MP4视频文

    2024年02月07日
    浏览(39)
  • 【VideoJs】初识videojs && video.js 视频播放器的基本使用 && videojs基础用法 && videojs视频播放器 && vue3中使用videojs

    免费,开源 插件多 可自定义 【推】 虽然,但是Videojs算好了,但我觉得有点杂,特别是文档与插件,且自定义插件有点困难,也可能是我比较菜吧 相比之下,我还是强烈推荐 【Xgplayer ——点我进入】 备用地址 http://t.csdn.cn/H0cAV Xgplayer 优点 优雅、美观 文档清晰明了 大厂出

    2024年02月03日
    浏览(44)
  • vue3使用dplayer视频播放器

    https://dplayer.diygod.dev/zh/guide.html#special-thanks 官方文档地址 首先去dplayer官网生态里把弹幕后台下载下来 然后阅读B站up的项目启动文章 注意get文件的返回字段data不用改成danmaku

    2024年02月12日
    浏览(30)
  • ffplay播放器剖析(6)----音视频同步分析

    视频和音频是不同的线程,并且也不会同时解出同一个pts的音视频帧,因此需要音视频同步; 以音频为基准 视频慢了则丢掉部分视频帧(视觉感受就是掉帧) 视频快了就继续渲染上一帧 以视频为基准 音频慢了则加速播放(或者丢帧,丢帧会断音,体验感特别差) 音频快了就放慢数据点

    2024年02月15日
    浏览(59)
  • ffplay播放器剖析(7)----音视频暂停模块分析

    1.通过SDL触发事件调用toggle_pause 2.toggle_pause调用stream_toggle_pause 3.stream_toggle_pause修改暂停变量 这个函数可以知道,如果当前状态是暂停的话,那么就会进入if函数 看一下if函数流程,首先我们知道我们 is-frame_timer += av_gettime_relative() / 1000000.0 - is-vidclk.last_updated; 这个就是在之前的基

    2024年02月16日
    浏览(33)
  • 音视频项目—基于FFmpeg和SDL的音视频播放器解析(三)

    介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本文,可参考我的前一篇文章音视频项目—基于FFmpeg和SDL的音视

    2024年02月05日
    浏览(48)
  • Qt音视频开发41-文件推流(支持网页和播放器播放并切换进度)

    本功能最初也是有一些人提过类似的需求,就是能不能将本地的音视频文件,通过纯Qt程序推流出去,然后用户可以直接在网页上播放,也可以用各种播放器播放,然后还可以任意切换播放进度,其实说白了就是个文件服务器,用户通过网络地址访问以后,告诉对方当前是媒

    2024年02月01日
    浏览(54)
  • 音视频项目—基于FFmpeg和SDL的音视频播放器解析(二十一)

    介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本文,可参考我的前一篇文章音视频项目—基于FFmpeg和SDL的音视

    2024年02月02日
    浏览(54)
  • FFmpeg 播放器实现音视频同步的三种方式

    我们基于 FFmpeg 利用 OpenGL ES 和 OpenSL ES 分别实现了对解码后视频和音频的渲染,本文将实现播放器的最后一个重要功能:音视频同步。 老人们经常说, 播放器对音频和视频的播放没有绝对的静态的同步,只有相对的动态的同步,实际上音视频同步就是一个“你追我赶”的过

    2024年02月06日
    浏览(48)
  • opencv+ffmpeg+QOpenGLWidget开发的音视频播放器demo

        本篇文档的demo包含了 1.使用OpenCV对图像进行处理,对图像进行置灰,旋转,抠图,高斯模糊,中值滤波,部分区域清除置黑,背景移除,边缘检测等操作;2.单纯使用opencv播放显示视频;3.使用opencv和openGL播放显示视频;4.在ffmpeg解码后,使用opencv显示视频,并支持对视

    2024年02月12日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包