macOSでFFmpegをソースからビルドする

このページでは、macOS上でFFmpegを設定・ビルドする方法を説明します。以下の手順で行います:

  • FFmpegのソースコードを入手する。
  • 必要な依存関係をインストールします。
  • コマンドラインからFFmpegを設定する。
  • 開発用ライブラリをビルドする。

FFmpegソースコードの入手

FFmpegのソースコードは以下の方法で入手できます:

  • FFmpegのダウンロードページからダウンロードする。
  • gitからクローンする。例えば、このコマンドは FFmpeg ソースのバージョン 7.1 を~/ffmpeg にクローンします。
    % git clone --branch n7.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg

Qt Multimedia のメインページに記載されているのと同じ FFmpeg バージョンを使用することをお勧めします。

以下の段落では、FFmpeg のソースコードを~/ffmpeg の下に保存することを前提としています。

前提条件

FFmpeg をビルドするには、以下のツールとパッケージが必要です:

  • Homebrew
  • Homebrewパッケージ(yasm)。

Homebrewのインストール

Homebrewをインストールするには

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

Homebrewパッケージのインストール

HomebrewパッケージYasmをインストールするには、以下を実行してください:

% brew install yasm

FFmpegの設定とビルド

~/ffmpeg ディレクトリ内にbuild ディレクトリを作成し、その中に移動します:

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

FFmpegを設定するには、以下を実行する:

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

--prefix 引数は、ビルド後にFFmpeg開発ライブラリがインストールされるパスを指定します。ドキュメントは必要ありませんが、ネットワーク機能は有効にしてください。FFmpegをスタティック・ライブラリとしてビルドするには、--enable-shared オプションを省略します。

前のコード・スニペットでは、--prefix 引数に意図的に絶対パスを使用しました。相対パス(たとえば、../install )を指定すると、依存関係はこの相対パスで参照され、@rpath を使った正しいパスでは参照されません。絶対パスを使用すると、FFmpegのビルドが移植不可能になります。相対パスを使用してFFmpegビルドをポータブルにするには、otoolを使用して依存関係を手動で修正する必要があります。

configure コマンドが終了したら、make コマンドを使って FFmpeg をビルドしてインストールします。

% make -j install

ビルドがエラーなしで完了すると、FFmpegの開発ライブラリは/usr/local/ffmpeg ディレクトリにインストールされます。Qt Multimedia をビルドした場合、このパスはQt Multimedia を設定するときに使用するFFMPEG_DIR 変数に格納されます。

FFmpegユニバーサルバイナリの設定とビルド

macOSでユニバーサル・バイナリ(たとえば、x86_64とarm64の両方のアーキテクチャ用)を作成するには、以下の手順に従います:

  • arm64アーキテクチャ用にFFmpegを設定し、ビルドする:
    % ../configure --prefix=/usr/local/ffmpeg/arm64 --disable-doc --enable-network \
        --enable-shared --enable-cross-compile --arch=arm64 --cc="clang -arch arm64"
    % make -j install
  • x86_64 アーキテクチャ用の FFmpeg を設定し、ビルドします:
    % ../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
  • lipoを使用してビルドをユニバーサルバイナリに結合する。

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