copy /b "%~dp0"*.ts "%~dp0" ew.ts
最近在手机浏览器上下载了钢铁侠等漫威电影,觉得不错想保存到手机上,却都又是m3u8格式,又是ts格式,找了很多破解的办法,也下载了工具,都不算理想,自己组合了一套:
1.在ts文件夹下建一个bat文件写: copy /b "%~dp0"*.ts "%~dp0" ew.ts
2.注意,直接*.ts经常会合并出来的顺利乱了,所以最好按照0.ts+1.ts+2.ts这样的格式一个个写上,因为很多ts文件夹都是几千的ts文件,一个个写到地老天荒……于是我用PHP的for循环生成,代码如下:
$m=339; for ($i=0; $i <=$m ; $i++) { echo "$i"; echo ".ts"; if ($i %25==1) { echo "<br/>"; } if ($i == $m) { # code... }else{ echo "+"; } }
3. ctrl+A复制,替换*.ts,再运行bat文件,在本地目录生成了指定名称的合成ts文件,直接将ts后缀改成MP4,完成。
以下是别的博客找到的参考资料:
首先在待合并的文件夹下创建concat.bat(名字随意啦),写入如下命令
copy /b "%~dp0"*.ts "%~dp0" ew.ts
执行该命令后,当前目录下的全部TS文件就被合并成一个new.ts文件了(你原来的那堆文件仍然存在)。
命令解释:
这里使用copy命令的文件合并功能进行ts文件的合并,copy后面的 /b 参数表示把文件按二进制格式来合并,如果不加这个参数,则会把目标当成文本文件来合并,并在文件内添加不必要的标记,这会导致播放出错,所以必须加 /b 参数
该命令的合并排序是按照你系统下的字母序来的,比如你的文件名是disk1.ts, disk2.ts, disk3.ts,那该命令就会按照disk1.ts+disk2.ts+disk3.ts的顺序来合并这三个文件,事实上,绝大多数网上下载的高清文件,都已经按字母序排列好了,所以你直接执行该命令即可。
上面的例子如果换成diskA.ts, diskB.ts, diskC.ts,该命令仍能正常进行,它会按diskA.ts+diskB.ts+diskC.ts(请统一排序关键字的大小写,即全部用大写A、B、C 或全部用小写a、b、c)。
最好只有一个排序关键字(数字或字母),也就是说各文件名相互间只有一个字符不同
如果你想万无一失,可以手工把文件名改为1.ts, 2.ts, 3.ts, …..再执行合并。
至于 %~dp0 则是 当前盘符和路径 的意思
更多CMD获取当前目录的命令
@echo off echo 当前盘符:%~d0 echo 当前盘符和路径:%~dp0 echo 当前批处理全路径:%~f0 echo 当前盘符和路径的短文件名格式:%~sdp0 echo 当前CMD默认目录:%cd% echo 目录中有空格也可以加入""避免找不到路径 echo 当前盘符:"%~d0" echo 当前盘符和路径:"%~dp0" echo 当前批处理全路径:"%~f0" echo 当前盘符和路径的短文件名格式:"%~sdp0" echo 当前CMD默认目录:"%cd%" pause