【问题标题】:How to split AVI files如何分割 AVI 文件
【发布时间】: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 索引。

【问题讨论】:

标签: c# avi


【解决方案1】:

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

从头开始使用代码来完成这项工作将是一项艰巨的任务。也就是说,您可以通过使用 mencoder 并从 c# 中调用它来作弊——这并不理想,但比尝试重新发明轮子更容易、更可靠。或者,有许多 ffmpeg c# 包装器可以让您访问 ffmpeg 工具(但我还没有找到一个不会出错的工具)

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

【讨论】:

  • 嘿,我问这个问题已经 2 年了,同时我开始使用 ffmpeg,所以不需要拆分文件来解决 VFW 文件大小的限制。我有自己的 ffmpeg 包装器,但我看到 aforge.net 也使用 ffmpeg,所以我会检查一下它们的实现是否比我得到的更好。感谢您的提示。
【解决方案2】:

mencoder 可以split files 为您服务。另一种选择是ffmpeg

【讨论】:

  • 谢谢,但我的意思是用代码而不是外部应用程序。
猜你喜欢
  • 2011-08-24
  • 2013-09-02
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
相关资源
最近更新 更多