【发布时间】:2009-12-08 14:04:52
【问题描述】:
我在一个主要软件供应商的应用程序中看到了一个名为“DivXDecoder.dll”的 dll - 这让我很感兴趣,因为 (a) 它意味着存在一个易于使用的 divx 库,并且 (b) 我宁愿喜欢在我从事的产品中播放 divx 压缩电影。
DivX 项目本身似乎专注于为最终用户制作编解码器和工具。是否有任何 C/C++ 友好项目可以在 Win32 或 Cocoa 应用程序中播放 divx 内容?
【问题讨论】:
我在一个主要软件供应商的应用程序中看到了一个名为“DivXDecoder.dll”的 dll - 这让我很感兴趣,因为 (a) 它意味着存在一个易于使用的 divx 库,并且 (b) 我宁愿喜欢在我从事的产品中播放 divx 压缩电影。
DivX 项目本身似乎专注于为最终用户制作编解码器和工具。是否有任何 C/C++ 友好项目可以在 Win32 或 Cocoa 应用程序中播放 divx 内容?
【问题讨论】:
查看 mplayer 源 - 它使用处理多种格式解码的 ffmpeg 库。
【讨论】:
DivX 是一种符合 MPEG-4 Part 2 的压缩器。XviD 和某些版本的 Windows Media 也是该标准的实现。所以任何可以解压缩 MPEG-4 Part 2 的东西都应该能够处理用 DivX 压缩的东西。
至于实际的解压库,我推荐 libavcodec。它被广泛使用(= 良好的支持)、跨平台和开源(LGPL,因此可用于商业应用程序)。它的 C 绑定也很容易使用。它可以打开和播放许多不同的编解码器(并且使用 libavformat,可以处理许多不同的包装器,即 avi、mkv 等)。
如果它仅适用于 Windows,如果您只想播放 MPEG,则使用操作系统提供的 Video For Windows 可能是更好的选择,因为您不需要将它与您的应用程序一起提供,并且可以避免潜在的许可问题。但是请注意,这需要用户安装某些编解码器。在 Win7(和我认为是 Vista)上,播放 DivX/XviD 所需的 MPEG 编解码器默认安装,但它们不在 XP 上...
【讨论】:
不要浪费时间尝试在 Cocoa 应用程序中实现 DivX 播放。使用 QTKit。如果有人想在您的应用中播放 DivX 内容,他们将安装 DivX QuickTime 插件。
【讨论】: