位置: IT常识 - 正文

前端播放大视频卡顿的解决(m3u8视频流)(前端播放视频的插件)

编辑:rootadmin
前端播放大视频卡顿的解决(m3u8视频流) 前言

推荐整理分享前端播放大视频卡顿的解决(m3u8视频流)(前端播放视频的插件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端播放大视频怎么设置,前端播放视频用的标签是什么,前端播放视频用的标签是什么,前端播放视频方案,前端播放视频的方式,前端播放大视频怎么设置,前端播放大视频怎么弄,前端播放大视频怎么设置,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在一个大屏看板项目中有一个需求是:要求视频和看板要进行来回切换。 最开始的做法是将MP4视频放在项目里,在本地运行时是没什么问题的,但是在往仓库里提交代码时出现了问题。当单个文件超过100MB时会导致代码提交失败; 后来的解决方案是将视频文件放到服务器上,项目里直接加载视频在服务器上的地址。但是这样也存在一个问题,就是视频加载会卡顿。video标签是边加载边播放,这样造成了视频播放几秒后会加载视频导致视频卡住,影响实际效果。

查询到的解决方案是将mp4视频转换成m3u8视频流的格式进行播放,因此打算尝试一下。下面会分别介绍: 1、将mp4视频转换为m3u8视频流 2、前端如何播放m3u8视频

将mp4视频转换为m3u8视频流m3u8格式

m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。M3U文件是一个记录索引的纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。

方法/步骤

主流的方式是通过 m3u8格式视频转码工具 FFmpeg 来实现的

下载

从网上找了个百度云下载地址:https://pan.baidu.com/s/1dCK-TrOcUfC6pdKi2Y1e6g 提取码:2pdo

下载完解压后可以在bin文件嘉下看到三个可执行文件,配置好相应的环境变量后即可使用

环境变量配置

在cdm终端里输入:ffmpeg -version,如下图表示安装成功。

常用命令 ffmpeg 常用命令

分割视频 在视频所在的文件夹下打开cmd终端,输入:

ffmpeg -i video1.mp4 -profile:v baseline -level 3.0 -start_number 0 -hls_time 1 -hls_list_size 0 -f hls demo.m3u8

-i 指定输入的文件名

前端播放大视频卡顿的解决(m3u8视频流)(前端播放视频的插件)

-profile:v baseline 大概意思是档次转成基本画质,有四种画质级别,分别是baseline, extended, main, high,从低到高

-level 3.0 大概也是视频画质级别吧,基本上是从1到5,

-start_number 0 表示从0开始

-hls_time 1 标识每1秒切一个

-f hls 将视频转为hls格式

-hls_list_size 0 ,设置播放列表保存的最多条目,设置为 0 会保存有所片信息,默认值为5。

其他的命令不清楚,需要什么功能,基本都可以百度到

成功后可以得到下面的文件 注意: ts文件的切割还与两个帧之间的时间间隔有关,任何一个ts分片的第一帧必须是1帧,否则无法进行播放。因此有时候并不会按照指定的时间进行分割 解决: 既然知道要1秒产生一个ts分片,那就必须产生切片的过程中,强制一秒中产生一个关键帧。设置关键帧间隔,设置间隔为 2 秒的参数如下:-force_key_frames "expr:gte(t,n_forced*2)“

ffmpeg -i video1.mp4 -force_key_frames "expr:gte(t,n_forced*2)" -profile:v baseline -level 3.0 -start_number 0 -hls_time 1 -hls_list_size 0 -f hls demo.m3u8

57秒的视频一共生产了30个片段,有可能我理解的还是有些问题,毕竟从来没用用过

如果有播放器的话,将m3u8这个文件拖到播放器里就可以进行播放了

前端播放

前端播放m3u8视频需要借助:video.js 和 videojs-contrib-hls.js

安装依赖

npm install --save video.jsnpm install --save videojs-contrib-hls

使用

import 'video.js/dist/video-js.css';import videojs from 'video.js';import 'videojs-contrib-hls';<video id="singleVideo" autoplay="autoplay" class="video-js vjs-default-skin"></video>this.singlePlayer = videojs('singleVideo',{ autoplay: true,// 自动播放 controls: true,// 控件显示 width: '440',// 视频框宽度 height: '264',// 视频框高度 preload: 'auto', //定义视频加载模式 loop:true, //是否循环播放});let res = 'http://61.175.121.73:83/pag/10.13.7.2/7302/33052182001320012936/0/MAIN/TCP/live.m3u8';if (res) { this.singlePlayer.src({ src: res, type: 'application/x-mpegURL' }); this.singlePlayer.play();}

video标签上添加的类video-js vjs-default-skin是 videojs上的样式,如果不添加会有显示问题。 videojs的属性和方法应该大部分都是与video标签对应的

效果图

问题

服务器上的视频在播放时有可能会报跨域,例如: 一般是nginx没有配置m3u8的文件格式,可以让运维人员看一下:nginx HLS m3u8播放视频跨域问题

本文链接地址:https://www.jiuchutong.com/zhishi/294586.html 转载请保留说明!

上一篇:js怎么实现倒计时效果(js怎么实现倒计时)

下一篇:vue:聊天对话框的实现(vue聊天系统)

  • PPTV网络电视界面乱码怎么办

    PPTV网络电视界面乱码怎么办

  • 5个神秘数字,让你立刻明白营销的这些定律!(最神秘的数字组合)

    5个神秘数字,让你立刻明白营销的这些定律!(最神秘的数字组合)

  • 荣耀magic3pro怎么显示电量百分比(荣耀magic3pro怎么清理垃圾)

    荣耀magic3pro怎么显示电量百分比(荣耀magic3pro怎么清理垃圾)

  • flipbudspro怎么连接第二个设备(flipbuds pro怎么配对)

    flipbudspro怎么连接第二个设备(flipbuds pro怎么配对)

  • 华为nova7 pro有防水功能吗(华为nova7pro有防蓝光吗)

    华为nova7 pro有防水功能吗(华为nova7pro有防蓝光吗)

  • 苹果如何给app上锁(苹果手机怎么给app)

    苹果如何给app上锁(苹果手机怎么给app)

  • 抖音被别人登录了怎么办(抖音被别人登录了有什么损失)

    抖音被别人登录了怎么办(抖音被别人登录了有什么损失)

  • 华为p10plus录屏设置(华为p10录制屏幕)

    华为p10plus录屏设置(华为p10录制屏幕)

  • ios已下载无法安装(iphone下载完成无法安装)

    ios已下载无法安装(iphone下载完成无法安装)

  • 华为手机怎么查看分辨率(华为手机怎么查使用了多长时间)

    华为手机怎么查看分辨率(华为手机怎么查使用了多长时间)

  • 苹果7扩容128g稳定吗(苹果7扩容128g后遗症)

    苹果7扩容128g稳定吗(苹果7扩容128g后遗症)

  • 手机p站解除年龄限制(手机p站怎么解禁)

    手机p站解除年龄限制(手机p站怎么解禁)

  • outlook附件大小限制多少(outlook附件大小限制怎么修改)

    outlook附件大小限制多少(outlook附件大小限制怎么修改)

  • 淘宝收到货后怎么退货退款(淘宝收到货后怎么申请退款流程)

    淘宝收到货后怎么退货退款(淘宝收到货后怎么申请退款流程)

  • 苹果京东自营旗舰店是苹果授权的吗(苹果京东自营旗舰店)

    苹果京东自营旗舰店是苹果授权的吗(苹果京东自营旗舰店)

  • 华为nova6手机发烫怎么回事(华为nova6手机发热正常吗)

    华为nova6手机发烫怎么回事(华为nova6手机发热正常吗)

  • 魅族17pro支持防水吗(魅族17有防闪烁吗)

    魅族17pro支持防水吗(魅族17有防闪烁吗)

  • 手机突然开不开机了,充电也没反应(手机突然黑屏开不了机)

    手机突然开不开机了,充电也没反应(手机突然黑屏开不了机)

  • 芒果tv的电视端叫什么

    芒果tv的电视端叫什么

  • 探探一天能滑多少人(探探一天滑多少人)

    探探一天能滑多少人(探探一天滑多少人)

  • 超感光徕卡四摄是什么意思(超感光徕卡四摄未来影像)

    超感光徕卡四摄是什么意思(超感光徕卡四摄未来影像)

  • 虎牙公会有什么用(虎牙公会有什么好处)

    虎牙公会有什么用(虎牙公会有什么好处)

  • qq语音发不出去怎么回事(qq语音发不出去显示禁止怎么办)

    qq语音发不出去怎么回事(qq语音发不出去显示禁止怎么办)

  • 乐视手机怎么开空调(乐视手机怎么开启悬浮球)

    乐视手机怎么开空调(乐视手机怎么开启悬浮球)

  • 微信号被冻结怎么办(微信号被冻结怎么解封)

    微信号被冻结怎么办(微信号被冻结怎么解封)

  • xsmax有单卡吗(苹果xs+max有单卡版本的吗?)

    xsmax有单卡吗(苹果xs+max有单卡版本的吗?)

  • 四分之三怎么打(手机上怎么输入分数)

    四分之三怎么打(手机上怎么输入分数)

  • 基于随机森林的特征选择-降维-回归预测——附代码(基于随机森林的气温预测)

    基于随机森林的特征选择-降维-回归预测——附代码(基于随机森林的气温预测)

  • 税收分类方法表格
  • 红字发票注明的进项税额转出
  • 不征税收入有哪些增值税
  • 广东税务师报名条件
  • 财政的税收
  • 开票人和复核人收款人能是一个人吗
  • 缴纳以前年度所得税在今年汇算清缴怎么填报
  • 公司收据收款人怎么写
  • 个体户定额征收标准
  • 销售成本是负债吗
  • 公益性捐赠的税收优惠政策
  • 拖欠安装费
  • 个人出租不动产税率
  • 购车税务发票
  • 2016年的发票可以用到什么时候
  • 销售,购买
  • 结构化存款是什么
  • 企业改制后职工有几项补偿
  • 民间非营利组织会计制度最新版
  • 建筑公司异地预缴增值税
  • 小规模纳税人销售自己使用过的物品
  • 我们无法创建新的分区,也找不到现有的分区 贴吧
  • 企业季度税如何申报
  • 汽车行业返利账务处理
  • php file_exists 检查文件或目录是否存在的函数
  • 企业转让要收多少费用
  • 对公账户收款
  • 公众号 隐藏文章
  • 基于thinkphp的学园招聘系统项目源代码
  • 股权置换和股权转让
  • 车间装修预算表
  • 视同销售的增值税怎么申报
  • 房屋出租 交税
  • 出纳各种费用如何归类
  • 帝国cms灵动标签 PHP变量文章ID加减1
  • 企业收利息会计科目
  • 可以单独设置一个人三天可见吗
  • 提供加工修理修配劳务包含哪些
  • 金融放贷工作具体做什么
  • 定金与订金不同
  • 出口退税申报的报关单无电子信息
  • 复利现值系数和复利终值系数
  • 汽车加油费属于交通费用吗
  • 质量问题扣货款会计怎么处理
  • 油票发票在报销单上怎么填写
  • 试算平衡表的编制方法
  • 货款已付对方不发货的案例分析
  • 商业企业进货会计分录
  • mysql innode
  • JDBC探索之SQLException解析
  • MySQL修改root账号密码的方法
  • mysql 数据库
  • mysql的日志
  • navicat远程连接oracle
  • mysql嵌套查询联表查询
  • ubuntu20.04怎么安装
  • win8破解密码开机密码
  • ubuntu好看的字体
  • linux如何列出所有用户
  • WIN7系统如何设置自动关机
  • win7取消ch
  • win8纯净版32位
  • win102021年1月大更新
  • javascript date()
  • javascript标准
  • perl-v
  • 菜鸟app兼职
  • jquery库文件
  • node.js ts
  • javascript基础入门教程
  • Python常见格式化字符串方法小结【百分号与format方法】
  • jquery 插件编写
  • 国家税务总局关于进一步优化营改增纳税服务工作的通知
  • 申报个税身份证验证不通过
  • 浙江应急管理厅焊工证查询
  • 山东省税务局网站首页
  • 交完车船税后地税局都给什么
  • 滴灌带设备一套多少钱
  • 广东省国家税务总局班子成员
  • 收取广告费收入怎么入账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设