1

我一直在玩 DSPack,它可以播放 avi 和 wmv 文件,但不能播放 mp4 文件。我已经安装了 ffdshow 编解码器,但它仍然不会播放任何其他格式。我在某处读到我需要使用 ffdshow 过滤器,但是关于如何使用的文档非常有限......有人可以帮我吗?

编辑

那是我在播放任何其他格式时遇到的错误

raised exception class EDirectShowException with message 'C ($80040265).'. Process stopped. Use Step or Run to continue.

这就是弹出异常的函数

function CheckDSError(HR: HRESULT): HRESULT;
  var Excep: EDirectShowException;
  begin
    Result := HR;
    if Failed(HR) then
    begin
      Excep := EDirectShowException.Create(format(GetErrorString(HR)+' ($%x).',[HR]));
      Excep.ErrorCode := HR;
      raise Excep;
    end;
  end;

编辑 我安装了 haali 解复用器,安装后它是一个自我安装程序,我仍然得到同样的错误。和gdcl解复用器,那是两个dll文件,关于如何使用它们有什么建议吗?

PS:我从来没有使用过编解码器和/或这种东西,很抱歉这么厚,我使用的是 Windows 7 x64

4

2 回答 2

1

我可以使用 DSPack 附带的“DSVideoWinDowEx\PlayWin”演示应用程序成功播放 *.mp4 文件。Windows 7 包含 mp4 编解码器,因此这应该不是问题。确保您没有在调试模式下运行应用程序,因为如果调试器处于活动状态,许多编解码器会拒绝工作。

Haalie Media Splitter 不用于我的测试 *.mp4 文件。但它使用AC3Filter。因此,您的问题也可能是缺少音频编解码器。

如果这不能解决问题,那么问题可能是:“为什么它不能在您的 PC 上运行?” 为了进一步缩小问题范围,请尝试使用 GraphEdit 或GraphStudio播放视频,看看是否可行。这些工具还将显示使用的过滤器图。您还可以显示 DSPack 应用程序中使用的 FilterGraph。

如果您在系统上安装 DirectShow 过滤器(编解码器),DirectShow/DSPack 将自动使用它。您可以通过调用手动在系统中注册过滤器 regsvr32 "path_to_codec.ax",但这通常由安装程序完成。可以在 DirectShow 中手动使用过滤器,但大多数时候不需要这样做。

于 2014-06-16T14:17:58.470 回答
1

lavfilters为您提供源分离器和解码器所需的一切。它是开源的,积极开发并基于ffmpeg如果您在安装lavfilters后无法播放 mp4,那么我会说 mp4 本身存在问题。在这种情况下,使用ffprobe之类的东西来检查文件或发布文件的链接。

于 2014-07-25T00:52:31.243 回答