NVENCとfdk-aacが使えるffmpegをビルドする
最新の開発環境である MSYS2 を使って 64bit版 をビルドする。
fdk-aac のバイナリは配布禁止なので自分でコンパイルする必要がある。(ffmpeg の aac は音質が悪い)
必要なファイルをダウンロード
MSYS2 のインストーラをダウンロード(msys2-x86_64-20240727)
FFmpeg nv-codec-headers のダウンロード(nv-codec-headers-n12.0.16.1)
ffmpeg のダウンロード(ffmpeg-6.1.2)More releases 6.0以降でav1対応
fdk-aac のダウンロード(fdk-aac-2.0.2)
nasm のバイナリをダウンロード、2.13以上が必要(nasm-2.16rc12-win64)
l-smash のダウンロード(l-smash-master 2020.03.16)
x264 のダウンロード(x264-stable x264 core 164 2023.10.01)browse the source
Opus のダウンロード(opus-1.5.2)av1用音声(.webm用)
MSYS2のインストール
MSYS2のインストーラを実行
デフォルトのインストール場所は C:\msys64
スタート メニューから MSYS2 の MSYS2 MSYS を起動しコマンド実行
pacman -Syu 再起動後 pacman -Su
gcc をインストール(MSYS2推奨のucrt)make pkg-config も
pacman -S mingw-w64-ucrt-x86_64-gcc make pkg-config
"mingw-w64-ucrt-x86_64" がインストール先 "ucrt64" を指定する、指定のないものは "usr" にインストールされ共通で使用される
MSYS2 UCRT64を起動、バージョン確認
gcc -v
make -v
pkg-config -version
ffmpegのビルド
ダウンロードしたファイルをホームディレクトリに展開する(7-Zip などを使って)C:\msys64\home\名前
nasm.exe を C:\msys64\ucrt64\bin にコピーする
MSYS2 UCRT64を起動、フォルダ名は展開したフォルダ名に合わせてください
fdk-aac のインストール
cd fdk-aac-2.0.2
./configure --prefix=/ucrt64
make -j8
make install
-j8はスレッド数、CPUに合わせて設定、デフォルトは1(遅い)
l-smash のインストール(x264.exeで使用)
cd ../l-smash-master
./configure --prefix=/ucrt64
make lib -j8
make install-lib
x264 のインストール
cd ../x264-stable
./configure --prefix=/ucrt64 --enable-static --enable-strip
make -j8
make install
FFmpeg nv-codec-headers のインストール
cd ../nv-codec-headers-n12.1.14.0
make install PREFIX=/ucrt64
opus のインストール av1用音声(.webm用)
cd ../opus-1.5.2
./configure --prefix=/ucrt64
make -j8
make install
ffmpeg のビルド
cd ../ffmpeg-6.1.2
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-nvenc --enable-libopus --extra-ldflags=-static --optflags=-O2
make -j8
ffmpeg のディレクトリに ffmpeg.exe と ffprobe.exe が作成される