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

  • 荣耀手机输入法在哪里设置(荣耀手机输入法怎么老是弹跳)

    荣耀手机输入法在哪里设置(荣耀手机输入法怎么老是弹跳)

  • office未激活可以用吗(office未激活可以用什么功能)

    office未激活可以用吗(office未激活可以用什么功能)

  • 网警能监听微信视频吗(网警能监听微信语音聊天)

    网警能监听微信视频吗(网警能监听微信语音聊天)

  • 卡贴机突然无服务怎么办(卡贴机无服务是什么情况)

    卡贴机突然无服务怎么办(卡贴机无服务是什么情况)

  • 1.0gbps是千兆网卡吗(1000mbps与1gbps)

    1.0gbps是千兆网卡吗(1000mbps与1gbps)

  • iphone11称重功能怎么用(iphone 11 称重功能怎么用)

    iphone11称重功能怎么用(iphone 11 称重功能怎么用)

  • iphone11防窥屏哪里设置(苹果11怎么开防窥探)

    iphone11防窥屏哪里设置(苹果11怎么开防窥探)

  • 静音模式怎么关(静音模式怎么关苹果手机)

    静音模式怎么关(静音模式怎么关苹果手机)

  • 电话号码注销后多久会被重新使用(电话号码注销后微信还能用吗)

    电话号码注销后多久会被重新使用(电话号码注销后微信还能用吗)

  • 微信运动点赞什么意思(微信运动点赞算性暗示吗)

    微信运动点赞什么意思(微信运动点赞算性暗示吗)

  • 登录授权失败是什么情况(登录授权失败是怎么回事)

    登录授权失败是什么情况(登录授权失败是怎么回事)

  • 淘宝开店需要多少保证金(淘宝开店需要多少费用标准)

    淘宝开店需要多少保证金(淘宝开店需要多少费用标准)

  • qq空间签名怎么看好友的(qq空间签名怎么设置)

    qq空间签名怎么看好友的(qq空间签名怎么设置)

  • 电脑中木马病毒的症状(电脑中木马病毒重装系统有用吗)

    电脑中木马病毒的症状(电脑中木马病毒重装系统有用吗)

  • 苹果bs机器是什么意思(苹果bs机到底是什么)

    苹果bs机器是什么意思(苹果bs机到底是什么)

  • iphone多屏互动在哪(ios多屏互动在哪)

    iphone多屏互动在哪(ios多屏互动在哪)

  • a1822是ipad什么型号(a1822是ipad什么型号屏幕尺寸)

    a1822是ipad什么型号(a1822是ipad什么型号屏幕尺寸)

  • wps文件怎么变成链接(wps文件怎么变成压缩包)

    wps文件怎么变成链接(wps文件怎么变成压缩包)

  • iphone11是双卡双待吗(iphone11是双卡双待吗怎么只有一个卡槽)

    iphone11是双卡双待吗(iphone11是双卡双待吗怎么只有一个卡槽)

  • 电脑qq发不出去文件(电脑qq发不出去消息怎么回事)

    电脑qq发不出去文件(电脑qq发不出去消息怎么回事)

  • ipnone的黑暗模式的设置(苹果手机 黑暗模式)

    ipnone的黑暗模式的设置(苹果手机 黑暗模式)

  • ipadair3上市时间中国(ipadair5)

    ipadair3上市时间中国(ipadair5)

  • 浅析青少年沉迷网络游戏的五大原因(分析青少年学生沉迷于网络的危害)

    浅析青少年沉迷网络游戏的五大原因(分析青少年学生沉迷于网络的危害)

  • cad中文意思(CAD中文意思是)

    cad中文意思(CAD中文意思是)

  • 房地产业所得税
  • 职工受到工伤后应该怎么办
  • 兼职劳务报酬需要发票吗
  • 附加税计税依据文件
  • 哪些进项税额不可以抵扣
  • 独立核算的分公司
  • 冲红退税流程
  • 出售投资性房地产的会计处理
  • 债务重组损益的计算公式
  • 进项交税吗
  • 促销赠品的会计处理
  • 企业停产或停业期间的费用包括
  • 缴纳土地出让金购买的土地是无形资产吗
  • 出口没有退税的发票
  • 超过五千
  • 外购的货物用于集体福利进项税额可以抵扣吗
  • 购货发票未到
  • 稿酬所得个人所得税税率
  • 什么叫项目所在地
  • 安装属于劳务报酬吗
  • 上年度所得税费用又退回来了,如何做账
  • 个人独资企业的特点
  • 超市买的日用品没消毒直接用
  • 保险公司买保险和银行买保险有什么区别
  • 跨省银行承兑汇票可以接受吗
  • 资产减值损失怎么处理
  • 兼职劳务报酬要交个税吗
  • 怎么查询企业收款账号
  • 没有劳动合同不给工资怎么办
  • 如何解决windows7台试电脑蓝屏问题
  • 海关进口增值税专用缴款书
  • 劳务费意思
  • 任务栏没反应怎么重启
  • win71
  • win 8和win 7有什么区别
  • phppost带cookie提交
  • 在计算应纳税所得额时,不允许作为税金项目
  • 个人所得税减免政策2023
  • 灵活就业养老保险退休后每月领多少钱
  • 利得是什么举个例子
  • React基础-JSX事件绑定-事件传参
  • 汽车租赁业务是否属于租赁服务
  • 弥补以前年度亏损报表怎么填
  • 织梦cms要钱吗
  • 织梦内容页模板修改
  • 辅助核算内容不完整
  • 百旺税控盘汇总上传如何检查
  • 销售价格含税的会计分录
  • 终止劳动合同赔偿金最晚多久发放
  • mysql 随机抽样
  • 无销项税能抵扣进项税吗
  • 定期定额户不能用专票
  • 企业所得税汇算清缴时间
  • 跨年发票如何做会计分录
  • 出口转内销怎么做
  • 一般纳税人开票流程
  • 生产过程中产品质量问题
  • 企业转让固定资产属于什么收入
  • 以前年度损益调整借贷方向
  • 资产收购一般税务处理
  • 净水设备配件计算方法
  • 公户网银转账操作流程
  • 怎么看发票的凭证号
  • 社保可以不计提账务处理
  • 要约收购期满
  • 现金日记账月末怎么结账图片
  • 模具的生产工艺流程
  • mysql如何优化sql查询
  • Win7 64位 mysql 5.7下载安装常见问题小结
  • mysql5717安装详细过程
  • linux系统中的一切都归结为
  • win7系统播放器在哪
  • win7声音方案下载
  • win7更新补丁80072efe
  • button按钮类型
  • javascript编程技术
  • 税务扣税账户余额不足
  • 辽宁取暖补贴发放标准2020
  • 民办学校需要交工会经费吗
  • 江西省国家税务局发票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设