前端播放m3u8格式视频

article/2025/9/15 16:18:00

m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。

m3u8格式的视频是将文件分成一小段一小段的ts文件,播放完一个在播放下一个,由于每次请求的ts文件都很小,所以基本可以做到无延时播放。目前WEB上主流的直播方案主要是HLS和RTMP,移动端主要是HLS,PC端主要是RTMP。

HLS是苹果推出的,移动端不管是IOS还是Android都天然支持HLS协议,直接在h5页面直接配置即可使用;PC端只有safari浏览器支持,其他浏览器均不支持。

需要借助hls插件,可以用video.js和videojs-contrib-hls.js。video.js是非常好用的插件

type:application/x-mpegURL // 告诉videojs,这是一个hls流

HLS

转:前端播放m3u8格式视频 - 简书

Hls.js 使用文档 - 掘金

GitHub - video-dev/hls.js

1、使用npm安装hls.js或者外部引入;

npm install --save hls.js
 <script src="https://cdn.jsdelivr.net/npm/hls.js@1.2.7/dist/hls.js"></script>

2、使用

<template><div class="page"><video controls id="video" autoplay="autoplay"><sourcetype="application/x-mpegURL"></video>
</div>
</template>
<script lang="ts">
// import HLS from 'hls.js';
import {defineComponent} from "vue";
var HLS = (window as any).Hls;
let hls = new HLS()
//声明两个变量
export default defineComponent({methods: {//点击播放start(){if (HLS.isSupported()) {var video = <HTMLVideoElement>document.getElementById('video');hls.attachMedia(video);hls.loadSource('1.m3u8');hls.on(HLS.Events.MANIFEST_PARSED, () => {video.play();console.log("加载成功");});hls.on(HLS.Events.ERROR, (event, data) => {console.log("加载失败");});}}},mounted(){this.start();}
})
</script>

3、接口

    @RequestMapping("/video/{file}")public void video( HttpServletResponse response, @PathVariable("file") String file){try {file = dir + file;ServletOutputStream out = response.getOutputStream();byte b[] = readFileToByteArray(file); //一开始固定读取1024字节,导致前端解析一直错误,应该是文件多少字节就读取多少字节内容out.write(b);out.flush();} catch (Exception e){}}

转:Hls.js加载m3u8主流程源码解析 - 知乎

hls.js库根据功能划分为多个controller,如abr-controller、buffer-controller、stream-controller等,每个controller任务明确,通过事件监听派发的方式完成视频流的拉取、解析、播放等。

hls.js从初始化到加载m3u8,到选择不同码率加载对应ts文件,再解码ts转为mp4最终在浏览器播放,整个过程非常复杂

 主流程中有两个关键的定时器,第一个为StreamController启动用来轮询ts文件列表是否更新结束;第二个为在ts片加载过程中,用来轮询监听当前ts下载速率以动态调节不同的码率,hls.js初始默认码率为playlist的中间码率,如当前码率列表为360p、480p、720p,则初始默认取480p。

二、video.js + video.hls.js

官网:Home | Video.js Documentation

中文文档:video.js -HTML5 视频播放器

videojs中文文档详解

转:前端播放m3u8格式视频 - 十色 - 博客园

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>前端播放m3u8格式视频</title><!--https://www.bootcdn.cn/video.js/--><link href="https://cdn.bootcss.com/video.js/7.6.5/alt/video-js-cdn.min.css" rel="stylesheet"><script src="https://cdn.bootcss.com/video.js/6.6.2/video.js"></script><!--https://www.bootcdn.cn/videojs-contrib-hls/--><script src="https://cdn.bootcss.com/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js"></script>
</head>
<body><video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="1080" height="708" data-setup='{}'>    <source type="application/x-mpegURL"> //source 标签是设置静态资源的,如果是通过video的api动态设置文件,这标签不需要,不然会有一些问题</video>
</body>
<script>    // videojs 简单使用  var myVideo = videojs('myVideo',{bigPlayButton : true, textTrackDisplay : false, posterImage: false,errorDisplay : false,})myVideo.src([{src: "视频.m3u8",type: "application/x-mpegURL", // 告诉videojs,这是一个hls流},]);myVideo.play() // 视频播放myVideo.pause() // 视频暂停
</script>
</html>

或者直接使用video.js,会自动扫video元素加载

<!DOCTYPE html>
<html lang=""><head><link href="https://unpkg.com/video.js/dist/video-js.css" rel="stylesheet"><script src="https://unpkg.com/video.js/dist/video.js"></script></head><body><video class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="1080" height="708" data-setup='{}'> <source src="video.m3u8" type="application/x-mpegURL"></video></body>
</html>


http://chatgpt.dhexx.cn/article/y9gqoS70.shtml

相关文章

使用videojs播放m3u8视频

vue3使用videojs 播放m3u8格式视频 videojs是一个播放视频的js库&#xff0c;可以通过videojs结合videojs-contrib-hls实播放m3u8格式视频。流媒体传输协议(hls)定义了用来控制播放的m3u8文件 m3u8是一个文本文件(播放列表文件)&#xff0c;里面的内容就是被播放的音视频文件路…

网页播放 .m3u8 视频文件

1,使用 dplayer,官网上有例子 <link href"https://cdn.bootcss.com/dplayer/1.25.0/DPlayer.min.css" rel"stylesheet"> <script src"https://cdn.jsdelivr.net/npm/hls.jslatest"></script> <script src"https://cd…

m3u8

1.什么是m3u8&#xff1f; 要想知道什么是m3u8最直接最粗暴的方式是找几个m3u8文件拔出来看看就知道。(话说是驴子是马出来溜溜就知道…) 下面我给出了2个m3u8连接&#xff1a; 1.http://cache.utovr.com/201508270528174780.m3u8 2.http://devimages.apple.com/iphone/sam…

M3U8在线MP4格式

MP4 格式是目前来说较为通用的格式一般的播放器都支持播放&#xff0c;兼容性十分友好。 不过可能会在网站在线播放的时候接触到 m3u8 文件&#xff0c;这种文件格式无法直接下载播放&#xff0c;如果想要在电脑上播放这种视频&#xff0c;则需要把 m3u8 文件转换成mp4格式。 介…

M3U8在线播放

M3U8在线播放 前言一、思路二、代码框架1. 移动端适配2. 改变M3U8地址3. 设置videojs参数4. 增加快进等功能 写在最后 前言 当我们在网上愉快观影的时候&#xff0c;难免会遇到“M3U8格式”的视频。聪明的你应该也发现了&#xff0c;它是没办法直接播放的。它其实只是一个索引…

M3U8文件简介及在线播放器

m3u8文件格式 M3U8是Unicode版本的M3U&#xff0c;用UTF-8编码。“M3U” 和 “M3U8” 文件都是苹果公司使用的 HTTP Live Streaming&#xff08;HLS&#xff09; 协议格式的基础&#xff0c;这种协议格式可以在 iPhone 和 Macbook 等设备播放。m3u8文件其实是 HTTP Live Strea…

m3u8 播放视频

使用m3u8 播放视频&#xff1a; m3u8在线播放 只需放视频链接即可 链接 http://tool.liumingye.cn/m3u8/index.php 下载 m3u8 js css 链接&#xff1a;https://pan.baidu.com/s/1dTAX_1B6hrF50O92a6GxuQ 提取码&#xff1a;yyds 引入到 vue 在index.html里面或者npm 下载 引…

正弦波SFR分辨率测试卡

除非生产商对生产的手机相机有特殊功能要求&#xff0c;否则将采用基于标准的相机手机图像质量评估工作&#xff0c;也就是分辨率测试卡的形式进行相机手机图像质量测评。早期的分辨率测试卡是ISO12233&#xff0c;也是国际针对图像质量一种评估标准。但是随着时代的变化相机评…

Android手机分辨率测试程序

该程序可以测试出个人手机设备的分辨率&#xff0c;属于哪种dpi级别&#xff0c;以便开发参考。 main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android…

sfr测试图像清晰度 C 语言,SFR分辨率测试卡的不足和改进

分辨率测试卡使用SFR来测量手机相机清晰度主要源于它可以提供丰富的空间信息方面的潜力。当呈现SFR曲线(无论是从边缘还是正弦波)时&#xff0c;可能会有些令人费解&#xff0c;特别是当形状不是经典的低通功能时。这也可能是一些从业者放弃它的原因&#xff0c;有利于解释但不…

4k显卡视频测试软件,4K分辨率下体验测试

●4K分辨率桌面体验测试: 4K分辨率 1080P分辨率 所有桌面图标变为原来的1/4!可现实面积迅速增加,桌面可显示图标从原来的250个(25x10)变为1071个(51x20)!可显示的东西迅速增多。不过图标的变小使得鼠标非常不好点,这种情况下鼠标的DPI要足够的高,不然挪动距离会相当大,使…

web兼容性(分辨率)测试插件

web兼容性&#xff08;分辨率&#xff09;测试插件 Resolution Test插件 在谷歌浏览器扩展程序中下载即可 Resolution Test使用

软件测试常见分辨率测试,如何用imatest测分辨率 imatest软件测试分辨率图文教程...

imatest是什么软件&#xff1f;imatest怎么使用&#xff1f;imatest是一款专业的图像分析软件&#xff0c;具有强大的图像分析和处理功能&#xff0c;今天我就和大家聊一聊如何使用imatest软件测试分辨率。好了&#xff0c;话不多说&#xff0c;接下来就让我们一起去看看使用im…

测试-分辨率兼容测试

不努力&#xff0c;是会被合并同类项的。所以你要做那个被提取的公因式。 分辨率兼容测试 分辨率的定义 分辨率可以从显示分辨率与图像分辨率两个方向来分类。 显示分辨率(屏幕分辨率)是屏幕图像的精密度&#xff0c;是指显示器所能显示的像素有多少。由于屏幕上的点、线和面…

分辨率测试靶-标定显微镜、相机等光学系统的分辨率

分辨率测试靶 1. USAF 1951分辨率测试靶 1.1. 介绍1.2. 图上数字的含义1.3. 规律1.4. 计算 1.4.1. 线对1.4.2. 计算实例 1.5. 计算脚本 1. USAF 1951分辨率测试靶 1.1. 介绍 我们买的是这一款。是从麓邦买的,它实际上Thorlabs同款型号的高仿。 麓邦上面给的图片不对&#x…

图像分辨率测试ISO12233 - 2017中文翻译

译者序&#xff1a; 目前的摄像头分辨率的测试&#xff0c;大多遵循ISO 12233标准&#xff0c;最近下载一份英文版的文档&#xff0c;和大家一起分享&#xff0c;仅供学习使用。 目录 ISO 12233 Third Edition (2017-01) Foreword(前言) Introduction&#xff08;介绍&…

用什么软件测试电视分辨率,4k电视分辨率测试图

4k电视分辨率测试图是钱元凯编制的一款用于测试4K屏幕的图片&#xff0c;一共13张测试图 38402160分辨率&#xff0c;有效辨别你的电视是否支持4K&#xff0c;专业屏幕测试38402160&#xff0c;欢迎有需要的下载。 4k电视分辨率是多少 4K分辨率是指水平方向每行像素值达到或者接…

什么软件测试电脑分辨率,分辨率测试卡

“分辨率测试卡[1] ”又称为“分辨率解析卡”采用了国际标准的ISO12233解析度分辨率卡进行测试,采取统一拍摄角度和拍摄环境.分辩率的计算又使用了HYRes软件,分开垂直分辨率和水平分辨率两部分进行;ISO12233标准分辨率测试卡遵照12233的标准“摄影-电子照相画面-衡量方法&quo…

相机光学(零)——分辨率测试

&#xff08;1&#xff09;分辨率测试卡 1.测试光路 <1>反射式 优点&#xff1a;测试方便&#xff0c;普通的日光z灯或者白炽灯光源都可以测试 缺点&#xff1a;容易反光&#xff0c;受外界杂光干扰影响测试效果 实物&#xff1a; <2>透射式 优点&#xff1a;…

图像分辨率测试—imatest

一.测试光源环境 1.图卡测试背板选择黑色或者18%灰&#xff0c;减少炫光.。 2.左右反射光源箱以30-50为最佳照射角度。 二、指标测试—分辨率测试 1.评价镜头的两个重要指标&#xff1a;分辨率和反差. ①分辨率又称为解析力&#xff0c;解析度&#xff0c;实质镜头再现被…