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

种地  金牌会员 | 2025-1-22 02:09:53 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 922|帖子 922|积分 2766

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

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

  1. <template>
  2.   <div>
  3.     <el-dialog :visible.sync="innerVisibleFlv" :close-on-press-escape="false" :close-on-click-modal="false"
  4.             append-to-body width="800px" top="15vh" title="" class="modify" :before-close="handleClose">
  5.         <video ref="videoPlayer" class="video-js vjs-default-skin" controls preload="auto" width="100%" height="99%">
  6.                         <!-- 这里不需要添加 source 标签,因为 flv.js 会动态处理 -->
  7.         </video>
  8.     </el-dialog>
  9.   </div>
  10. </template>
  11. <script>
  12. import flvjs from 'flv.js';
  13. export default {
  14.   name: 'FlvPlayer',
  15.   props: {
  16.     innerVisibleFlv: {
  17.         type: Boolean,
  18.         default: true
  19.     },
  20.     flvPath: {
  21.         type: String
  22.     }
  23.   },
  24.   data() {
  25.     return {
  26.       flvPlayer: null,
  27.       videoUrl: null,
  28.     };
  29.   },
  30.   watch: {
  31.       flvPath: {
  32.           deep: true,
  33.           immediate: true,
  34.           handler (n, o) {
  35.               if (n) {
  36.                   this.videoUrl = n;
  37.               }
  38.           }
  39.       }
  40.   },
  41.   mounted() {
  42.     this.$nextTick(() => {
  43.         this.initFlvPlayer();
  44.     })
  45.   },
  46.   beforeDestroy() {
  47.     if (this.flvPlayer) {
  48.       this.flvPlayer.destroy();
  49.     }
  50.   },
  51.   methods: {
  52.     initFlvPlayer() {
  53.       if (flvjs.isSupported()) {
  54.         const videoElement = this.$refs.videoPlayer;
  55.         this.flvPlayer = flvjs.createPlayer({
  56.           type: 'flv',
  57.           // url: this.videoUrl,  # http://localhost:8080/aaa/flv/25012001.flv
  58.           url: '/flv/aaa/flv/25012001.flv', # 本地测试这么写,跨域问题,修改proxyConfig.js
  59.         });
  60.         this.flvPlayer.attachMediaElement(videoElement);
  61.         this.flvPlayer.load();
  62.         this.flvPlayer.play();
  63.       } else {
  64.         console.error('Your browser does not support FLV playback.');
  65.       }
  66.     },
  67.        
  68.     handleClose () {
  69.         this.$emit('handleClose');
  70.     },
  71.   }
  72. };
  73. </script>
  74. <style scoped>
  75. </style>
复制代码
遇到题目
1、本地开辟跨域


修改proxyConfig.js文件,添加下面的内容;修改组件中的url地址为 /flv/xxx
  1. module.exports = {
  2.         ....
  3.         proxyTable: {
  4.                 '/flv': {
  5.                   target: 'http://localhost:8080',
  6.                   changeOrigin: true,
  7.                   pathRewrite: {
  8.                         '^/flv': ''  
  9.                   }
  10.                 }
  11.         }
  12. }
复制代码
ps:遇到过这个题目,还部署到tomcat中测试了,也是无法正常播放,现在想想当时是由于文件的编码不对造成的。
2、文件照旧无法播放,原因是flv文件的编码不对


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


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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表