Auf dieser Seite

FFmpeg aus dem Quellcode unter macOS kompilieren

Auf dieser Seite wird erklärt, wie man FFmpeg unter macOS konfiguriert und kompiliert. Die erforderlichen Schritte sind:

  • Laden Sie den FFmpeg-Quellcode herunter.
  • Installieren Sie die erforderlichen Abhängigkeiten.
  • Konfigurieren Sie FFmpeg über die Befehlszeile.
  • Kompilieren Sie die Entwicklungsbibliotheken.

Beziehen Sie den FFmpeg-Quellcode

Sie können den FFmpeg-Quellcode auf folgende Weise beziehen:

  • Laden Sie ihn von der FFmpeg-Download-Seite herunter.
  • Klonen Sie ihn aus Git. Dieser Befehl klont beispielsweise die Version 9.0.1 der FFmpeg-Quellen unter ~/ffmpeg.
    git clone --branch n9.0.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg

Es wird empfohlen, dieselbe FFmpeg-Version zu verwenden, wie sie auf der Hauptseite vonQt Multimedia dokumentiert ist.

In den folgenden Abschnitten wird davon ausgegangen, dass Sie den FFmpeg-Quellcode unter ~/ffmpeg ablegen.

Voraussetzungen

Zum Kompilieren von FFmpeg sind folgende Tools und Pakete erforderlich:

Homebrew installieren

Um Homebrew zu installieren, führen Sie folgenden Befehl aus:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Installation von Homebrew-Paketen

Um das Homebrew-Paket Yasm zu installieren, führen Sie folgenden Befehl aus:

brew install yasm

Konfigurieren und Erstellen von FFmpeg

Erstellen Sie im Verzeichnis „ ~/ffmpeg “ ein Verzeichnis „ build “ und wechseln Sie dorthin:

mkdir ~/ffmpeg/build
cd ~/ffmpeg/build

Um FFmpeg zu konfigurieren, führen Sie folgenden Befehl aus:

../configure --prefix=/usr/local/ffmpeg --disable-doc --enable-network --enable-shared

Das Argument „ --prefix “ gibt den Pfad an, in dem die FFmpeg-Entwicklungsbibliotheken nach dem Erstellen installiert werden. Die Dokumentation wird nicht benötigt, aber die Netzwerkfunktionen sollten aktiviert sein. Um FFmpeg als statische Bibliotheken zu erstellen, lassen Sie die Option „ --enable-shared “ weg.

Im vorangegangenen Codeausschnitt wurde für das Argument „ --prefix “ absichtlich ein absoluter Pfad verwendet. Wenn Sie einen relativen Pfad angeben (zum Beispiel „ ../install “), werden die Abhängigkeiten über diesen relativen Pfad referenziert und nicht über den korrekten Pfad „ @rpath “. Die Verwendung absoluter Pfade macht einen FFmpeg-Build nicht portabel. Um relative Pfade zu verwenden und den FFmpeg-Build portabel zu machen, müssen Sie die Abhängigkeiten manuell mit „otool“ korrigieren.

Sobald der Befehl „ configure “ abgeschlossen ist, erstellen und installieren Sie FFmpeg mit dem Befehl „ make “.

make -j install

Wenn der Build ohne Fehler abgeschlossen wird, werden die FFmpeg-Entwicklungsbibliotheken im Verzeichnis „ /usr/local/ffmpeg “ installiert. Wenn Sie „ Qt Multimedia “ kompilieren, wird dieser Pfad in der Variablen „ FFMPEG_DIR “ gespeichert, die bei der Konfiguration von „ Qt Multimedia “ verwendet wird.

Konfigurieren und Erstellen von universellen FFmpeg-Binärdateien

Um unter macOS universelle Binärdateien zu erstellen (beispielsweise sowohl für die x86_64- als auch für die arm64-Architektur), führen Sie die folgenden Schritte aus:

  • Konfigurieren und Erstellen von FFmpeg für die arm64-Architektur:
    ../configure --prefix=/usr/local/ffmpeg/arm64 --disable-doc --enable-network \
        --enable-shared --enable-cross-compile --arch=arm64 --cc="clang -arch arm64"
    make -j install
  • Konfigurieren und Erstellen von FFmpeg für die x86_64-Architektur:
    ../configure --prefix=/usr/local/ffmpeg/x86_64 --disable-doc --enable-network \
        --enable-shared --enable-cross-compile --arch=x86_64 --cc="clang -arch x86_64"
    make -j install
  • Kombinieren Sie die Builds mithilfe von „lipo“ zu einer universellen Binärdatei.

© 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.