1

我想在 Windows 上的 QT Creator 中使用 FFMPEG 开发一个视频播放器,但对 QT Creator 环境来说是全新的。

我已经从这个链接下载了一个示例项目。当我在其中打开 QT Creator 并运行它时,它返回了这个错误,:-1: error: avutil is required, but compiler can not find it.

我已经下载了这个 (ffmpeg-20130322-git-e0e8c20-win64-static) FFMPEG 文件并将其解压缩到 C 分区中的文件夹中。我想我得到了那个错误,因为 QT 找不到 FFMPEG 在哪里,但仍然不知道如何链接它。你能帮我解决这个问题吗?

4

3 回答 3

3

我是 QtAV 的作者。我猜您正在使用针对 OpenGL ES2 构建的官方 Qt5 库。但 QtAV 使用 OpenGL 1.x。所以你可能会得到编译错误。但是几天前我通过禁用 OpenGL 代码解决了这个问题。所以我想知道您是否使用的是最新代码。如果没有,请使用

git update

更新 QtAV。如果编译错误仍然存​​在,请告诉我。我在我的电脑上测试并且工作正常。您还可以通过修改 QtAV.pro 来禁用 OpenGL 代码。在这里删除'gl'

OptionalDepends = portaudio direct2d gdiplus xv gl #openal

我不熟悉 OpenGL,所以支持 OpenGL ES2 需要几天时间。如果要启用 OpenGL,可以使用 Qt4.8 或自己构建 Qt5。我建议你使用 Qt4.8,因为 Qt5 现在不稳定。

:)

于 2013-03-28T14:51:27.603 回答
0

您应该设置一些环境变量,以便编译器可以找到 FFmpeg 和其他库文件。

对于 VC 编译器,它们是 INCLUDE 和 LIB。对于 gcc,它们是 CPATH 和 LIBRARY_PATH。例如

vc:

set INCLUDE=ffmpeg_path\include;portaudio_path\include;%INCLUDE%
set LIB=ffmpeg_path\lib;portaudio_path\lib;%LIB%

unix shell 环境中的 gcc(包括 mingw 和 sh.exe):

export CPATH=ffmpeg_path/include:portaudio_path/include:$CPATH
export LIBRARY_PATH=ffmpeg_path/include:portaudio_path/lib:$LIBRARY_PATH

没有sh.exe的windows cmd环境下的gcc

set CPATH=ffmpeg_path\include;portaudio_path\include;%CPATH%
set LIBRARY_PATH=ffmpeg_path\lib;portaudio_path\lib;%LIBRARY_PATH%

如果您在 QtCreator 中构建,请转到 QtCreator 的“项目”页面并添加或附加这些环境。

我想我应该写一些文件来展示如何构建 QtAV。

于 2013-03-28T11:05:05.427 回答
0

经过一番研究,我能够解决上述问题。这是解决方案,

  • 从此链接下载“ffmpeg-20130322-git-e0e8c20-win32-dev” 。

  • 将“ffmpeg-20130322-git-e0e8c20-win32-dev/include”文件夹中的所有文件夹复制到“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include”

  • 将所有 DLL 文件从“ffmpeg-20130322-git-e0e8c20-win32-dev/lib”复制到“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib”

但是现在有很多与OpenGL命令相关的错误。最后,我能够成功运行该项目。我博客上的这篇文章显示了这些步骤。

于 2013-03-28T06:02:53.763 回答