位置: IT常识 - 正文

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

发布时间:2024-01-13
前端播放大视频卡顿的解决(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聊天系统)

  • 怎么开启苹果手机免打扰模式(怎么开启苹果手机siri唤醒)

    怎么开启苹果手机免打扰模式(怎么开启苹果手机siri唤醒)

  • 沈腾地图语音在哪里有(沈腾地图播报)

    沈腾地图语音在哪里有(沈腾地图播报)

  • 荣耀x10max是升降摄像头的吗(荣耀x10手机是升降摄像头吗)

    荣耀x10max是升降摄像头的吗(荣耀x10手机是升降摄像头吗)

  • 苹果6屏幕老化发黄解决办法(苹果6屏幕老化发红)

    苹果6屏幕老化发黄解决办法(苹果6屏幕老化发红)

  • 被永久冻结的qq还有办法补救吗(被永久冻结的QQ号怎么注销)

    被永久冻结的qq还有办法补救吗(被永久冻结的QQ号怎么注销)

  • apple pay有什么用(apple pay干嘛用的)

    apple pay有什么用(apple pay干嘛用的)

  • 闲鱼支持花呗吗(闲鱼支持花呗吗是真的吗)

    闲鱼支持花呗吗(闲鱼支持花呗吗是真的吗)

  • 富士xt30上市时间

    富士xt30上市时间

  • vivox21i和x21a有什么区别(vivox21和x21a和x21i有什么区别)

    vivox21i和x21a有什么区别(vivox21和x21a和x21i有什么区别)

  • 淘宝不包邮产品退货要扣除运费么(淘宝不包邮产品退货退运费吗)

    淘宝不包邮产品退货要扣除运费么(淘宝不包邮产品退货退运费吗)

  • 路由器mtu是什么意思(路由器 mtu)

    路由器mtu是什么意思(路由器 mtu)

  • cad面域快捷键(cad相似选择快捷键)

    cad面域快捷键(cad相似选择快捷键)

  • 苹果手机广角怎么开(苹果手机广角怎么拍)

    苹果手机广角怎么开(苹果手机广角怎么拍)

  • 飞行模式怎么关闭(苹果飞行模式怎么关)

    飞行模式怎么关闭(苹果飞行模式怎么关)

  • 华为m6可以插手机卡吗(华为m6能插sd卡吗)

    华为m6可以插手机卡吗(华为m6能插sd卡吗)

  • ic卡能复制id卡吗(id卡能复制nfc吗)

    ic卡能复制id卡吗(id卡能复制nfc吗)

  • 苹果11双摄像头旁边的孔有啥用(苹果11双摄像头用法)

    苹果11双摄像头旁边的孔有啥用(苹果11双摄像头用法)

  • 苹果11只能设置一个面容吗(苹果只能设置一个人的面容吗)

    苹果11只能设置一个面容吗(苹果只能设置一个人的面容吗)

  • vue怎么调整时长(vue时长怎么设置)

    vue怎么调整时长(vue时长怎么设置)

  • u盘泡水后快速处理的办法(u盘泡水里了还能用吗)

    u盘泡水后快速处理的办法(u盘泡水里了还能用吗)

  • 快手通讯录删了为什么还会显示(快手通讯录好友删了为什么还会出来)

    快手通讯录删了为什么还会显示(快手通讯录好友删了为什么还会出来)

  • pptx中quicktime不可用

    pptx中quicktime不可用

  • 手机打不开视频怎么回事(苹果手机打不开视频)

    手机打不开视频怎么回事(苹果手机打不开视频)

  • 您拨打的电话正在通话中是什么意思(您拨打的电话正忙是被拉黑了吗)

    您拨打的电话正在通话中是什么意思(您拨打的电话正忙是被拉黑了吗)

  • 苹果x应用商店怎么打不开(苹果应用商店在哪)

    苹果x应用商店怎么打不开(苹果应用商店在哪)

  • 怎样删除拼多多订单记录(怎样删除拼多多评价记录)

    怎样删除拼多多订单记录(怎样删除拼多多评价记录)

  • vivox27怎么强制关机(vivox27怎么强制关机重启)

    vivox27怎么强制关机(vivox27怎么强制关机重启)

  • 一文看懂预训练和自训练模型(预训练的目的)

    一文看懂预训练和自训练模型(预训练的目的)

  • 人工费用与制造成本区别
  • 营业外支出影响利润
  • 企业上缴税费总额怎么算
  • 专票小数点没打印齐能用吗
  • 旅游业一般纳税人
  • 购进电脑怎么折旧
  • 企业所得税季报是全年累计吗
  • 汇票 到期
  • 预付房租发票未到分录
  • 固定资产转为投资性房地产折旧怎么算
  • 预缴的企业所得税可以扣除吗
  • 个人非货币性资产出资 个人所得税
  • 个人所得税多缴了可以退回吗
  • 大中小型企业标准划分表
  • 公司减少注册资本的程序
  • 劳务外包公司代发工资能正常发吗
  • 股份转让的溢价是什么意思
  • 商业银行贷款的流动性与效益性成正比
  • 我的初级备考经验------极限挑战,超越自我
  • 1697509110
  • 跨省银行承兑汇票可以接受吗
  • 建筑完税怎么计算
  • 王者荣耀中墨子的最强出装
  • 出口货物收汇核销流程
  • 子公司接受母公司捐赠的会计处理
  • php url编码转换
  • mce是什么文件格式
  • el-cascader数据渲染时不出现文字
  • 培训费收入交什么税
  • 金融机构通过
  • 彩石湖公园门票
  • 现金折扣成本变动额
  • CLIP模型原理
  • 努沙杜瓦酒店
  • 购买股票的佣金计入
  • 票据贴现税务处理
  • java web开发实例大全
  • 收到预付购货款
  • 行政单位核销其他应付款分录
  • 送货运输费用税率
  • mysqlbinlog -vvv
  • mongodb4.0安装教程
  • 附有销售退回条件的商品销售
  • 企业所得税退税会计分录
  • 出口货物退货如何入账
  • 住房补贴需要交个税吗
  • 专项储备 科目
  • 将固定资产转为投资性房地产账务处理
  • 建设期利息有哪些
  • 本月未过账的凭证怎么写
  • 营改增之后账务怎么处理
  • 年底销项税额和进项税额要转出吗
  • 未分配利润高怎么解释
  • 小型便利店靠什么进行营利
  • 阿里云安装apache
  • Windows 2008 R2的C盘空间不够的解决方法
  • logo是什么文件夹
  • ubuntu和windows哪个流畅
  • linux nohup命令详解
  • Linux JDK,TOMCAT安装及环境设置
  • window7截图工具无法使用
  • ubuntu20.0安装
  • win8.1怎么用
  • linux怎样过滤一个关键字
  • win10qq在哪里启动
  • w7升级w8.1
  • android app启动过程
  • dos强制删除文件命令
  • img引入图片
  • cocos creator rpg
  • opengl示例
  • echarts图表
  • js 不用var
  • unity多开同一个项目的方法
  • JavaScript小技巧整理
  • animate如何拖动图片
  • jabsorb笔记_几个小例子第1/2页
  • python语言及应用
  • 呼和浩特市契税2021年新规
  • 宝安区西乡税务所长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号