浏览器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毫秒。如果机器慢文件大这个值调大。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Spring+Spring MVC+MyBatis_java的图书管理系统

    Spring+Spring MVC+MyBatis_java的图书管理系统资源下载:https://download.csdn.net/download/weixin_44893902/35123371练习点设计:添加、删除、修改一、语言和环境实现语言:JAVA语言。环境要求:MyEclipse/Eclipse+Tomcat+MySql。使用技术:Jsp+Servlet+JavaBean或SpringMVC+Spring+Mybatis。二、实现功能为了方便学校对图书进行管理,开发一套BS结构的图书信息管理系统,主要功能如下:首页默认.

  • 白话经典算法系列之六 高速排序 高速搞定

    白话经典算法系列之六 高速排序 高速搞定

    2021年11月13日
  • ajax怎么解决报414,如何解决HTTP 414“请求URI太长”错误?

    ajax怎么解决报414,如何解决HTTP 414“请求URI太长”错误?根据约翰的回答,我将GET请求更改为POST请求。它可以工作,而无需更改服务器配置。所以我去寻找如何实现这一点。以下页面是有帮助的:带有PHP的jQueryAjaxPOST示例(注意清理发布的数据注释)和http://www.openjs.com/articles/ajax_xmlhttp_using_post.php基本上,区别在于GET请求在一个字符串中包含url和参数,然后发送null…

  • freemaker判断空_python条件语句举例

    freemaker判断空_python条件语句举例if…else…<#if condition>  …<#elseif condition2>  …<#elseif condition3>  …<#else>  …</#if>只有一个if的情况:<#if x = 1>  x is 1</#if> 包含elseif的情况:

  • asp语法教程_如何编程

    asp语法教程_如何编程ASP编程基本语句(一)Access+asp编制网站是属于动态网站,是通过把要编制的内容写入数据库里,在通过读取数据库的内容显示出来,学习目的:学会数据库的基本操作。数据库的基本操作无非是:查询记

  • postman接口自动化测试实战_python API

    postman接口自动化测试实战_python APIApifox介绍Apifox是API文档、API调试、APIMock、API自动化测试一体化协作平台,定位Postman+Swagger+Mock+JMeter。通过一套系

发表回复

您的电子邮箱地址不会被公开。

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