cmd的copy命令合并ts视频文件如何更改合并的顺序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmd的copy命令合并ts视频文件如何更改合并的顺序?相关的知识,希望对你有一定的参考价值。

我想要合并多个ts视频文件,但它合并的顺序是1 10 100 2,不是我想要的1 2 3...我使用的命令是copy /b *.ts new.ts

俗话说,兴趣所在,方能大展拳脚。so结合兴趣的学习才能事半功倍,更加努力专心,apparently本次任务是在视频网站爬取一些好看的小电影,地址不放(狗头保命)只记录过程。

实现功能:

从网站上爬取采用m3u8分段方式的视频文件,对加密的 "ts"文件解密,实现两种方式合并 "ts"文件,为防止IP被封,使用代理,最后删除临时文件。

环境 &依赖

Win10 64bit
IDE:Pycharm
Python 3.8
Python-site-package:requests + BeautifulSoup + lxml + m3u8 + AES
在PyCharm中创建一个项目会创建一个临时目录存放环境和所需要的package包,所以要在PyCharm 中项目解释器(Project Interpreter)中添加所有需要的包,这张截图是本项目的包列表,红框中是所必须的包,其他有的包我也不知道做什么用的。

下面开始我们的正餐,爬取数据第一步我们需要解析目标网站,找到我们需要爬取视频的地址,F12打开开发者工具

很不幸,这个网站视频是经过包装采用m3u8视频分段方式加载

科普一下:m3u8 文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但无论是哪种播放列表,其内部文字使用的都是 utf-8 编码。

当 m3u8 文件作为媒体播放列表(Meida Playlist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。

OK,本着“没有解决不了的困难“的原则我们继续,依旧在开发者模式,从Elements模式切换到NetWork模式,去掉不需要的数据,我们发现了两个m3u8文件一个key文件和一个ts文件

分别点击之后我们可以 看到对应的地址

OK,现在地址已经拿到了,我们可以开始我们的数据下载之路了。

首先进行初始化,包括路径设置,请求头的伪装等,之后我们通过循环去下载所有ts文件,至于如何定义循环的次数我们可以通过将m3u8文件下载之后解析文件得到所有ts的列表,之后拼接地址然后循环就可以得到所有ts文件了。

观察数据,不是真正路径,第二层路径在第三行可以看到,结合我们对网站源码分析再次拼接字符串请求:

之后我们循环得到的TS列表,通过拼接地址下载视频片段。但是问题远远没有这么简单,我们下载的ts文件居然无法播放,通过对第二层下载得到的m3u8文件进行分析我们可以发现这一行代码:

#EXT-X-KEY:METHOD=AES-128,URI="key.key"

此网站采用AES方法对所有ts文件进行了加密,其中

METHOD=ASE-128 :说明此视频采用ASE-128方式进行加密,

URI=“key.key”:代表key的地址

综上所诉,感觉好难啊,好绕了,都拿到了视频还看不了,但是我们要坚持我们的初心不能放弃。Fortunately,我们应该庆幸Python强大的模块功能,这个问题我们可以通过下载AES模块解决。

完成之后我们需要将所有ts合并为一个MP4文件,最简单的在CMD命令下我们进入到视频所在路径然后执行:

copy /b *.ts fileName.mp4

需要注意所有TS文件需要按顺序排好。在本项目中我们使用os模块直接进行合并和删除临时ts文件操作。

完整代码:之后我们循环得到的TS列表,通过拼接地址下载视频片段。但是问题远远没有这么简单,我们下载的ts文件居然无法播放,通过对第二层下载得到的m3u8文件进行分析我们可以发现这一行代码: #EXT-X-KEY:METHOD=AES-128,URI="key.key"

此网站采用AES方法对所有ts文件进行了加密,其中

METHOD=ASE-128 :说明此视频采用ASE-128方式进行加密,

URI=“key.key”:代表key的地址

综上所诉,感觉好难啊,好绕了,都拿到了视频还看不了,但是我们要坚持我们的初心不能放弃。Fortunately,我们应该庆幸Python强大的模块功能,这个问题我们可以通过下载AES模块解决。

完成之后我们需要将所有ts合并为一个MP4文件,最简单的在CMD命令下我们进入到视频所在路径然后执行:

copy /b *.ts fileName.mp4

需要注意所有TS文件需要按顺序排好。在本项目中我们使用os模块直接进行合并和删除临时ts文件操作。
参考技术A 先用代码在1-9前面加0,再在01-99前面加0,然后在合并就好了。加0的代码为
for /f %%i in ('dir /b *.ts') do (ren %%i 0%%i)
在文本文档里编辑,重名为.bat文件!已经成功合成流浪地球、淘客有好特等片。、
好答案请追加分
参考技术B 你可以先用其它的文件批量更名软件,将所有的文件名统一为三位,即001、002、011这种,再合并。不过这种合并出来的视频是没用的,文件头和索引都不对(其它任何视频也都一样),建议你用格式工厂之类的合并。

下载.ts分段视频,m3u8视频文件下载

技术图片

 

查找m3u8文件下,下载到本地;

技术图片

 

 

 找其规律,3位数字结尾;

技术图片

 

 

 

 技术图片

 

 

 迅雷中新建批量任务(老版有的下不了换新版),url地址如图中红框;

 

下载合并的.ts文件;

cmd

转到ts文件所在目录

执行

copy /b *.ts  aaa.ts

aaa.ts为合并后的文件

 

aaa.ts可以转格式mp4等

 

以上是关于cmd的copy命令合并ts视频文件如何更改合并的顺序?的主要内容,如果未能解决你的问题,请参考以下文章

将ts文件合并为mp4命令

如何合并m3u8及ts文件

win系统cmd的copy命令多个文件批量与一个文件合并,按规律合成怎么做

WSL 一行命令 快速合并文件 Fasta Fas合并

下载.ts分段视频,m3u8视频文件下载

如何使用命令“copy/b*.tdl hb1.mp4”对这些*.tdl文件进行合并?