从源码构建 Qt 多媒体

本页面描述了配置和构建 Qt 多媒体 的过程。此描述假设您熟悉 构建 Qt 源码 的过程,该过程指定了您平台的构建要求,以及 Qt 配置选项 的概述。有关 Qt 多媒体模块的特定平台考虑因素,请参阅下面的 平台注释

从源码构建

在大多数平台上,使用完整功能支持构建 Qt 多媒体取决于 FFmpeg 的头文件和库。在不支持 FFmpeg 后端的平台构建 Qt 多媒体时,可以选择不使用 Qt 多媒体 FFmpeg 媒体后端,但这仅建议在不支持 FFmpeg 后端的平台构建时使用。

构建 Qt 多媒体所需的 FFmpeg 开发者库可以从小 sources 构建或作为二进制包下载。Qt 多媒体可以使用静态链接或动态链接到 FFmpeg 库。我们建议使用与在 将 FFmpeg 作为默认后端 中列出的相同主版本的 FFmpeg。

要构建具有 FFmpeg 支持的 Qt 多媒体,请在构建 Qt 时,在配置命令行上指定 -DFFMPEG_DIR CMake 变量。注意 -- 分隔符将普通配置参数与 CMake 参数分开。

qt-source/configure -- -DFFMPEG_DIR=<FFMPEG_DIR>

在此处,<FFMPEG_DIR> 是包含 FFmpeg include、lib 和 bin 目录的目录。要构建不使用 FFmpeg 的 Qt 多媒体,省略 <FFMPEG_DIR> 变量或指定 -no-feature-ffmpeg 配置选项。

如果您不希望构建所有 Qt 的子模块,可以使用 -submodules 配置选项来减少配置和构建时间。这将配置一个仅构建 Qt 多媒体及其依赖项的构建。

qt-source/configure -submodules qtmultimedia -- -DFFMPEG_DIR=<FFMPEG_DIR>

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

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

如果您没有在 path 中安装这些库,指定 -DQT_DEPLOY_FFMPEG=ON 配置选项。启用此选项后,必要的 FFmpeg 二进制文件将在构建和安装步骤期间复制到 Qt 的安装目录。

qt-source/configure -submodules qtmultimedia -- -DFFMPEG_DIR=<FFMPEG_DIR> -DQT_DEPLOY_FFMPEG=ON

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

平台注释

Linux

  • 当配置启用 FFmpeg 的 Qt Multimedia 时,需要脉冲音频的开发包。如果没有这个包,FFmpeg 将不会识别。
  • 当使用带有 VAAPI 支持构建的 FFmpeg 版本时,我们建议同时构建带有 VAAPI 支持的 Qt Multimedia,以使硬件纹理转换成为可能。要配置带有 VAAPI 支持的 Qt Multimedia,必须在您的系统上安装 VAAPI 开发库。审查 config.summary 文件以验证在“硬件加速和功能”部分下已启用 VAAPI 支持。

© 2024 Qt 公司。本文档中的文档贡献为其各自所有者的版权。所提供的文档根据《GNU 自由文档许可协议》第 1.3 版的条款授予许可,由自由软件基金会发布。Qt 及相关标志是芬兰和/或其他国家的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。