前言
网络上经常是以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优化后是不是就一个视频网站了?