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

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

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

FFmpegソースコードの入手

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

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

Qt Multimediaのメインページで説明されているのと同じFFmpegバージョンを使用することを推奨します。

以下の段落では、FFmpeg のソースコードをC:\FFmpeg\ffmpeg の下に保存していると仮定しています。

前提条件

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

  • Microsoft Visual Studio コンパイラ(MSVC)または MinGW-w64。
  • MSYS2
  • MSYSパッケージ(perl、make、yasm、diffutils)。

Qtがサポートしている推奨コンパイラについては、「Qt for Windows - ソースからのビルド」を参照してください。Qt Online Installerを使用して、サポートされているMinGW-w64コンパイラをインストールすることができます。

MSYS2 のインストール

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

この文書では、MSYS2 がC:\msys64\ にインストールされていることを前提としています。これはwinget を使用する場合のデフォルトのパスです。

インストールが完了したら、Windows のスタートメニューからMSYS2 MINGW64 シェルを起動し、必要なライブラリをインストールします。

pacman -S --noconfirm perl make yasm diffutils

FFmpegをビルドする前に、MSYS2のPATH にコンパイラがなければなりません。これはMSVCとMinGW-w64で異なる。使用するコンパイラ用にMSYS2環境を準備します。

Mingw-w64でビルドするためのMSYS環境の準備

C:\Qt\Tools\mingw1310_64\bin の下にインストールされた MinGW-w64 の場合、PATH 環境変数をエクスポートすることで、PATH に追加できます。

$ export PATH=/c/Qt/Tools/mingw1310_64/bin:$PATH

pacman を使って MinGW-w64 をインストールすることもできます。

$ pacman -S mingw-w64-x86_64-toolchain

MSVC用のMSYS2環境の準備

MSYS2でMSVCコンパイラを使ってFFmpegをビルドするには、適切なCとC++コンパイラがパスにある状態でMSYS2を起動する必要があります。64ビットビルドの場合は

  • WindowsのスタートメニューからVisual Studio x64 Native Toolsコマンドプロンプトを起動します。
  • 既存のコマンド プロンプトから MSVC コンパイラを有効にします:
    "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64

このコマンド・プロンプトから、MINGW64 環境を選択し、パス継承を有効にするオプションを指定して MSYS2 シェルを起動します。

C:\msys64\msys2_shell.cmd -mingw64 -full-path

これにより新しいシェル・ウィンドウが起動し、MSVCコンパイラが使用可能であることを確認できます。

$ which cl.exe

FFmpegの設定とビルド

準備されたMSYS2シェルから、/c/FFmpeg ディレクトリに移動します。このディレクトリに、FFmpegのビルド成果物を格納するbuild ディレクトリを作成し、その中に移動します。

$ cd /c/FFmpeg/build

MinGW-w64 でビルドするように FFmpeg を設定するには、以下を実行します:

$ ../ffmpeg/configure --prefix=../install --disable-doc --enable-network --enable-shared

MSVCでビルドするようにFFmpegを設定するには、他のコマンドラインオプションに加えて、ツールチェーンを指定します:

$ ../ffmpeg/configure --prefix=../install --disable-doc --enable-network --enable-shared --toolchain=msvc

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

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

$ make -j install

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

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。