ただの備忘録
FDK-AACライセンス上バイナリ再配布は厳しい条件があるので基本自分でビルドする必要がある
※足りない機能がある場合は各自で追加してください
作成日: 2025-11-04
対象OS: Windows 10/11 (64bit)
ビルド環境: MSYS2 + MinGW-w64
成果物: FFmpeg実行可能バイナリ(CMD/PowerShell対応)
fontconfig: 有効(字幕・テキスト描画機能付き)
形態: 実行ファイル + 必要なランタイムDLL
目次
事前準備
必要なもの
- Windows 10/11 (64bit)
- 空きディスク容量: 10GB以上
- インターネット接続
- 所要時間: 1-2時間(ネットワーク速度による)
注意事項
- 管理者権限は不要です
- ウイルス対策ソフトがビルドを妨げる場合があります(一時的に除外設定を推奨)
- このビルドは個人ビルドによる使用または社内使用限定です(外部への再配布禁止)
MSYS2のインストール
ステップ1: MSYS2のダウンロード
- ブラウザで https://www.msys2.org/ を開く
- ページ上部の「Download」から最新版をダウンロード
- ファイル名:
msys2-x86_64-YYYYMMDD.exe
- ダウンロードした.exeファイルを実行
ステップ2: MSYS2のインストール
- インストーラーが起動したら「次へ」をクリック
- インストール先:
C:\msys64(デフォルトのまま推奨) - 「次へ」→「次へ」→「完了」
- 「Run MSYS2 now」のチェックを外して完了
ステップ3: システムの初期更新
- スタートメニューから 「MSYS2 MINGW64」 を起動
- ⚠️ 重要: 「MSYS2 MSYS」ではなく「MSYS2 MINGW64」を選択してください
- 以下のコマンドを実行:
pacman -Syu
- 以下のようなメッセージが表示されます:
:: Proceed with installation? [Y/n]
Y を入力してEnterキーを押す
- 更新が完了すると以下のメッセージが表示されます:
警告: terminate MSYS2 without returning to shell and check for updates again
ウィンドウの ×ボタン で閉じる
再度 「MSYS2 MINGW64」 を起動
以下のコマンドを実行:
pacman -Syu
Y を入力してEnterキーを押す
- 更新が完了したら、そのままターミナルを開いたままにする
⏱️ 待機時間: 10-20分程度
開発ツールのインストール
ステップ4: ビルドツールのインストール
MSYS2 MINGW64 ターミナルで以下を実行:
pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-pkgconf mingw-w64-x86_64-nasm mingw-w64-x86_64-yasm mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja git autoconf automake libtool
プロンプトが表示されたら:
Enter a selection (default=all):
何も入力せず Enterキーを押す(すべてインストール)
:: Proceed with installation? [Y/n]
Y を入力してEnterキーを押す
⏱️ 待機時間: 5-15分程度
依存ライブラリのインストール
ステップ5: コーデック&ライブラリのインストール
MSYS2 MINGW64 ターミナルで以下を1行として実行:
pacman -S mingw-w64-x86_64-x264 mingw-w64-x86_64-x265 mingw-w64-x86_64-aom mingw-w64-x86_64-ffnvcodec-headers mingw-w64-x86_64-openssl mingw-w64-x86_64-rtmpdump mingw-w64-x86_64-fontconfig mingw-w64-x86_64-freetype mingw-w64-x86_64-fribidi mingw-w64-x86_64-harfbuzz mingw-w64-x86_64-libxml2 mingw-w64-x86_64-SDL2 mingw-w64-x86_64-lame mingw-w64-x86_64-opus mingw-w64-x86_64-libvorbis mingw-w64-x86_64-libvpx mingw-w64-x86_64-libass mingw-w64-x86_64-dav1d mingw-w64-x86_64-svt-av1
:: Proceed with installation? [Y/n]
Y を入力してEnterキーを押す
⏱️ 待機時間: 5-10分程度
📝 Note: FDK-AACは次のステップで手動ビルドするため、ここではインストールしません。
FDK-AACのビルド
ステップ6: 作業環境のセットアップ
# 作業ディレクトリ作成
mkdir -p ~/ffmpeg_sources
cd ~/ffmpeg_sources
# ビルド成果物の配置先
export PREFIX="$HOME/ffmpeg_build"
mkdir -p $PREFIX/{bin,include,lib,share/pkgconfig}
# 環境変数の設定
export PATH="$PREFIX/bin:$PATH"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig"
ステップ7: FDK-AACのソースコード取得
cd ~/ffmpeg_sources
# FDK-AACのクローン
git clone https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
⏱️ 待機時間: 1-3分程度
ステップ8: FDK-AACのビルド
./autogen.sh: line 2: autoreconf: command not found というエラーが出た場合は先に
pacman -S autoconf automake libtool
を行った後に ./autogen.sh を実行
# ビルド準備(configure スクリプト生成)
./autogen.sh
# Configure(静的ライブラリとして)
./configure \
--prefix="$PREFIX" \
--disable-shared \
--enable-static
# ビルド
make -j$(nproc)
# インストール
make install
⏱️ 待機時間: 2-5分程度
ステップ9: FDK-AACのビルド確認
# ライブラリファイルの確認
ls -lh $PREFIX/lib/libfdk-aac.a
# バージョン確認
pkg-config --modversion fdk-aac
期待される出力:
-rw-r--r-- 1 (ユーザー名) 197121 2.5M libfdk-aac.a
2.0.3
✅ 上記のような出力が表示されればFDK-AACのビルド成功です。
FFmpegのビルド
ステップ10: FFmpegソースコードの取得
cd ~/ffmpeg_sources
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout n8.0
⏱️ 待機時間: 3-5分程度
📝 Note: n8.0 は安定版です。最新版を使いたい場合は git checkout master を実行してください。
ステップ11: Configure(ビルド設定)
以下のコマンドを1つのブロックとしてコピー&ペーストして実行:
./configure \
--prefix="$PREFIX" \
--enable-gpl \
--enable-nonfree \
--enable-libfdk-aac \
--enable-libx264 \
--enable-libx265 \
--enable-libaom \
--enable-libass \
--enable-nvenc \
--enable-librtmp \
--enable-openssl \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libharfbuzz \
--enable-libmp3lame \
--enable-libopus \
--enable-libsvtav1 \
--enable-libdav1d \
--enable-libvorbis \
--enable-libvpx \
--enable-libxml2 \
--enable-static \
--disable-shared \
--extra-cflags="-I$PREFIX/include -I/mingw64/include" \
--extra-ldflags="-L$PREFIX/lib -L/mingw64/lib -static" \
--extra-libs="-lstdc++ -lpthread -lharfbuzz -lfreetype -lharfbuzz -lbz2 -lpng16 -lz -lbrotlidec -lbrotlicommon -lglib-2.0 -lintl -lws2_32 -lole32 -lwinmm -lshlwapi -luuid -latomic -lpcre2-8 -lgraphite2 -lrpcrt4 -lgdi32 -luser32 -ldwrite -lusp10 -liconv" \
--pkg-config-flags="--static"
⏱️ 待機時間: 1-3分程度
重要なポイント:
--extra-libsには fontconfig と harfbuzz の依存関係を解決するために、以下のライブラリを明示的に指定しています:-lstdc++: C++標準ライブラリ(harfbuzz対応)-lpthread: POSIXスレッド-lharfbuzz,-lfreetype: テキストレンダリング-lbz2,-lpng16,-lz: 圧縮・画像処理-lbrotlidec,-lbrotlicommon: Brotli圧縮-lglib-2.0,-lintl: GLibライブラリと国際化-lws2_32,-lole32,-lwinmm,-lshlwapi,-luuid: Windows API-latomic: アトミック操作-lpcre2-8: 正規表現-lgraphite2: フォントレンダリング-lrpcrt4,-lgdi32,-luser32,-ldwrite,-lusp10: Windows描画API-liconv: 文字コード変換(fontconfig対応)
📝 Note: 静的リンクでは依存関係を手動で解決する必要があります。このリストは fontconfig と harfbuzz の完全な依存ツリーです。
成功メッセージ例:
Enabled libraries:
libfdk_aac libx264 libx265
libfontconfig libfreetype libmp3lame
...
License: nonfree and unredistributable
Creating config.mak, config.h, and doc/config.texi...
✅ 上記のように libfdk_aac と libfontconfig が Enabled libraries に含まれていればOK!
ステップ12: ビルド実行
make -j$(nproc)
⏱️ 待機時間: 10-40分程度(PCスペックによる)
💡 進行状況の目安:
CC libavcodec/...というメッセージが大量に表示されますLD ffmpeg_g.exeというメッセージが出るとほぼ完了です- エラーなく進行すれば問題ありません
📝 Note: CPUの温度が上がります。ノートPCの場合は換気を確保してください。
ステップ13: インストール
make install
⏱️ 待機時間: 1-2分程度
動作確認
ステップ14: MSYS2環境での確認
cd $PREFIX/bin
# バージョン確認
./ffmpeg.exe -version
期待される出力:
ffmpeg version n8.0 Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 15.2.0 (Rev1, Built by MSYS2 project)
configuration: --prefix=/home/(ユーザー名)/ffmpeg_build --enable-gpl --enable-nonfree --enable-libfdk-aac ...
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.100 / 61. 19.100
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
ステップ15: FDK-AACの有効化確認
./ffmpeg.exe -encoders | grep libfdk_aac
期待される出力:
A..... libfdk_aac Fraunhofer FDK AAC (codec aac)
ステップ16: fontconfigの有効化確認
./ffmpeg.exe -filters | grep drawtext
期待される出力:
... drawtext VV->V Draw text on top of video frames using libfreetype library.
ステップ17: 依存DLLの確認
ldd ffmpeg.exe
期待される出力: Windows標準DLLと以下の2つのMinGW DLLに依存します:
libgcc_s_seh-1.dll => /mingw64/bin/libgcc_s_seh-1.dll
libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll
📝 Note: これらの2つのDLLはパッケージに含めます。
ステップ18: 簡易エンコードテスト
# 5秒間の1000Hzサイン波を生成してFDK-AACでエンコード
./ffmpeg.exe -f lavfi -i "sine=frequency=1000:duration=5" -c:a libfdk_aac -b:a 576k -cutoff 20000 "test.m4a"
# ファイルが生成されたか確認
ls -lh test.m4a
期待される出力:
-rw-r--r-- 1 (ユーザー名) 197121 120K Nov 4 05:30 test.m4a
ステップ19: Windows CMD/PowerShellでの確認
WindowsのコマンドプロンプトまたはPowerShellを開く
以下を実行:
cd "C:\msys64\home\(ユーザー名)\ffmpeg_build\bin"
ffmpeg.exe -version
バージョン情報が表示されればOK!
FDK-AACの確認:
ffmpeg.exe -encoders | findstr fdk
- 簡易テスト:
ffmpeg.exe -f lavfi -i "sine=frequency=1000:sample_rate=48000:duration=5" -ac 2 -c:a libfdk_aac -b:a 576k -cutoff 20000 "test_windows.m4a"
dir test_windows.m4a
✅ すべて正常に実行できれば、ビルド完了です!
パッケージの作成
ステップ20: フォルダの準備
MSYS2 MINGW64 ターミナルに戻って:
cd ~
mkdir ffmpeg-fdk-aac-windows-x64
ステップ21: 実行ファイルのコピー
cp $PREFIX/bin/ffmpeg.exe ffmpeg-fdk-aac-windows-x64/
cp $PREFIX/bin/ffprobe.exe ffmpeg-fdk-aac-windows-x64/
cp $PREFIX/bin/ffplay.exe ffmpeg-fdk-aac-windows-x64/
ステップ22: 必要なランタイムDLLのコピー
# MinGWランタイムDLLをコピー
cp /mingw64/bin/libgcc_s_seh-1.dll ffmpeg-fdk-aac-windows-x64/
cp /mingw64/bin/libwinpthread-1.dll ffmpeg-fdk-aac-windows-x64/
📝 重要: これらのDLLは ffmpeg.exe の動作に必須です。
ステップ23: ライセンスファイルのコピー
cp ~/ffmpeg_sources/ffmpeg/LICENSE.md ffmpeg-fdk-aac-windows-x64/LICENSE-FFmpeg.md
cp ~/ffmpeg_sources/fdk-aac/NOTICE ffmpeg-fdk-aac-windows-x64/NOTICE-FDK-AAC.txt
0 件のコメント:
コメントを投稿