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 が作成される