要使用CMD(命令提示符)实现多个同类文件的合并,你可以使用一些命令行工具,如`copy`、`type`、`cat`(在Windows中为`type`)或`cat`(在Linux和macOS中)。以下是一些基本的步骤和命令,用于在Windows系统中合并多
摘要:引言 视频网站内,使用视频下载嗅探器下载了视频,打开资源管理器一看,是几千个.ts文件,见下图: 通过播放部分视频,发现其实内容是完整的,只是自动切割了多份,倘若无缝拼接为一个完整视频单元,就可以正常播放观赏了。 经过考虑, 可以使用视频编
引言
视频网站内,使用视频下载嗅探器下载了视频,打开资源管理器一看,是几千个.ts文件,见下图:
通过播放部分视频,发现其实内容是完整的,只是自动切割了多份,倘若无缝拼接为一个完整视频单元,就可以正常播放观赏了。
经过考虑,
可以使用视频编辑软件,比如PR,导入素材然后重新编排输出,缺点是耗时,而且二次编码损画面质量;
可以考虑使用无损拼接视频的工具,可参考笔者另一篇博文:【视频分割工具】无损快速分割视频软件分享[切分][分P神器]
或者直接使用命令提示符 / 终端,调用FFmpeg等工具。或者不借助任何工具或插件,就用原生的MS-Dos。
相信原生dos可以实现。那么如果素材是文本、图像和音频呢,我们一同尝试一下。
首先
简单尝试copy命令:
copy /b 1.ts+2.ts+3.ts combine.ts
可以得到理想结果,三个片段结合至一个且正常播放。copy命令是cmd中常用的操作文件指令,它可以进行拷贝文件、修改命名、移动文件等,这里使用了合并文件的功能,使用操作符+。/b代表二进制式操作。
如果暴力得写下命令如:
copy /b 0.ts+1.ts+2.ts+...+2368.ts combine.ts
咱们是可以理解的,但是dos理解不了。需要详细定义什么是“...”
因此需要把所有的文件清单列出来,即每个文件的文件名加后缀的清单,每个文件名间加“+”。如:
新建一个批处理程序.bat,使用for循环,把字符整理好一并存入一变量里,如下脚本:
set "fileList=" REM 变量 用于存放字符
for /L %%i in (0, 1, 2368) do (
set "fileList=!fileList!%%i.ts+" REM 依次拼接字符
)
set "fileList=!fileList:~0,-1!" REM 移除最后一个 +
执行后发现,只有连接到1160.ts。后面的并没有执行:
什么原因呢,最可疑的是变量的缓冲容量限制,存不下那么多字符。
