vue2使用flv.js在浏览器打开flv格式视频

devtools/2025/1/24 11:48:36/

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

flv.js 仅支持 H.264 和 AAC/MP3 编码的 FLV 文件。如果视频文件使用了其他编码格式就打不开。

 flv.vue

<template><div><el-dialog :visible.sync="innerVisibleFlv" :close-on-press-escape="false" :close-on-click-modal="false"append-to-body width="800px" top="15vh" title="" class="modify" :before-close="handleClose"><video ref="videoPlayer" class="video-js vjs-default-skin" controls preload="auto" width="100%" height="99%"><!-- 这里不需要添加 source 标签,因为 flv.js 会动态处理 --></video></el-dialog></div>
</template><script>
import flvjs from 'flv.js';export default {name: 'FlvPlayer',props: {innerVisibleFlv: {type: Boolean,default: true},flvPath: {type: String}},data() {return {flvPlayer: null,videoUrl: null,};},watch: {flvPath: {deep: true,immediate: true,handler (n, o) {if (n) {this.videoUrl = n;}}}},mounted() {this.$nextTick(() => {this.initFlvPlayer();})},beforeDestroy() {if (this.flvPlayer) {this.flvPlayer.destroy();}},methods: {initFlvPlayer() {if (flvjs.isSupported()) {const videoElement = this.$refs.videoPlayer;this.flvPlayer = flvjs.createPlayer({type: 'flv',// url: this.videoUrl,  # http://localhost:8080/aaa/flv/25012001.flvurl: '/flv/aaa/flv/25012001.flv', # 本地测试这么写,跨域问题,修改proxyConfig.js});this.flvPlayer.attachMediaElement(videoElement);this.flvPlayer.load();this.flvPlayer.play();} else {console.error('Your browser does not support FLV playback.');}},handleClose () {this.$emit('handleClose');},}
};
</script><style scoped></style>

碰到问题

1、本地开发跨域

修改proxyConfig.js文件,添加下面的内容;修改组件中的url地址为 /flv/xxx

module.exports = {....proxyTable: {'/flv': {target: 'http://localhost:8080', changeOrigin: true, pathRewrite: { '^/flv': ''  }}}
}

ps:碰到过这个问题,还部署到tomcat中测试了,也是无法正常播放,现在想想当时是因为文件的编码不对造成的。

2、文件还是无法播放,原因是flv文件的编码不对

转换工具:在线 & 免费地将 MP4 转换成 FLV — Convertio

 到此,在浏览器可以正常打开。


http://www.ppmy.cn/devtools/153119.html

相关文章

AWS App Runner

AWS App Runner 是 Amazon Web Services (AWS) 提供的一项完全托管的服务&#xff0c;旨在帮助开发人员轻松地从源代码或容器映像构建和部署 Web 应用程序和 API&#xff0c;而无需管理底层基础设施。它简化了应用程序的部署过程&#xff0c;适用于需要快速启动、自动扩展、无需…

ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档

一、云电脑&#xff1a;电竞新宠崛起 在电竞游戏不断发展的今天&#xff0c;硬件性能成为了决定游戏体验的关键因素。为了追求极致的游戏画面与流畅度&#xff0c;玩家们往往需要投入大量资金购置高性能电脑。然而&#xff0c;云电脑技术的出现&#xff0c;为玩家们提供了一种…

如何理解Linux的根目录?与widows系统盘有何区别?

文章目录 Linux根目录1. Linux根目录的理解2. 根目录空间大小限制 Linux根目录与Windows系统盘&#xff08;通常指C盘&#xff09;对比&#xff1a;1. 目录结构和组织方式2.文件系统特点3.系统启动和运行机制4.空间管理方式 Linux根目录 1. Linux根目录的理解 定义&#xff1a…

阿里巴巴开发规范手册MySQL

1、MySQL 数据库 1.1、建表规约 1) 表达是与否概念的字段&#xff0c;必须使用 is_xxx 的方式命名&#xff0c;数据类型是 unsigned tinyint&#xff08;1 表示是&#xff0c;0 表示否&#xff09;。 说明&#xff1a;任何字段如果为非负数&#xff0c;必须是 unsigned。 注…

苍穹外卖—订单模块

该模块分为地址表的增删改查、用户下单、订单支付三个部分。 第一部分地址表的增删改查无非就是对于单表的增删改查&#xff0c;较基础&#xff0c;因此直接导入代码。 地址表 一个用户可以有多个地址&#xff0c;同时有一个地址为默认地址。用户还可为地址添加例如&q…

Vue3+TS 实现批量拖拽文件夹上传图片组件封装

1、html 代码&#xff1a; 代码中的表格引入了 vxe-table 插件 <Tag /> 是自己封装的说明组件 表格列表这块我使用了插槽来增加扩展性&#xff0c;可根据自己需求&#xff0c;在组件外部做调整 <template><div class"dragUpload"><el-dialo…

蓝桥杯算法日常|c\c++常用竞赛函数总结备用

一、字符处理相关函数 大小写判断函数 islower和isupper&#xff1a;是C标准库中的字符分类函数&#xff0c;用于检查一个字符是否为小写字母或大写字母&#xff0c;需包含头文件cctype.h&#xff08;也可用万能头文件包含&#xff09;。返回布尔类型值。例如&#xff1a; #…

【后端开发】字节跳动青训营之Go语言进阶与依赖管理

Go语言进阶与依赖管理 一、Go语言进阶1.1 并发与并行1.2 协程与线程1.3 通道1.3.1 生产消费模型 1.4 并发安全 二、依赖管理 一、Go语言进阶 Go语言一次可以创建上万个协程。 1.1 并发与并行 并发&#xff1a;多程序程序在单核CPU上运行。并行&#xff1a;多程序程序在多核CP…