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

  • 微信视频号怎么将视频号设置私密账号(微信视频号怎么设置可见范围)

    微信视频号怎么将视频号设置私密账号(微信视频号怎么设置可见范围)

  • 荣耀X30i怎么设置人脸解锁(荣耀X30i怎么设置红包提醒)

    荣耀X30i怎么设置人脸解锁(荣耀X30i怎么设置红包提醒)

  • 红米k40Pro是屏幕指纹吗(红米k40pro屏幕材质)

    红米k40Pro是屏幕指纹吗(红米k40pro屏幕材质)

  • 小米手环4nfc版支持门禁卡吗(小米手环4nfc版使用教程)

    小米手环4nfc版支持门禁卡吗(小米手环4nfc版使用教程)

  • 苹果手机老是闪退怎么回事(苹果手机老是闪退怎么修复)

    苹果手机老是闪退怎么回事(苹果手机老是闪退怎么修复)

  • 小米10后盖是玻璃的吗(小米10后盖玻璃多少钱)

    小米10后盖是玻璃的吗(小米10后盖玻璃多少钱)

  • 苹果小圆点不见了原因(苹果小圆点不见了怎么弄)

    苹果小圆点不见了原因(苹果小圆点不见了怎么弄)

  • 补帧可以提高画质吗(补帧有用吗)

    补帧可以提高画质吗(补帧有用吗)

  • 永久封号充值的钱能退回吗(永久封号充值的钱怎么退)

    永久封号充值的钱能退回吗(永久封号充值的钱怎么退)

  • 电脑屏幕亮了但是打不开怎么回事(电脑屏幕亮了但是不显示画面)

    电脑屏幕亮了但是打不开怎么回事(电脑屏幕亮了但是不显示画面)

  • 有两个微信号怎么同时登录(有两个微信号怎么登录旧的微信号)

    有两个微信号怎么同时登录(有两个微信号怎么登录旧的微信号)

  • 华为mate20红灯一直亮怎么回事(华为mate20pro红灯)

    华为mate20红灯一直亮怎么回事(华为mate20pro红灯)

  • 滴滴一定要按导航走吗(滴滴必须按导航开吗)

    滴滴一定要按导航走吗(滴滴必须按导航开吗)

  • vivo手机怎么把字体变大(vivo手机怎么把旧手机传到新手机)

    vivo手机怎么把字体变大(vivo手机怎么把旧手机传到新手机)

  • 手机蓝牙怎么连接汽车蓝牙导航(手机蓝牙怎么连接不上)

    手机蓝牙怎么连接汽车蓝牙导航(手机蓝牙怎么连接不上)

  • 小米6xvolte在哪里设置

    小米6xvolte在哪里设置

  • 苹果11电话卡怎么插(苹果11电话卡怎么放入卡槽)

    苹果11电话卡怎么插(苹果11电话卡怎么放入卡槽)

  • 怎么用微信发大文件(怎么用微信发大于1g的文件)

    怎么用微信发大文件(怎么用微信发大于1g的文件)

  • 苹果x黑色掉漆能补吗(iphone x黑色掉漆)

    苹果x黑色掉漆能补吗(iphone x黑色掉漆)

  • 快手怎么登录(快手怎么登录别人的快手号)

    快手怎么登录(快手怎么登录别人的快手号)

  • 苹果xmax是双卡双待吗(苹果xmax双卡双待)

    苹果xmax是双卡双待吗(苹果xmax双卡双待)

  • vivoy93手机能计步吗(vivo手机怎么计时)

    vivoy93手机能计步吗(vivo手机怎么计时)

  • 私密空间文件夹在哪(私密空间文件夹怎么打开)

    私密空间文件夹在哪(私密空间文件夹怎么打开)

  • 快手怎么看自己的评论(快手怎么看自己等级)

    快手怎么看自己的评论(快手怎么看自己等级)

  • 织梦DEDECMS搜索页支持dede标签调用的修改教程(织梦cms官网)

    织梦DEDECMS搜索页支持dede标签调用的修改教程(织梦cms官网)

  • 进项税和销项税税率一样吗
  • 资本公积和盈余公积怎么提取
  • 广告设计要交文科生吗
  • 工程图纸设计费用收费标准
  • 财务费用属于什么科目借贷方向
  • 工业企业总产值的计算是以什么为主体
  • 公司单位性质怎样填写
  • 差额发票和全额发票的税率
  • 只有税控盘没有报税盘
  • 赠品折扣计算法
  • 新申请的增值税怎么申报
  • 通行费机打发票查询
  • 请问给员工报销怎么报
  • 消费金融服务要交税吗
  • 核算错误和重分类错误
  • 企业支出的资产包括哪些
  • 公账提现到个人账户多久到账
  • 政府装修补贴政策
  • 没有银行回单可以用付款凭证
  • windows 10如何清除联网记录
  • 职工福利费和职工薪酬的区别
  • 新版edge浏览器兼容ie
  • 9个点的税率有哪些
  • 鸿蒙系统开发人员选项
  • 如何清除上网记录?
  • cpu版本的pytorch可以运行LSgan嘛
  • 企业收到的保险理赔款会计分录
  • element-ui表格
  • 纳税人代扣代缴
  • 企业发放误餐补助需要票据吗
  • 外汇返佣金
  • easyui表格分页
  • 收到投资款的会计科目怎么入账
  • service运行命令
  • php服务端开发教程
  • apdl命令流手册下载
  • 小企业会计准则会计科目表
  • 转账不同银行同城转账手续费多少
  • Python中如何定义一个变量
  • 劳务公司怎么申请办理
  • 免税票如何做会计分录
  • 差旅费报销可以直接从公账转到个人账户吗
  • mysql中的外键的定义
  • mongodb导入数据三种方式
  • mongodb如何分片
  • 会计和税法折旧年限不相同
  • 少数股东权益贷方表示什么意思
  • 跨年度退货
  • 购买理财收入计入什么科目
  • 公司买车车辆购置税怎么交钱
  • 会计制度和会计准则科目转换
  • 薪金的定义
  • 主营业务成本与其他业务成本的区别
  • 跨年冲红发票账务处理需要调整申报表吗
  • 账面银行存款余额与实际余额不符
  • 原始凭证丢了判刑吗
  • sqlserver2000数据库安装教程
  • mysql5.7最新版
  • mysql explain的用法(使用explain优化查询语句)
  • 如何将windows安装到u盘
  • centos安装详细
  • ktpcntr.exe
  • win7系统连接VPN失败时提示错误代码721的故障分析及解决方法
  • 苹果电脑mac设备怎么删除
  • win10预览版和正式版区别
  • qtaet2s.exe - qtaet2s是什么进程 有什么用
  • linux查看磁盘io负载
  • 延长药品使用时间的方法
  • ExtJS4 组件化编程,动态加载,面向对象,Direct
  • 计算机网络设计
  • 创建ie浏览器
  • Node.js中的全局变量有哪些
  • cmd怎么复制上一条命令快捷键
  • jquery创建表格
  • python利用matplotlib库绘制六边形
  • 金融商品转让都包括什么
  • 无锡医疗保险缴费比例
  • 献完青春献终身 献完终身献子孙 关系户
  • 杨浦区办理健康证地点
  • 南京国税局长是谁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设