码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于flv.js的视频自动播放


    1: html

    1. <video class="video-content" id="video">
    2. 您的浏览器不支持 HTML5 video!
    3. </video>

    2: 创建flv实例并播放

    1. let videoPlayer = document.getElementById('video'); //获取html
    2. if (flvJs.isSupported()) {
    3. //创建flv实例
    4. this.Player = flvJs.createPlayer({//MediaDataSource
    5. type: 'flv',
    6. hasAudio: false, //是否带音频播放
    7. isLive: true, //<====加个这个
    8. url: 'url'
    9. }, {//Config
    10. enableWorker: false,
    11. enableStashBuffer: false
    12. //当带音频播放时,config部分配置项尽量采取默认状态,否则过分优化会造成卡死
    13. });
    14. this.Player.attachMediaElement(videoPlayer);
    15. this.Player.load(); //加载
    16. this.Player.play(); //播放
    17. }

    3:停止播放

    1. this.Player.pause(); //停止播放
    2. this.Player.unload(); //停止加载
    3. this.Player.detachMediaElement(); //销毁实例
    4. this.Player.destroy();
    5. this.Player= null;

    4:由于累积延过大时,跳帧播放问题

    可以设置一个定时器指定时间跳帧, 时间不可过大或过小,容易造成卡顿和画面衔接过于突兀

    1. setInterval(() => {
    2. this.jumpToEndBuffer();
    3. }, 60 * 1000);
    4. jumpToEndBuffer(){
    5. let buffered = this.Player.buffered;
    6. if (buffered.length > 0) {
    7. let end = buffered.end(0);
    8. if (end - this.Player.currentTime > 0.2) {
    9. this.Player.currentTime = end - 0.1;
    10. }
    11. }
    12. }

    5: 关于同时播放多路视频问题(6路以上)

    用websocket播放六路以上视频, 需后端将视频的URL单独设置端口, 谷歌浏览器最大可进行6路长链接(浏览器请求并发), 如果想要请求第七路会造成请求阻塞, (由于打包后的js文件按需加载, 会造成js文件请求等待, 页面卡死 )

    6: 页面花屏绿屏问题

    浏览器的版本过低会造成绿屏, 建议升级浏览器版本

    视频码流问题, 建议后端排查

    7: 流跨域问题

    后端做了处理,前端未作深入研究

    8: 带音频播放黑屏问题

    原因是由于音频和视频时间戳不同步,flvjs的config中fixAudioTimestampGap属性默认是true使音视同步,修改为false即可

    扩展如果做手动点击播放,可用html5中video标签的方法,如v-on:pause="";v-on:play="";

     

  • 相关阅读:
    [DeepLearning] 线性回归的实现Pytorch
    react中路由版本问题
    Linux下的触摸屏驱动编程
    MongoDB的分片集群(三) :mongodb6.x分片集群离线搭建&开启安全认证
    CPU保护机制 —— COPP技术 (案列+配置) |||| SDN——转控分离
    一面数据: Hadoop 迁移云上架构设计与实践
    003 linux 自动化构建工具-make/makefile
    9.4JavaEE——声明式事务管理(一)基于XML方式的声明式事务
    延伸产业链推进水稻循环经济 国稻种芯集团谋定益海嘉里合作
    RV1126 分区教程
  • 原文地址:https://blog.csdn.net/yinshipin007/article/details/128154026
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号