我有一堆非常大的视频文件 (.ts),范围从 3GB 到 10GB。其中很多都有特定的错误,我的解决方案是简单地删除包含错误的部分。我已经知道我想要保留的部分的开始和结束偏移量,我希望简单地读入主文件并从 start_offset 复制到 end_offset 到同一文件夹中的新文件中。
例如,我有主视频 MAIN.ts,大小为 5.5GB。假设它有两个这样的错误。我想保留偏移量(十进制,而不是十六进制)0 到 1174698823(错误开始前的字节)并将其保存到新文件 PART1.ts。然后我想通过偏移量 4126897791(第二个错误开始)保留偏移量 1257553244(错误结束后的字节)并将其保存为 PART2.ts。然后我需要将文件末尾的偏移量 4207333028 保存为 PART3.ts。基本上我只是剪下大约 155MB 的文件并将其分成三部分。如果我实际上可以在不创建多个新文件的情况下进行剪切,而是将它们彼此附加,然后编写整个新文件,那将是一个奖励(或者我可以copy /b
稍后使用)。
我一直在研究文件流和字节数组,我知道 2GB 的限制。我该如何解决这个问题,然后如果我要保留的块的长度> 2GB,我该如何编写它?我不确定如何使用有限长度的缓冲区来做到这一点。如果可能的话,我也想有一个进度条来显示已经写了多少。
任何帮助,将不胜感激。