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 インストーラを使用する。
- wingetパッケージマネージャを使用します。
winget install 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。