Qt Multimedia -Kompilierung aus dem Quellcode
Auf dieser Seite wird der Vorgang der Konfiguration und des Kompilierens beschrieben Qt Multimedia. Diese Beschreibung setzt Kenntnisse über das Kompilieren von Qt-Quellcode voraus, in dem die Kompilierungsvoraussetzungen für Ihre Plattform festgelegt sind, sowie einen Überblick über die Qt-Konfigurationsoptionen. Plattformspezifische Hinweise zum Modul „ Qt Multimedia “ finden Sie weiter unten unter „Plattformhinweise “.
Kompilieren aus dem Quellcode
Die Kompilierung von „ Qt Multimedia “ mit vollständiger Funktionsunterstützung ist auf den meisten Plattformen von FFmpeg-Header -Dateien und -Bibliotheken abhängig. Es ist möglich, „ Qt Multimedia “ ohne das FFmpeg-Medien-Backend „ Qt Multimedia “ zu kompilieren, dies wird jedoch nur empfohlen, wenn für Plattformen kompiliert wird, auf denen das FFmpeg-Backend nicht unterstützt wird.
Die zum Kompilieren von Qt Multimedia erforderlichen FFmpeg-Entwicklungsbibliotheken können aus dem Quellcode kompiliert oder als Binärpakete heruntergeladen werden. Qt Multimedia kann entweder statisch oder dynamisch mit FFmpeg-Bibliotheken verknüpft werden. Wir empfehlen, dieselbe Hauptversion von FFmpeg zu verwenden, die unter „Hinweise zu Zielplattformen und Backends“ aufgeführt ist. Informationen zum Erstellen der FFmpeg-Entwicklungsbibliotheken finden Sie unter „FFmpeg aus dem Quellcode erstellen“.
Hinweis: Die minimal unterstützte FFmpeg-Version für das FFmpeg-Backend von Qt Multimedia ist FFmpeg 4.4.
Um „ Qt Multimedia “ mit FFmpeg-Unterstützung zu kompilieren, geben Sie beim Kompilieren von Qt XML die Option „ -ffmpeg-dir “ in der Befehlszeile von „configure“ an.
qt-source/configure -ffmpeg-dir <FFMPEG_DIR>Dabei ist „ <FFMPEG_DIR> “ das Verzeichnis, das die FFmpeg-Verzeichnisse „include“, „lib“ und „bin“ enthält. Um „ Qt Multimedia “ ohne FFmpeg zu kompilieren, lassen Sie die Variable „ <FFMPEG_DIR> “ weg und geben Sie die „ -no-feature-ffmpeg “-Option bei der Konfiguration an.
Um „ Qt Multimedia “ ohne native Medien-Backends zu erstellen, verwenden Sie „ -no-feature-xxx “, um die entsprechenden Funktionen auszuschließen, z. B. „ gstreamer “, „ native_windows_backend “, „ native_darwin_backend “ oder „ native_android_backend “.
qt-source/configure -no-feature-gstreamerWenn Sie nicht alle Submodule von Qt kompilieren möchten, können Sie die Konfigurations- und Kompilierungszeiten mit der Konfigurationsoption „ -submodules “ verkürzen. Dadurch wird ein Build konfiguriert, der nur „ Qt Multimedia “ und dessen Abhängigkeiten kompiliert.
qt-source/configure -submodules qtmultimedia -ffmpeg-dir <FFMPEG_DIR>Wenn Sie „ Qt Multimedia “ mit einer FFmpeg-Version konfigurieren, die mit gemeinsam genutzten Bibliotheken (dynamische Verknüpfung) erstellt wurde, müssen sich die gemeinsam genutzten FFmpeg-Bibliotheken im Suchpfad des Modulladers befinden, damit Tests ausgeführt oder Beispiele verwendet werden können.
Hinweis: „ Qt Multimedia “ benötigt zur Laufzeit die FFmpeg-Bibliotheken „avformat“, „avcodec“, „swresample“, „swscale“ und „avutil“, um das FFmpeg-Medien-Backend nutzen zu können. Werden eine oder mehrere dieser dynamischen Bibliotheken beim Start der Anwendung nicht gefunden, kann das FFmpeg-Medien-Backend nicht geladen werden, und das System versucht, das native Backend zu laden. „ Qt Multimedia “ unterstützt auf nativen Backends nicht so viele Funktionen.
Falls diese Bibliotheken noch nicht im Verzeichnis „ path “ vorhanden sind, geben Sie die Konfigurationsoption „ -ffmpeg-deploy “ an. Wenn diese Option aktiviert ist, werden die erforderlichen FFmpeg-Binärdateien während der Erstellungs- und Installationsschritte in das Installationsverzeichnis von Qt kopiert:
qt-source/configure -submodules qtmultimedia -ffmpeg-dir <FFMPEG_DIR> -ffmpeg-deployÜberprüfen Sie nach der Konfiguration von „ Qt Multimedia “ sorgfältig die Konfigurationszusammenfassung (zu finden in der Datei „config.summary“). Sie können sich vergewissern, dass FFmpeg im Abschnitt „Plugin“ aufgeführt ist. Befolgen Sie anschließend die regulären Build- und Installationsschritte, die unter „Qt-Quellcode kompilieren“ beschrieben sind.
Hinweis: Beim statischen Kompilieren von „ Qt Multimedia “ wird der Pfad zu den FFmpeg-Bibliotheken fest in „ libQt6FFmpegMediaPluginImpl.prl “ eingebettet. Sie müssen den Pfad anpassen, wenn Ihr Qt auf einem anderen Rechner verwendet werden soll.
Plattformhinweise
iOS
- Bei der Konfiguration von „ Qt Multimedia “ mit FFmpeg-Unterstützung sucht der CMake-Konfigurationsprozess nach „
.xcframework“-Dateien im bereitgestellten FFmpeg-Verzeichnis. Die direkte Verwendung von Binärdateien unter.dylibwird nicht unterstützt. Weitere Informationen dazu, wie Sie FFmpeg-Build-Artefakte in „.xcframework“-Dateien verpacken können, finden Sie unter „Building FFmpeg from source for iOS on macOS “ und „https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle “.
Linux
- Bei der Konfiguration von „ Qt Multimedia “ mit aktiviertem FFmpeg ist das Pipewire- oder das Pulseaudio-Entwicklungspaket erforderlich. Ohne eines dieser Pakete wird FFmpeg nicht erkannt.
- Wenn Sie eine FFmpeg-Version verwenden, die mit VAAPI-Unterstützung kompiliert wurde, empfehlen wir, „ Qt Multimedia “ ebenfalls mit VAAPI-Unterstützung zu kompilieren, um die Hardware-Texturkonvertierung zu ermöglichen. Um „ Qt Multimedia “ mit VAAPI-Unterstützung zu konfigurieren, müssen die VAAPI-Entwicklerbibliotheken auf Ihrem System installiert sein. Überprüfen Sie die Datei „config.summary“, um sicherzustellen, dass die VAAPI-Unterstützung im Abschnitt „Hardwarebeschleunigung und Funktionen“ aktiviert ist.
- Bei der Konfiguration von „ Qt Multimedia “ mit dem GStreamer-Backend ist GStreamer v1.20 die Mindestanforderung. Wir empfehlen jedoch, nach Möglichkeit die neueste stabile Upstream-Version von GStreamer zu verwenden.
© 2026 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.