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

  • oppo手机正在运行的程序怎么设置(OPPO手机正在运行的服务)

    oppo手机正在运行的程序怎么设置(OPPO手机正在运行的服务)

  • 酷狗无损音质和标准音质差别大吗(酷狗无损音质和高品质有区别吗)

    酷狗无损音质和标准音质差别大吗(酷狗无损音质和高品质有区别吗)

  • 一体机开不了机是什么原因(phlips一体机开不了机)

    一体机开不了机是什么原因(phlips一体机开不了机)

  • 虚拟运营商有哪些(虚拟运营商有哪些大流量卡)

    虚拟运营商有哪些(虚拟运营商有哪些大流量卡)

  • 华为mate20微信视频怎么美颜

    华为mate20微信视频怎么美颜

  • 什么是直播电商(什么是直播电商中的人货场)

    什么是直播电商(什么是直播电商中的人货场)

  • 邮件撤回成功后对方还能看到吗(邮件撤回成功后对方还能看到吗outlook)

    邮件撤回成功后对方还能看到吗(邮件撤回成功后对方还能看到吗outlook)

  • 小米10青春版防水吗(小米10青春版防抖吗)

    小米10青春版防水吗(小米10青春版防抖吗)

  • 笔记本自带摄像头吗(笔记本自带摄像头无法使用)

    笔记本自带摄像头吗(笔记本自带摄像头无法使用)

  • 抖音消息怎么一键清空(抖音消息怎么一键已读)

    抖音消息怎么一键清空(抖音消息怎么一键已读)

  • 对方微信朋友圈一条横线是什么意思(对方微信朋友圈屏蔽我了,怎么查看)

    对方微信朋友圈一条横线是什么意思(对方微信朋友圈屏蔽我了,怎么查看)

  • 美团退款红包退吗(美团 退款 红包)

    美团退款红包退吗(美团 退款 红包)

  • 苹果手机为什么微信视频过来不显示(苹果手机为什么无线局域网打不开)

    苹果手机为什么微信视频过来不显示(苹果手机为什么无线局域网打不开)

  • 京东怎么恢复货到付款(怎样恢复京东)

    京东怎么恢复货到付款(怎样恢复京东)

  • 微信发出的图片怎么销毁对方看不到(微信发出的图片如何让他失效打不开)

    微信发出的图片怎么销毁对方看不到(微信发出的图片如何让他失效打不开)

  • 国产操作系统能不能安装到目前的电脑(国产操作系统能打败微软吗)

    国产操作系统能不能安装到目前的电脑(国产操作系统能打败微软吗)

  • xs max怎么关机(iphone xs max怎么关机)

    xs max怎么关机(iphone xs max怎么关机)

  • 邀请加群失败怎么回事(邀请加群失败怎么办)

    邀请加群失败怎么回事(邀请加群失败怎么办)

  • 太极app到底怎么用(太极app咋用)

    太极app到底怎么用(太极app咋用)

  • 蚂蚁森林怎么捐赠能量(蚂蚁森林怎么捐能量)

    蚂蚁森林怎么捐赠能量(蚂蚁森林怎么捐能量)

  • 微信7.0版本声音怎么设置(微信声音小的解决方法)

    微信7.0版本声音怎么设置(微信声音小的解决方法)

  • 苹果a1502是哪年出的(苹果a1502是哪年的)

    苹果a1502是哪年出的(苹果a1502是哪年的)

  • 苹果手机双卡的怎么设置只有一个卡使用(苹果手机双卡的信号是怎么显示的)

    苹果手机双卡的怎么设置只有一个卡使用(苹果手机双卡的信号是怎么显示的)

  • 华为手机有云服务吗(华为手机有云服务器吗)

    华为手机有云服务吗(华为手机有云服务器吗)

  • 怎么取消全民k歌vip自动续费(怎么取消全民k歌手机关联)

    怎么取消全民k歌vip自动续费(怎么取消全民k歌手机关联)

  • 小红书修改收货地址(小红书修改收货地址为什么不成功)

    小红书修改收货地址(小红书修改收货地址为什么不成功)

  • 销售软件税目
  • 开票的预收款怎么处理
  • 安防视频监控工程项目
  • 个税申报表中的基本养老保险怎么填
  • 资产负债表的累计折旧期末数怎么填
  • 公司筹建期间可以多久
  • 兼职人员怎么申报工资
  • 销售货物产生的运费如何开票
  • 存货的加工成本指的是加工过程中发生的追加费用
  • 其他应付款转入营业外收入
  • 资产负债表应交税费从哪取数
  • 其他公司归还货款会计分录
  • 房地产公司要做数据分析吗
  • 进项票不足
  • 年末会计做账怎样少交企业所得税呢?
  • 增值税附加税可以抵扣吗?
  • 印花税股权转让计税依据
  • 母子公司划转房产怎么办
  • 审计报告的二维码扫出来是什么
  • 债转股的税收政策
  • 收购公司款项的支付是利好还是利差
  • 企业转让库存股,应按实际收到的金额
  • 其他综合收益怎么来的
  • 小商业企业应交所得税
  • 会计档案的保管期限是从什么算起
  • 公司抵押贷款的担保人
  • mom.exe是什么进程
  • win7bios网络启动
  • 项目部可以直接给工人结账吗
  • 男人喜欢什么样的女人最容易动心
  • 生产企业成本会计难吗?
  • php判断字符串是否存在
  • cicd框架
  • 手把手教你使用opc
  • 购买软件多大金额算违法
  • svn命令行拉取代码
  • 劳务费过账
  • 织梦怎么建站
  • 企业并购的主要特征是a扩大企业规模
  • 企业合并属于非企业吗
  • sql server安装出现值不能为null
  • 景点门票做什么科目
  • 买一赠一是什么促销方式
  • 小规模不开票怎么做账
  • 定期定额征收和查账征收的区别
  • 价外费用含不含税
  • 其他应付款结转收入的条件
  • 企业技术服务费有税前列支限额吗
  • 利润所得税费用
  • 实收资本印花税属于什么税目
  • 代缴社保会计分录
  • 大额往来款项的认定
  • 企业办理土地证需要哪些资料
  • 一条的句子怎么写
  • XP系统怎么设置双屏幕
  • auepuc.exe是什么软件
  • win8显示桌面图标
  • win10无法收到wifi
  • winxp开启远程桌面连接
  • 离线安装macos
  • linux中ctrl+c
  • win7无法打开任何软件程序
  • cocos2dx4.0教程
  • javascript学习指南
  • python输出1-100
  • perl 文件
  • 安装两个linux
  • mare的用法
  • vue 父子组件通信
  • shell中的括号
  • mono为什么不能用了
  • 工作笔记都写什么内容
  • Android事件处理模型
  • android事件处理方式有几种
  • android按钮怎么放置在下方
  • javascript的核心组成部分
  • 成都市电子税务局网上申报
  • 印花税由哪方缴纳
  • 诚信励志语录经典短句
  • 资源税是对在我国
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设