相信很多小伙伴都经历过这样的事,从网上下载或者缓存的电影视频等等不是一个单一的文件,而是在一个文件夹里由许多个视频片段组成的,我们往往希望把这些视频片段合成一个文件,方便使用和播放。直接合并多个ts文件的方法很简单,直接在windows上采用cmd命令
C:\Users\Administrator>cd C:\Users\Administrator\Desktop\ab
C:\Users\Administrator\Desktop\ab>copy /b *.ts new.ts
第一行cd是改变工作路径,设置为你存放ts文件片段的文件夹,第二行是将所有.ts后缀的文件合并到一个新的命名为new.ts的文件里,其中的/b是指以二进制的方式复制。
如果到这里就成功了,那么这篇文章就是毫无意义的,我在解决这个问题的时候,网上很多水文都是这么写的。
事实上,在合并时,当文件名为1.ts,2.ts,3.ts这样的顺序。
那么,合并的时候其顺序则成了1.ts,10.ts,100.ts,…2.ts,20.ts这样的顺序,实际上顺序是不对的,那么怎么解决呢?就需要把文件名全部改为0001,0002,0003这样的位数相同的名称,合并的时候才会按正常顺序合并。这里同样采用cmd,
C:\Users\Administrator\Desktop\ab>for %n in (?.ts) do ren %n 000%n
C:\Users\Administrator\Desktop\ab>for %n in (??.ts) do ren %n 00%n
这里的代码分别是将1位数的文件改为000?.ts。以及将2位数的文件改为00??.ts。
大家可以看到,改完之后就成功了,再按原来的方式合并。
不过,每次都用cmd来输入命令也比较麻烦,我们可以做成一个脚本文件,以后每次都直接运行就可以了
首先新建一个txt文件,在里面输入:
for %%n in (?.ts) do ren %%n 000%%n
for %%n in (??.ts) do ren %%n 00%%n
copy /b *.ts new.ts
关闭并保存,然后将txt文件后缀改为bat。之后直接双击这个bat文件就可以自动执行了。
注意两点,这里示例的只有改1位数和2位数,如果文件很多有多位数那么自己增加以下。另一个,在cmd里面提取变量用的是%n,但是在bat文件里变量则是%%n,这里是不同的。
这里还想吐槽以下,网上关于这个问题的解决文章实在是太脑残,自己都没试过,要么就是太复杂要么就是根本没法实现,不知道上哪去抄的,本文的方法是自己研究了半天时间研究出来的。希望能帮到大家,转载请注明出处。