C# 如何分割AVI文件

C# 如何分割AVI文件,c#,avi,C#,Avi,我试图将一个大的AVI 2.0(OpenDML格式)文件拆分成更小的部分(在我的例子中小于1GB),以便能够使用VFW(avifil32.dll)打开这些部分 实现这种拆分的最佳方法是什么(最好是C#) 其中一个选项是逐帧复制。我在网上找到了一些例子,它们也是这样做的。但其中大多数使用VFW,通常无法读取2GB以上的文件,而AVI 2.0文件也无法读取1GB以上的文件,因为RIFF部件的最大大小为1GB 我需要DirectShow而不是VFW。我敢肯定,如果我试图手动复制帧,我也会搞砸音频同步

我试图将一个大的AVI 2.0(OpenDML格式)文件拆分成更小的部分(在我的例子中小于1GB),以便能够使用VFW(avifil32.dll)打开这些部分

实现这种拆分的最佳方法是什么(最好是C#)

其中一个选项是逐帧复制。我在网上找到了一些例子,它们也是这样做的。但其中大多数使用VFW,通常无法读取2GB以上的文件,而AVI 2.0文件也无法读取1GB以上的文件,因为RIFF部件的最大大小为1GB

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


我正在寻找与VirtualDub使用“direct stream copy”类似的功能,它不影响当前压缩,只需分割文件并创建适当的AVI索引。

可以为您提供。另一个选择是

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

用代码从头开始将是一项重大任务。也就是说,你可以通过使用mencoder并从c#调用它来作弊——这并不理想,但比试图重新发明轮子要容易得多,也更可靠得多。或者,有许多ffmpeg c#wrapper可以让您访问ffmpeg工具(但我还没有找到一个没有那么多bug的工具)


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

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

用代码从头开始将是一项重大任务。也就是说,你可以通过使用mencoder并从c#调用它来作弊——这并不理想,但比试图重新发明轮子要容易得多,也更可靠得多。或者,有许多ffmpeg c#wrapper可以让您访问ffmpeg工具(但我还没有找到一个没有那么多bug的工具)


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

我发现使用DirectShow和一个简单的过滤器文件在->avi splitter->avi mux->file out中有一个很好的起点,中间没有压缩过滤器。供参考:我发现使用DirectShow和一个简单的过滤器文件在->avi拆分器->avi mux->文件输出中有一个很好的起点,中间没有压缩过滤器。参考:谢谢,但我的意思是用代码,而不是外部应用程序。谢谢,但我的意思是用代码,而不是外部应用程序。嘿,我问这个问题已经两年了,同时我开始使用ffmpeg,所以不需要拆分文件来绕过VFW文件大小限制。我有自己的ffmpeg包装器,但我看到一个RGE.net也使用ffmpeg,所以我将检查它,看看它们的实现是否比我得到的更好。谢谢你的提示。嘿,我问这个问题已经两年了,同时我开始使用ffmpeg,所以不需要分割文件来绕过VFW文件大小限制。我有自己的ffmpeg包装器,但我看到一个RGE.net也使用ffmpeg,所以我将检查它,看看它们的实现是否比我得到的更好。谢谢你的提示。