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

news/2025/2/4 11:04:15/

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

链接

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

播放flv格式视频

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视频播放器


http://www.ppmy.cn/news/542950.html

相关文章

vue播放flv视频流

由于项目需要&#xff0c;所以要播放flv格式的视频流&#xff0c;下面记录一下过程 首先需要安装flv.js npm install --save flv.js在html中使用 <template><div><video id"videoElement" controls autoplay muted width"300px" height&q…

使用 Flv.js 和 Reflv 播放视频

1.背景 传统的播放视频是采用 flash 播放器方式&#xff0c;然而各大浏览器厂商都不再支持flash , 我们不得不寻找其他解决方案。 2.说明 2.1 Flv.js flv.js 是一个HTML5 Flash视频(FLV)播放器&#xff0c;它通过纯JavaScript编写&#xff0c;没有使用 Flash。它的工作原理是…

批量下载FLV文件

目的&#xff1a;帮MM下载新概念英语视频教程&#xff0c;方便在MP4中学习英语 前期工作&#xff1a;首先去迅雷中搜索&#xff0c;能搜索到所需的视频教程&#xff0c;不过并不完整&#xff0c;RMVB格式的尽管体积比较小&#xff0c;不过为了在MP4使用&#xff0c;我想流行的…

4kvideodownloader视频下载工具

帮助你从YouTube、哔哩哔哩等流媒体网站上下载频道视频&#xff0c;清晰度挺好的。此外还有一个订阅功能&#xff0c;如果他更新了&#xff0c;视频会自动下载下来。 安装 解压到你的安装文件夹&#xff0c;打开SetUp.msi&#xff0c; 改变安装路径 安装完成后&#xff0c;在…

vue加载flv格式的视频遇到的bug,及解决方法

vue加载flv格式的视频 遇到的问题描述 第一次打开时报错 javascriptjavascriptjavascript import flvjs from "flv.js";if (flvjs.isSupported()) {let videoElement document.getElementById(videoElement);videoElement document.getElementById(videoElement);t…

视频下载终极利器!简单粗暴,支持全网视频下载!

每当我们想要下载网上视频的时候&#xff0c;需要借助各种工具软件&#xff0c;费时又耗力&#xff0c;甚至可能不知如何去下载。 今天小编给大家分享一个视频在线下载网站&#xff0c;支持30多个平台视频下载&#xff0c;不需要借助什么工具&#xff0c;也不用考虑转格式问题…

如何下载在线视频:流行视频FLV下载

现在在线视频越来越多了,想下载怎么办?下面我总结了三条方法,好好学习哦。恩。主要是针对FLV视频的,什么是FLV视频?就是土豆网,六间房,56,mofile,youtube等视频网站播放的流媒体。其他的诸如WMV,MPG等格式,我就稍微讲下。如果是WMP视频,右击视频--属性,即可看到真…

自制腾讯视频去除水印Chrome插件

前景提要 前几期写了一篇关于谷歌插件制作的文章&#xff0c;但是因为没有正经的小实战&#xff0c;一直鸽了这么多期文章&#xff0c;这里写一篇比较受关注的腾讯视频的水印去除的文章&#xff0c;方便各位日后爬取腾讯视频的时候总带其水印爬虫。 学习制作谷歌插件对于爬虫喜…