从源代码构建Qt Multimedia

本页介绍了配置和构建 Qt Multimedia.本说明假定您已熟悉 "构建 Qt 源代码"(Building Qt Sources),其中规定了平台的构建要求,以及Qt 配置选项(Qt Configure Options)概述。有关Qt Multimedia 模块的特定平台注意事项,请参阅下面的平台注意事项。

从源代码构建

在大多数平台上,构建具有完整功能支持的Qt Multimedia 都依赖于FFmpeg头文件和库。可以在不使用Qt Multimedia FFmpeg 媒体后台的情况下构建Qt Multimedia ,但只建议在不支持 FFmpeg 后台的平台上构建。

构建Qt Multimedia 所需的 FFmpeg 开发库可从源代码构建,也可作为二进制包下载。Qt Multimedia 可使用静态链接或动态链接 FFmpeg 库。我们建议使用与目标平台和后端注释中列出的 FFmpeg 主要版本相同的版本。有关如何构建 FFmpeg 开发库的信息,请参阅从源代码构建 FFmpeg

要构建支持 FFmpeg 的Qt Multimedia ,请在构建 Qt 时在 configure 命令行中指定-ffmpeg-dir 选项。

qt-source/configure -ffmpeg-dir <FFMPEG_DIR>

这里,<FFMPEG_DIR> 是包含 FFmpeg include、lib 和 bin 目录的目录。要编译不带 FFmpeg 的Qt Multimedia ,请省略<FFMPEG_DIR> 变量,并指定-no-feature-ffmpeg configure 选项。

如果不想联编所有 Qt 子模块,可以使用-submodules configure 选项来减少配置和联编时间。这将配置只联编Qt Multimedia 及其依赖项的联编。

qt-source/configure -submodules qtmultimedia -ffmpeg-dir <FFMPEG_DIR>

如果针对使用共享库(动态链接)构建的 FFmpeg 配置Qt Multimedia ,则 FFmpeg 共享库必须位于模块加载器的搜索路径中,才能运行测试或使用示例。

注意: Qt Multimedia 在运行时需要 FFmpeg avformat、avcodec、swresample、swscale 和 avutil 库才能使用 FFmpeg 媒体后端。如果在应用程序启动时找不到这些动态库中的一个或多个,FFmpeg 媒体后端将无法加载,系统将尝试加载本地后端。Qt Multimedia 不支持本地后端的许多功能。

如果path 中还没有这些库,请指定-ffmpeg-deploy 配置选项。启用该选项后,必要的 FFmpeg 二进制库将在构建和安装步骤中复制到 Qt 的安装目录中:

qt-source/configure -submodules qtmultimedia -ffmpeg-dir <FFMPEG_DIR> -ffmpeg-deploy

配置Qt Multimedia 后,仔细查看配置摘要(可在 config.summary 文件中找到)。您可以验证 FFmpeg 是否位于 "插件 "部分。然后按照 "构建 Qt 源代码"中描述的常规构建和安装步骤进行操作。

平台说明

Linux

  • 在启用 FFmpeg 的情况下配置Qt Multimedia 时,需要 pulseaudio 开发包。如果没有该软件包,FFmpeg 将无法识别。
  • 在使用支持 VAAPI 的 FFmpeg 版本时,我们建议同时构建支持 VAAPI 的Qt Multimedia ,以便实现硬件纹理转换。要配置支持 VAAPI 的Qt Multimedia ,必须在系统上安装 VAAPI 开发库。查看 config.summary 文件,确认 "硬件加速和功能 "部分已启用 VAAPI 支持。
  • 在使用 GStreamer 后端配置Qt Multimedia 时,GStreamer v1.20 是最低要求。不过,我们建议尽可能使用最新的稳定版 GStreamer 上游版本。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.