Erstellen von FFmpeg aus dem Quellcode unter macOS

Diese Seite erklärt, wie man FFmpeg auf macOS konfiguriert und baut. Dies beinhaltet:

  • Holen Sie sich den FFmpeg-Quellcode.
  • Installieren Sie die erforderlichen Abhängigkeiten.
  • Konfigurieren Sie FFmpeg über die Kommandozeile.
  • Bauen Sie die Entwicklungsbibliotheken.

Beschaffung des FFmpeg-Quellcodes

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

  • Download von der FFmpeg Download-Seite.
  • Klonen von git. Zum Beispiel klont dieser Befehl die Version 7.1 der FFmpeg-Quellen nach ~/ffmpeg.
    % git clone --branch n7.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg

Es wird empfohlen, die gleiche FFmpeg-Version zu verwenden, wie sie auf der HauptseiteQt Multimedia dokumentiert ist.

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

Voraussetzungen

Um FFmpeg zu bauen, werden diese Werkzeuge und Pakete benötigt:

Installieren von Homebrew

Um Homebrew zu installieren, führen Sie 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 aus:

% brew install yasm

FFmpeg konfigurieren und erstellen

Erstellen Sie ein Verzeichnis build innerhalb des Verzeichnisses ~/ffmpeg und navigieren Sie in dieses Verzeichnis:

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

Um FFmpeg zu konfigurieren, führen Sie aus:

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

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

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

Sobald der Befehl configure beendet 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 erstellen, wird dieser Pfad in der Variable FFMPEG_DIR gespeichert, die bei der Konfiguration von Qt Multimedia verwendet wird.

Konfigurieren und Erstellen von universellen FFmpeg-Binärdateien

Um universelle Binärdateien unter macOS zu erstellen (z. B. für die Architekturen x86_64 und arm64), führen Sie die folgenden Schritte aus:

  • Konfigurieren und erstellen Sie 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 Sie 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 mit lipo zu einer universellen Binärdatei.

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