html|本地实现浏览器m3u8播放器,告别网络视频卡顿

前言

       网络上经常是以m3u8文件传输视频流的 ,但是有时网络慢往往导致视频播放卡顿。于是我在想能不能先下载然后再播放呢?于是尝试下载然后实现本地播放m3u8视频。

正文

1.找到网络视频流的m3u8连接

一般在浏览器按F12就可以看到有请求视频流的连接。

图片

2.通过迅雷下载

复制链接到迅雷,新增下载任务,!!下载的时候设置好中文名字和选集(后面需要用到)。

图片

3.下载后的文件正常是可以在迅雷上播放

图片

4.实现在本地浏览器播放

5.播放器代码

index.html

<!DOCTYPE html><html lang="zh-CN" data-bs-theme="dark"><head>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    <head>        <title>HLS Video Player</title>    </head><body style="background-color: rgb(199, 195, 195);">    <video id="video" controls width="100%"></video>    <div>        <input type="text" id="myInput" placeholder="请输入名称">        <button onclick="OnPlay()">播放</button>    </div>    <div id="text-container">        <!-- 文本内容将被插入到这里 -->    </div>    <script src="hls.js"></script>    <script>        console.log(window.location.hostname + window.location.port);        //获取文件内容        document.addEventListener('DOMContentLoaded', function () {            fetch('./m3u8/name.txt')                .then(response => response.text())                .then(text => {                    document.getElementById('text-container').innerText = text;                })                .catch(error => {                    console.error('Error loading text file:', error);                    document.getElementById('text-container').innerText = 'Error loading text file';                });        });        function OnPlay() {            var inputValue = document.getElementById('myInput').value;            var video = document.getElementById('video');            var hls = new Hls();            console.log(window.location.hostname + ":" + window.location.port + "/m3u8/" + inputValue + "/index.m3u8");            hls.loadSource("http://" + window.location.hostname + ":" + window.location.port + "/m3u8/" + inputValue + "/index.m3u8/index.m3u8");            hls.attachMedia(video);            hls.on(Hls.Events.MANIFEST_PARSED, function () {                video.play();            });        }    </script></body></html>

hls.js

图片

源码下载链接

https://download.csdn.net/download/weixin_42401291/90108896

6.此时可以通过浏览器正常播放网络的m3u8视频

图片

但是还是网络视频不能播放本地的视频

7.我们需要用到IIS部署网页和转发m3u8视频流

部署后局域网内都是可以实现播放视频的

8.windos 10安装IIS

图片

图片

图片

勾选后点击确认安装

等待安装

9.打开IIS

图片

10.创建网站

右键创建网站

图片

选择index.html文件目录

图片

设置可以传输的文件格式

图片

新增MIME类型

.m3u8

application/x-mpegURL

图片

创建m3u8视频存放文件夹

复制之前下载的视频文件到文件夹中

执行生成名称列表脚本

图片

11.此时可以通过本机ip加端口访问播放器网页了

图片

  

图片

此时通过名字就可以播放视频了

同一个局域也是如此

最后

通过以上步骤已经完成实现本地播放m3u8视频,部署过程有什么疑问欢迎探讨。

UI优化后是不是就一个视频网站了?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交互开发---测量工具(适用VTK或OpenGL开发的应用程序)

简介&#xff1a; 经常使用RadiAnt DICOM Viewer来查看DICOM数据&#xff0c;该软件中的测量工具比较好用&#xff0c;就想着仿照其交互方式自己实现下。后采用VTK开发应用程序时&#xff0c;经常需要开发各种各样的测量工具&#xff0c;如果沿用VTK的widgets的思路&#xff0c…

VirtIO实现原理之数据结构与数据传输演示(4)

接前一篇文章:VirtIO实现原理之数据结构与数据传输演示(3) 本文内容参考: VirtIO实现原理——vring数据结构-CSDN博客 VirtIO实现原理——数据传输演示-CSDN博客 特此致谢! 一、数据结构总览 2. 相关数据结构 前文书介绍了《Virtual I/O Device (VIRTIO) Version 1.3…

【蓝桥杯每日一题】技能升级

技能升级 2024-12-10 蓝桥杯每日一题 技能升级 二分 题目大意 一个角色有 N 种可以增加攻击力的技能&#xff0c;对于第 i 个技能首次升级可以提升 A i A_i Ai​ 点攻击力&#xff0c;随后的每次升级增加的攻击力都会减少 B i B_i Bi​ 。升级 ⌈ A i B i ⌉ \lceil \frac{A…

uniapp -- 实现页面滚动触底加载数据

效果 首选,是在pages.json配置开启下拉刷新 {"path": "pages/my/document/officialDocument","style": {"navigationStyle":</

角色动起来

GitHub - LordLiang/DrawingSpinUp: (SIGGRAPH Asia 2024) This is the official PyTorch implementation of SIGGRAPH Asia 2024 paper: DrawingSpinUp: 3D Animation from Single Character Drawings

MySQL 时区参数 time_zone 详解

文章目录 前言1. 时区参数影响2. 如何设置3. 字段类型选择 前言 MySQL 时区参数 time_zone 有什么用&#xff1f;修改它有什么影响&#xff1f;如何设置该参数&#xff0c;本篇文章会详细介绍。 1. 时区参数影响 time_zone 参数影响着 MySQL 系统函数还有字段的 DEFAULT CUR…

【信息系统项目管理师】论文:论信息系统项目的整合管理

文章目录 正文一、制定项目章程二、指定项目管理计划三、指导与管理项目工作四、管理项目知识五、监控项目工作六、实施整体变更控制七、结束项目或阶段 正文 根据省自然资源厅的总体部署&#xff0c;XX市决定于2023年8月开始全市不动产登记系统建设&#xff0c;要求在2024年8…

漫谈前端:2025年框架是该选vue还是react?

相信很多前端小伙伴都有过纠结的时候&#xff0c;开始一个项目的时候是该选vue还是react。很多情况下&#xff0c;都是根据团队现有框架延续&#xff0c;或者是自身数量度。渐渐的公司组件和规范全基于某一种框架&#xff0c;虽然很爽但Allin难掉头。本文就浅浅的比较下vue和re…

导游现场面试需要注意的问题

今天给大家带来一些导游现场面试需要注意的问题&#xff0c;大部分的城市导游考试已经考完了&#xff0c;但是还有一些城市的十二月份才考&#xff0c;有需要的朋友们赶紧来看&#xff0c;有备无患。 01、做好充足准备 认真准备做好每个景点的讲解介绍&#xff0c;不要抱有侥幸…

SQL 查询中的动态字段过滤

这段代码是一个 SQL 查询中的动态字段过滤部分&#xff0c;使用了 MyBatis 的 标签和 标签。以下是逐步的解释&#xff1a; <!-- 动态字段过滤 --><if test"parameters ! null and parameters.size() > 0"><foreach collection"parameters&qu…

Java 中枚举的 toString 方法及其字段信息展示

在 Java 编程中&#xff0c;枚举&#xff08;enum&#xff09;是一种特殊的数据类型&#xff0c;用于定义一组固定的常量。枚举类型不仅限于简单的常量定义&#xff0c;还可以包含字段、方法以及构造函数&#xff0c;从而使其具备更强的表达能力。toString 方法是 Java 中所有对…

【ubuntu】将Chroma配置为LINUX服务

Chroma是一个轻量级向量数据库。既然是数据库&#xff0c;那么我希望它是能够长时间运行。最直接的方式是配置为service服务。 可惜官方没有去提供配置为服务的办法&#xff0c;而鄙人对docker又不是特别感冒。所以自己研究了下chroma配置为服务的方式。 系统&#xff1a;ubu…

Linux vi/vim 编辑器使用教程

Linux vi/vim 编辑器使用教程 引言 Linux 系统中的 vi 和 vim 是非常强大的文本编辑器&#xff0c;它们以其高效性和灵活性而闻名。vim 是 vi 的增强版&#xff0c;提供了更多的功能和改进的用户界面。本文将详细介绍 vi/vim 的基本用法&#xff0c;包括打开文件、编辑文本、…

PageHelper自定义Count查询及其优化

PageHelper自定义Count查询及其优化 文章目录 PageHelper自定义Count查询及其优化一&#xff1a;背景1.1、解决方法 二&#xff1a;利用反射判断请求参数是否有模糊查询2.1、分页不执行count2.2、思路2.3、代码示例 三&#xff1a;自定义COUNT查询SQL(只适用于单表)3.1、局限性…

TPAMI 2023:When Object Detection Meets Knowledge Distillation: A Survey

摘要 目标检测&#xff08;Object Detection&#xff0c;OD&#xff09;是计算机视觉中的一项关键任务&#xff0c;多年来涌现出了众多算法和模型。尽管当前 OD 模型的性能有所提升&#xff0c;但它们也变得更加复杂&#xff0c;由于参数规模庞大&#xff0c;在工业应用中并不…

ZED相机应用

下载SDK wget https://stereolabs.sfo2.cdn.digitaloceanspaces.com/zedsdk/3.6/ZED_SDK_Ubuntu18_cuda11.5_v3.6.5.run 安装 ./ZED_SDK_Ubuntu18_cuda11.5_v3.6.5.run skip_python 测试 cd /usr/local/zed/tools ls ZED_Calibration ZED_Depth_Viewer ZED_Diagnostic ZED_E…

农业园区气象站

农业园区气象站是一种专为农业生产和科研设计的气象监测设备&#xff0c;它集成了多种传感器和技术&#xff0c;用于实时、准确地监测和记录农业园区内的气象数据。以下是农业园区气象站的主要功能和用处&#xff1a; 一、主要功能 实时监测&#xff1a;农业园区气象站能够实时…

Unity3D项目为什么要使用FairyGUI

前言 Unity3D项目选择使用FairyGUI的原因是多方面的&#xff0c;主要涵盖性能优化、设计模式、编辑器支持、跨平台兼容性以及丰富的功能特性。以下是对这些方面的详细解析以及相关的代码实现。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一…

编译问题 fatal error: rpc/rpc.h: No such file or directory

在编译一些第三方软件的时候&#xff0c;会经常遇到一些文件识别不到的问题&#xff0c;这里整理下做个归总。 目前可能的原因有&#xff08;排序分先后&#xff09;&#xff1a; 文件不存在&#xff1b;文件存在但路径识别不了&#xff1b;…… 这次以常见的编译lmbench测试…

设计模式的艺术读书笔记

设计模式的艺术 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 创建的艺术创建型模式单例模式饿汉式单例与懒汉式单例的讨论通过静态内部类实现的更好办法 简单工厂模式工厂方法模式重载的工厂方法工厂方法的隐藏工厂方…