m3u8视频格式简介css
鉴于 m3u8 以上特色,没法简单经过视频连接下载,需使用特定下载软件。html
【解析下载】输入 m3u8 连接,点击下载视频。
【跨域复制代码】当资源出现跨域限制时,点击复制页面代码,在视频页面的控制台输入。将工具注入到视频页面中,解决跨域问题。
【从新下载错误片断】当部分视频片断下载失败时,点击该按钮,从新下载错误片断。
【强制下载现有片断】将已经下载好的视频片断强制整合下载。能够提早观看已经下载的片断。该操做不影响当前下载进程。
【片断Icon】对应每个 .ts 视频片断的下载状况。「灰色」:待下载,「绿色」:下载成功,「红色」:下载失败。点击红色 Icon 可从新下载对应错误片断。vue
找到目标m3u8文件,查看文件内容,是否符合格式。git
【没法下载,没有显示片断Icon】github
【下载后的视频资源不可看】ajax
【下载并解析 m3u8 文件】算法
【队列下载 ts 视频片断】chrome
xhr.responseType = 'arraybuffer'
【组合 ts 视频片断】json
const fileBlob = new Blob(fileDataList, { type: 'video/MP2T' })
【自动下载】跨域
URL.createObjectURL(fileBlob)
a.click()
。完成文件自动下载。【整合及自动下载】
// 下载整合后的TS文件 downloadFile(fileDataList, fileName, fileType) { this.tips = 'ts 碎片整合中,请留意浏览器下载' const fileBlob = new Blob(fileDataList, { type: 'video/MP2T' }) // 建立一个Blob对象,并设置文件的 MIME 类型 const a = document.createElement('a') a.download = fileName + '.' + fileType a.href = URL.createObjectURL(fileBlob) a.style.display = 'none' document.body.appendChild(a) a.click() a.remove() },
是的,涉及新知识点的部分只有上面一小段,其余的都是 JS 的基础应用。
除了 vue.js 文件,本工具代码均包含在 index.html 文件里面。包括换行,一共 540 行代码,其中 css 样式 190 行,html 标签 30 行。JS 逻辑代码 300 行。
罗列这些代码量只是想代表,本工具运用到的都只是 JS 的常见知识,并不复杂。鼓励你们多尝试阅读源码,其实看源码并无想象中的那么困难。