M3U8在线播放

article/2025/9/16 3:24:22

M3U8在线播放

  • 前言
  • 一、思路
  • 二、代码框架
    • 1. 移动端适配
    • 2. 改变M3U8地址
    • 3. 设置videojs参数
    • 4. 增加快进等功能
  • 写在最后

前言

当我们在网上愉快观影的时候,难免会遇到“M3U8格式”的视频。聪明的你应该也发现了,它是没办法直接播放的。它其实只是一个索引文件,根据它找到相应的.ts文件再进行播放。而这样做的好处,大概就是做多码率适配,保证视频播放的流畅性。有感兴趣的小伙伴可以参看这里—>M3U8文件格式。

我今天要干的事情呢,就是解决当我们找到一个M3U8地址之后如何方便的播放它~

一、思路

想要播放M3U8的方法有很多,比如浏览器插件 Native HLS PlayBack:
在这里插入图片描述
又比如现成的软件VLC播放器:
在这里插入图片描述
但是,这些都需要下载或者安装,当我换一个设备时就不是很方便嘛。于是,还有一种更好的方法:写一个M3U8在线播放的网站。
直接上图(分别为PC端和移动端):
M3U8在线播放网站-PC端
在这里插入图片描述

二、代码框架

利用js库videojs来对m3u8视频进行解析并播放。具体的代码,大家可以进去网站—>查看源码—>直接copy。
接下来主要是对其中涉及到的一些关键点进行说明,避免大家走弯路。

1. 移动端适配

为了使得网站在PC端和移动端都能很好地被展示,得在HTML中加入如下代码:

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" />

同时为了更好地区分出当前访问是移动端还是PC端,可以定义如下JS函数:

function IsPC(){var userAgentInfo = navigator.userAgent;var Agents = ["Android", "iPhone","SymbianOS", "Windows Phone","iPad", "iPod"];var flag = true;for (var v = 0; v < Agents.length; v++) {if (userAgentInfo.indexOf(Agents[v]) > 0) {flag = false;break;}}return flag;
}

2. 改变M3U8地址

通过在请求地址中加入一个play参数,“http://www.m3u8player.top/?play=xxxx.m3u8”来改变需要播放的m3u8地址。
在点击按钮后执行ChangeM3u8()函数,实现页面的跳转:

function ChangeM3u8(){var play = document.getElementById('video-url').valuevar url = location.hrefurl = url.split('?')[0]+'?play='+playlocation.href = url
}

识别请求URL中的play参数:

function QueryString(qs){var url = location.hrefurl = url.replace('?','?&').split('&')var re = ''for(var i=1;i < url.length;i++){if(url[i].indexOf(qs+'=')==0){re = url[i].replace(qs+'=','')break}}return re
}

3. 设置videojs参数

根据需要对videojs参数进行设置,如进度条、poster等:

var myVideo = videojs('myVideo',{bigPlayButton : true, textTrackDisplay : false, posterImage: false,errorDisplay : true,controlBar: {volumePanel:{inline:false}},playbackRates: [0.5,1,1.25,1.5,2],
},function(){this.on('error',function(){myVideo.errorDisplay.close()alert('小主,地址解析错误≥﹏≤ \n    请检查链接是否正确')}) 
}
)

4. 增加快进等功能

为了使得网站可以通过键盘按键来对视频进行控制,如左右键控制视频前进后退,上下键控制音量大小,空格键控制视频播放暂停。我增加了键盘监听事件:

var vol = 0.1;  //1代表100%音量,每次增减0.1
var time = 10; //单位秒,每次增减10秒
document.onkeyup = function (event) {//键盘事件var e = event || window.event || arguments.callee.caller.arguments[0];if (e && e.keyCode === 37) {// 按 向左键c_time = myVideo.currentTime()if(c_time-time > 0){myVideo.currentTime(c_time-time)}else{myVideo.currentTime(0)}return false;}else if (e && e.keyCode === 39) {// 按 向右键c_time = myVideo.currentTime()d_time = myVideo.duration();if(c_time+time > d_time){myVideo.currentTime(d_time)}else{myVideo.currentTime(c_time+time)}return false;}else if (e && e.keyCode === 38) {// 按 向上键c_volume = myVideo.volume()if(c_volume+vol > 1){myVideo.volume(1)}else{myVideo.volume(c_volume+vol)}return false;}else if (e && e.keyCode === 40) {// 按 向下键c_volume = myVideo.volume()if(c_volume-vol < 0){myVideo.volume(0)}else{myVideo.volume(c_volume-vol)}return false;}else if (e && e.keyCode === 32) {// 按 空格键if (myVideo.paused()){myVideo.play()}else{myVideo.pause()}return false;}}

写在最后

当然,还有许多东西可以做,可以去改进的。
所谓的“路遥遥其修远兮 吾将上下而求索”。

最后,感谢各位大大的耐心阅读~
慢着,大侠请留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)


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

相关文章

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;实质镜头再现被…

分辨率测试方法 ——TV line检测

目录 1、TV line检测 1-1、TV line检测概述 1-2、怎样使用TV line检测 1-3、测试验收标准 1-4、测试结果记录 1、TV line检测 1-1、TV line检测概述 TV line主要用于主观测试&#xff0c;总体来说没有一个具体的标准。大多数公司是以人的读取为标准。不同人的读取&#xff0c;…

Building Crosswalk For Windows

原文访问太慢&#xff0c;转载到这里方便访问。 Building Crosswalk For Windows Download and install Microsoft Visual Studio 2013. We do not support Visual Studio 2015 at the moment. Install Git For Windows from http://git-scm.com/download/win and make sure …

如何在Crosswalk上强制运行WebGL

如果你想在一个包含黑名单中GPU的设备上使用WebGL测试一个应用&#xff0c;这里存在一个可用的变通方法&#xff1a; 将--ignore-gpu-blacklist命令行选项传递到xwalk 二进制文件即可。 但是如果Crosswalk被当做本地库直接嵌入到应用中&#xff08;例如&#xff1a;使用Cross…

crosswalk代替webview

五步整合crosswalk内核浏览h5变高性能APP. crosswalk介绍就不提了。我这里提供5个步骤整合到android项目中去。 开发环境: Android Studio 1.build.gradle Module配制 repositories {maven {url https://download.01.org/crosswalk/releases/crosswalk/android/maven2} }depe…

Building a Crosswalk application

原文访问实在太慢&#xff0c;转载到这里方便访问。 Building a Crosswalk application Crosswalk is a runtime for HTML5 applications. This means that any existing HTML5 applications should run on Crosswalk, providing they already run in a modern browser (Chro…