记录---

api中文文档: flv.js 中文API文档 - 简书

参考文章:全网最详细!vue中使用flv.js 播放直播监控视频流_vue使用flv.js_抄一下你代码的博客-CSDN博客

问题:flv.js获取视频,接口调通,画面不展示,关掉音频后,页面展示,音频格式不匹配,更改视频的音频格式后,页面出现

① 组件设置  //必须要声明一个播放器的容器  playerRef就是播放器的容器const playerRef = React.useRef<any>(null);const videoRef = React.useRef(null);<div className={styles.site_content_video_right_out}><videoclassName="video"ref={videoRef}preload="auto"width="100%"height="100%"mutedautoPlaycontrolstype="rtmp/flv">{/* <source src="" /> */}</video></div>
 具体方法----------// 获得摄像头信息const getInfo = async (item) => {// console.log('item', item)// getToken(item.equipmentId)let nowAddress: any = ''// 获得视频地址const res = await getVideoAddress({ code, equipmentId: item.equipmentId })if (res?.success) {const { data } = resnowAddress = datasetAddress(data)} else {nowAddress = nullsetAddress(null)}  // setTimeout(() => { //使用定时器是因为,在mounted声明周期里调用,可能会出现DOM没加载出来的原因const videoElement = videoRef.current; // 获取到html中的video标签if (flvJs.isSupported()) {//先判断 player是否存在,如果存在,销毁掉它,不然会占用TCP名额if (playerRef.current) {playerRef.current.pause(); //暂停播放数据流playerRef.current.unload(); //取消数据流加载playerRef.current.detachMediaElement(); //将播放实例从节点中取出playerRef.current.destroy(); //销毁播放实例playerRef.current = null;}if (nowAddress) {const player = playerRef.current = flvJs.createPlayer( //创建直播流,加载到DOM中去{type: "flv",url: nowAddress, //你的url地址// url: 'http://218.108.40.230:20301/live/c2lwOmlwODdjMDRAaHpqeS56amp5LmNuank6OTkwMl9tYWluXzIwMjMtMy0yNiAxMDowMDoxMF8yMDIzLTMtMjYgMTY6MDA6MDA=.live.flv?token=7302843b-d9e5-4906-a766-73994f2d7957', //你的url地址isLive: true, //数据源是否为直播流hasAudio: true, //数据源是否包含有音频hasVideo: true, //数据源是否包含有视频enableStashBuffer: true, //是否启用缓存区},{enableWorker: false, //不启用分离线程enableStashBuffer: false, //关闭IO隐藏缓冲区autoCleanupSourceBuffer: true, //自动清除缓存lazyLoad: false,});player.attachMediaElement(videoElement); //放到dom中去player.load();//准备完成//!!!!!!这里需要注意,有的时候load加载完成不一定可以播放,要是播放不成功,用settimeout 给下面的this.player.play() 延时几百毫秒再播放player.play();//播放}}// }, 1000)}
③卸载时销毁播放器// 卸载功能组件时释放Video.js播放器// 第一个函数参数里面返回一个函数,相当于类组件的componentWillUnmountReact.useEffect(() => {return () => {if (playerRef.current) {playerRef.current.pause();playerRef.current.unload();playerRef.current.detachMediaElement();playerRef.current.destroy();playerRef.current = null;}};}, [playerRef]);

flv.js 插件 完成 flv 格式的视频播放相关推荐

  1. 使用flv.js + websokect播放rtsp格式视频流

    1.问题背景 在最近的项目中,涉及到海康接入的视频播放的问题,海康这边获取到的视频流是rtsp格式,web端目前没有直接可以播放的组件,于是最开始是后端处理了视频流,返回hls格式的m3u8地址,这样 ...

  2. 3ds Max、Maya安装Babylon.js插件导出gltf格式的3D模型文件方法

    3ds Max.Maya安装Babylon.js插件导出gltf格式的3D模型文件方法 **1.去Github project Releases下载Babylon.js插件. 找到和自己安装的3ds ...

  3. 【入门】无插件web直播解决方案,ffmpeg+nginx-http-flv-module+flv.js

    概述 这几天一直在搭建一个web端的直播平台,需求是无插件,低延迟,开源免费. 但是网上的教程,大多比较零散,没有整合成一套解决方案. 所以搜索了很多资料,也问了不少群里的大佬.本篇博客是一个资源整合 ...

  4. 以flv.js框架为基础,替换flv格式视频

    flv.js总结 这两个月来,开展这个flv.js项目学到的新东西还挺多的,从理解flv.js框架,到理解flv视频格式,到理解公司自己的视频格式,当每一步都理解后,整个过程是比较顺利的,下面是我对这 ...

  5. 使用flv.js实现flv格式的监控视频流播放

    最近在对接海信的监控摄像头,对方返回的监控视频流格式是flv格式,我使用的是flv.js来实现监控播放 一:flv.js github地址:https://github.com/Bilibili/fl ...

  6. Flv.js全面解析

    Flv.js全面解析 常见直播协议 Flv.js概览 Flv.js结构图 架构图 功能 API文档相关 MediaDataSource的字段列表如下, Config flvjs.getFeatureL ...

  7. flv.js解析与使用

    简介 Flv.js 是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash.由 bilibili 网站开源.它的工作原理是将 FLV 文件流转码复用 ...

  8. Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流

    场景 Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流: Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_win nginx-rtmp ...

  9. vlc搭建rtsp直播Demo ffmpeg + nginx + flv.js实现rtsp网页播放Demo

    文章目录 学习链接 本地视频文件作为数据源 推流步骤 拉流步骤 本地摄像头作为数据源 拉流步骤 vlc + ffmpeg + nginx + flv.js 实现网页视频直播 概括 vlc打开摄像头,提 ...

最新文章

  1. 素数方阵(信息学奥赛一本通-T1446)
  2. CentOS 配置 lamp
  3. C++ 多态的两种形式
  4. HDU1287+枚举
  5. NSNotificationCenter消息通信机制介绍(KVO)
  6. NodeJS 数组超出部分以弹出框显示。
  7. django 实现同一个ip十分钟内只能注册一次
  8. 手持终端的时候应该有数据线
  9. 面对互联网寒冬,程序员能够做什么?
  10. VMware虚拟桌面
  11. 性能优化,进无止境---内存篇(下)
  12. 移远M26实现短信接收
  13. 计算机目标作文,人生的目标作文(精选5篇)
  14. 515. 在每个树行中找最大值(中等 树 广度优先搜索 二叉树)
  15. 【Python爬虫网站数据实战】Python爬虫 统计淘宝商品数据+数据可视化
  16. Python中的set()函数使用
  17. Scala入门系列(7)-Scala之函数式编程
  18. 响应式设计:理解设备像素,CSS像素和屏幕分辨率
  19. 用python来控制wifi连接
  20. 使用select2实现多功能下拉框,select2中文api

热门文章

  1. 了解automake和autoconf(autoreconf)
  2. 数据可视化--实验六:层次和网络可视化、文本可视化
  3. android下载leancloud文件
  4. 利用openfire和smark的即时通信
  5. 使用BEGAN生成美女图片
  6. 软件建模与分析——G001-185-03
  7. 在什么情况下要向美国专利商标局申请临时专利?
  8. 雅居乐陈卓林以人为本,于细节中探索业主所需,打造乐活智慧社区
  9. 洪荒制作量子计算机 小说,小说穿越洪荒我居然成了无敌大表哥全章节阅读
  10. 高效沟通的秘籍-沟通视窗