浏览器javascript 下载m3u8视频合成mp4

浏览器javascript 下载m3u8视频合成mp4m3u8download.jsdownloadm3u8URLtomp4下载m3u8视频合成一个完整的mp4源码:https://github.com/ccjy88/m3u8download.js功能m3u8downloader是在chrome浏览器中运行的html和js,用于下载m3u8视频。当视频链接比如是https://test-streams.mux.dev/x36xh…

大家好,又见面了,我是你们的朋友全栈君。

m3u8download.js

download m3u8 URL to mp4 下载m3u8视频合成一个完整的mp4
源码:https://github.com/ccjy88/m3u8download.js

功能

m3u8downloader是在chrome浏览器中运行的html和js,用于下载m3u8视频。
当视频链接比如是https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
m3u8download可以自动分析m3u8文件,下载多个ts文件,视频是AES-128加密的,
m3u8downloader进行解密后存为ts文件。并生成ffmepg用于concat的文件,可以
用ffmpeg命令合成一个完整的mp4文件。

特征

  • 输入m3u8 URL,下载分析m3u8。
  • 下载m3u8中的嵌套的playlist,下载相关的m3u8 URL.
  • 下载m3u8中的ts视频文件。
  • 支持ts视频AES-128解密
  • 生成ffmpeg命令需要的f.txt文件清单文件。
  • 方便用ffmpeg命令将所有ts文件按f.txt的次序合成一个mp4文件。
  • 提供python文件检查下载失败的ts,可在文件名callback中定义,只下载指定的缺失文件。

使用方法

将m3u8index.html和dist目录copy到nginx的html目录。
比如nginx安装在本地d:\nginx-1.80.0
运行deploy.cmd
copy m3u8*.html D:\nginx-1.18.0\html
xcopy /E /Y dist D:\nginx-1.18.0\html\dist

启动nginx,用chrome访问http://127.0.0.1/m3u8index.html, 在URL地址输入相关的m3u8地址。
比如搜到电影《极限逃生》,在Chrome浏览器中按F12,看Network中m3u8URL是
https://dbx5.tyswmp.com/20190910/oKHsD3EG/900kb/hls/index.m3u8,
把这个地址复制到m3u8index.html页面中,点击”下载”钮就可以。

chrome浏览器配置

下载目录设置:chrome://settings/downloads 比如为d:\downloads
自动下载设置: chrome://settings/content/automaticDownloads 必须允许http://127.0.0.1自动下载。

合成mp4的方法:

安装ffmepeg for windows
运行cmd。
cd d:\downloads
ffmpeg -f concat -i f.txt -c copy -y full.mp4
这样就把所有的ts文件生成一个完整的full.mp4。

错误处理

如果下载过程中f.txt文件中有而实际下载失败,可以运行python checktsfile.py
将缺失文件定义到m3u8index.html中的 check_list_cb函数中filelist,再下载一次缺失文件就可以。

编译方法:

cnpm install
cnpm run build

参数调整

m3u8index.html中options.maxthreadcount并行几个xhr同时下载ts文件。默认为5。
writetimeout为写入文件的定时器间隔,默认200毫秒。如果机器慢文件大这个值调大。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135463.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 木马编程-手把手带你进入木马的世界之木马编程

    木马编程-手把手带你进入木马的世界之木马编程一、基础知识1.1、木马病毒木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。木马会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的办法。只要把Form的Visible属性设为False,ShowInTaskBar设为False,程序运行时

    2022年6月29日
    30
  • VHDL 与 VerilogHDL 详细对比

    VHDL 与 VerilogHDL 详细对比序号区别之处VHDLVerilog1文件的扩展名不一样.vhd.v2结构不一样包含库、实体、结构体。ENTITY实体名ISPORT(端口说明)END实体名;ARCHITECTU…

    2022年9月21日
    0
  • php arcsin函数,excel如何计算反三角函数

    excel如何计算反三角函数Excel中计算反三角函数需要用到反余弦函数(ACOS)、反正弦函数(ASIN)和反正切函数(ATAN)。函数ACOS是用来计算指定数值的反余弦值的,公式为:=ACOS(number)。函数ASIN是用来计算指定数值的反正弦值的,公式为:=ASIN(number)。函数ATAN是用来计算指定数值的反正切值的,公式为:=ATAN(number)。反余弦函数的使用1、反余弦…

    2022年4月8日
    256
  • 511遇见易语言教程外形框和模仿进度条闪烁效果「建议收藏」

    511遇见易语言教程外形框和模仿进度条闪烁效果「建议收藏」本节课录制了易语言的外形框,录了外形看的填充颜色、线条颜色、现行选中项,线型、线条效果,线宽、外形、并且实现了通过外形框来实现仿制进度条,及闪烁效果。视频链接:73外形框和模仿进度条闪烁效果源码:.版本2.子程序__启动窗口_创建完毕时钟1.时钟周期=10.子程序_时钟1_周期事件置随机数种子().如果真(外形框3.宽度≤400)外形框3.宽度=外形框3.宽度+取随机数(1,10).如果真结束.版本2.子程序__启

    2022年7月13日
    17
  • 线程池拒绝策略详解[通俗易懂]

    线程池拒绝策略详解[通俗易懂]线程池拒绝策略详解JDK中已经预设了4种线程池拒绝策略,下面结合场景详细聊聊这些策略的使用场景,以及我们还能扩展哪些拒绝策略。池化设计思想池话设计应该不是一个新名词。我们常见的如java线程池、jdbc连接池、redis连接池等就是这类设计的代表实现。这种设计会初始预设资源,解决的问题就是抵消每次获取资源的消耗,如创建线程的开销,获取远程连接的开销等。就好比你去食堂打饭,打饭的大妈会先…

    2022年6月25日
    31
  • 系统性能提升优先法宝|缓存应用实践

    系统性能提升优先法宝|缓存应用实践

    2021年6月18日
    112

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号