位置: 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聊天系统)

  • 允许不完美(允许不完美的事实例子素材)

    允许不完美(允许不完美的事实例子素材)

  • 华为nova10怎么开热点(华为nova10怎么开启开发者模式)

    华为nova10怎么开热点(华为nova10怎么开启开发者模式)

  • 单反是什么意思(单反是什么意思)(网名单反是什么意思)

    单反是什么意思(单反是什么意思)(网名单反是什么意思)

  • 苹果手机无线网怎么共享给别人(苹果手机无线网灰色无法启用)

    苹果手机无线网怎么共享给别人(苹果手机无线网灰色无法启用)

  • 如何取消拼多多发出的好友申请(如何取消拼多多订单)

    如何取消拼多多发出的好友申请(如何取消拼多多订单)

  • wps怎样画表格(wps怎样画表格线)

    wps怎样画表格(wps怎样画表格线)

  • word脚注怎么设置成带圈(word脚注怎么设置[1])

    word脚注怎么设置成带圈(word脚注怎么设置[1])

  • 开发者选项最小宽度是什么意思(开发者选项最小宽度默认)

    开发者选项最小宽度是什么意思(开发者选项最小宽度默认)

  • 微信实名和手机号不是同一个人可以吗(微信实名和手机卡必须一致吗)

    微信实名和手机号不是同一个人可以吗(微信实名和手机卡必须一致吗)

  • 苹果手机信号差是网络问题还是手机问题(苹果手机信号差怎么调设置)

    苹果手机信号差是网络问题还是手机问题(苹果手机信号差怎么调设置)

  • 微信被删除了还能发信息吗(微信被删除了还能看到对方换头像吗)

    微信被删除了还能发信息吗(微信被删除了还能看到对方换头像吗)

  • 进程实体由哪三个组成(进程实体由三部分构成,各部分的作用是什么)

    进程实体由哪三个组成(进程实体由三部分构成,各部分的作用是什么)

  • videocache是什么文件夹可以删除吗(videocache是什么文件夹可以删除手机)

    videocache是什么文件夹可以删除吗(videocache是什么文件夹可以删除手机)

  • gps卫星导航系统是什么(GPS卫星导航系统采用的坐标系)

    gps卫星导航系统是什么(GPS卫星导航系统采用的坐标系)

  • ip地址相同是不是黑客(ip地址 相同)

    ip地址相同是不是黑客(ip地址 相同)

  • 华为折叠屏供应商是哪家(华为折叠屏是哪个公司提供的)

    华为折叠屏供应商是哪家(华为折叠屏是哪个公司提供的)

  • 快手一天能点多少红心(快手一天能点多少关注)

    快手一天能点多少红心(快手一天能点多少关注)

  • 拼多多评价多久显示(拼多多评价多久更新)

    拼多多评价多久显示(拼多多评价多久更新)

  • 手机增值业务怎么取消(手机增值业务怎么开通)

    手机增值业务怎么取消(手机增值业务怎么开通)

  • 1050ti配什么cpu(1050ti配什么cpu能打永劫)

    1050ti配什么cpu(1050ti配什么cpu能打永劫)

  • mate30保时捷版什么时候上市

    mate30保时捷版什么时候上市

  • vivoiqoo电池能用多久(vivoiqoo电池是锂电池吗?)

    vivoiqoo电池能用多久(vivoiqoo电池是锂电池吗?)

  • 华为usb开发者调试怎么打开(华为打开usb调试有什么用)

    华为usb开发者调试怎么打开(华为打开usb调试有什么用)

  • MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议(mxnet github)

    MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议(mxnet github)

  • 加工企业税收优惠政策
  • 免缴车船税
  • 印花税应计什么科目?
  • 印花税计算是含增值税吗
  • 公司之间往来款需要开收据吗
  • 支付的工会经费现金流量项目是什么?
  • 其他业务收入冲应收账款
  • 现金流量怎么影响股票价值
  • 企业所得税季报可以更正吗
  • 退土增税后账务处理
  • 水电费的进项税额能抵扣吗
  • 查补以前年度所得税如何填写申报表
  • 补交以前年度增值税和滞纳金怎么开票
  • 电脑变成代码打不开怎么办
  • 个人两处以上所得经营所得怎么申报
  • 医院行业类别怎样填写
  • 客户不结款怎么办,出结款通知单
  • 劳务发票备注怎么填
  • 退关税怎么入账
  • 融资租赁抵押车辆逾期收车
  • 小规模纳税人金融服务税率
  • u盘启动器安装系统
  • win7系统中如何让未响应的程序继续运行
  • 无形资产增值税计入入账价值吗
  • 不动产投资包括哪些
  • 运输业什么进项税抵扣
  • 当月收到服务成本票下个月才开出发票
  • 销售折让负数发票如何入账
  • pull-hi
  • 存货出租的会计分录
  • php -i
  • 分批次付款
  • 借款利息还能再算利息吗
  • 同一控制下企业合并和非同一控制下企业合并的区别
  • 工程建设的项目的划分?
  • php qrcode生成二维码
  • php -a
  • 程序人是什么意思
  • thinkphp pathinfo
  • python中numpy数组和列表的区别
  • Joe是一款优雅功能强大的Typecho主题功能多上手快
  • 应收利息的会计处理方法
  • 运营费的税率
  • 企业贷款利息可以开发票吗
  • 公司账户收款退回怎么查
  • 小程序集合软件
  • 使用增值税发票违法吗
  • 电商行业退货退款流程
  • 变更税务法人需提供银行流水吗
  • 报账单大写金额负数填写方式
  • 厂房房租发票
  • 发票已经报送怎么处理
  • 哪些合同不用交社保
  • 银行扣结算卡年费合理吗
  • 河道管理费是附加税吗
  • 去年多摊销了怎么办
  • 服装厂委托物资怎么写
  • 财务软件无形资产有哪些
  • 哪些企业需要社工
  • 日记账对方科目代表什么意思
  • 一般企业报税的税种
  • 影响折旧的因素有哪三个方面
  • 离职员工代缴社保协议
  • 记账凭证烂了要紧吗
  • 请根据你的了解叙述c++的特点,c++对c有哪些发展
  • Fedora Core 8中yum设置
  • dsapi.exe是什么
  • apache安装步骤
  • win8免密码登录
  • linux系统文件修复命令
  • windows图片锁屏
  • 怎么快速
  • Python生成随机数
  • Node.js中的什么模块是用于处理文件和目录的
  • unity只执行一次的方法
  • 【mclin】手把手叫你在Eclipse里添加Android开发功能(附:完整离线版Android_SDK和Android_ADT下载)
  • python序列结构总结
  • 税控盘时钟异常去政务大厅那个窗口办理
  • 四川省一般纳税人资格证明
  • 公司迁税务所流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设