【发布时间】:2009-11-25 17:36:09
【问题描述】:
我正在尝试将大型 AVI 2.0(OpenDML 格式)文件拆分为较小的部分(在我的情况下小于 1GB),以便能够使用 VFW (avifil32.dll) 打开这些部分。
实现这种拆分的最佳方法是什么(最好在 C# 中)?
其中一个选项是逐帧复制。我在网上找到了一些例子,它们也是如此。但其中大多数使用 VFW,通常无法读取 2GB 以上的文件和 1GB 以上的 AVI 2.0 文件,因为最大 RIFF 部分大小为 1GB。
我需要 DirectShow 而不是 VFW。我敢肯定,如果我尝试手动复制帧,我也会弄乱音频同步。
我正在寻找类似于 VirtualDub 对“直接流复制”所做的不影响当前压缩的东西,它只是分割文件并创建适当的 AVI 索引。
【问题讨论】:
-
我找到了一个很好的起点,使用 DirectShow 和一个简单的过滤器文件 in -> avi splitter -> avi mux -> file out 中间没有压缩过滤器。供参考:social.msdn.microsoft.com/Forums/en-US/…msdn.microsoft.com/en-us/library/ms779733%28VS.85%29.aspx