如何拆分AVI文件

时间:2009-11-25 17:36:09

标签: c# avi

我正在尝试将较大的AVI 2.0(OpenDML格式)文件拆分为较小的部分(在我的情况下低于1GB),以便能够使用VFW(avifil32.dll)打开部件。

实现这种分裂的最佳方法是什么(最好是在C#中)?

其中一个选项是逐帧复制。我在网上找到了一些例子。但是大多数都使用VFW,因为最大RIFF部分大小为1GB,因此一般不能读取2GB以上的文件和1GB以上的AVI 2.0文件。

我需要DirectShow而不是VFW。我很确定如果我尝试手动复制帧,我也会搞砸音频同步。

我正在寻找类似于VirtualDub所做的“直接流复制”,它不会影响当前的压缩,只需拆分文件并创建正确的AVI索引。

2 个答案:

答案 0 :(得分:2)

Avi文件可以通过多种不同方式进行编码,具体取决于所使用的编解码器。 Avi是一个包装文件,而不是一种编码方法。这意味着使用C#分割avi文件并不是一种简单的通用方法。

从头开始编写代码将是一项重大任务。也就是说,你可以通过使用mencoder并从c#调用它来作弊 - 不理想,但比试图重新发明轮子更容易和更可靠。或者,有一些ffmpeg c#包装器可以让你访问ffmpeg工具(但我没有找到一个没有错误的地狱)

你到底在想做什么?为什么你需要avifil32.dll,你是如何使用它的?如果您只是想播放一个非常大的avi文件,那么还有其他选择。例如,尝试aforge.net。

答案 1 :(得分:1)

mencodersplit files为您服务。另一个选项是ffmpeg