ffmpeg-windows-build-helpersというスクリプトを使うと簡単にビルドできます。
WSLのインストール
コマンドプロンプトまたはPowerShellを管理者権限で起動して以下のコマンドを実行します。
wsl --install
インストールが完了したらPCを再起動します。
Ubuntuが起動したらユーザー名とパスワードを入力します。
以下のコマンドでパッケージをアップデートします。
sudo apt update && sudo apt upgrade
Ubuntu 22.04 LTSで説明します。
スクリプトのダウンロード
以下のコマンドを実行します。
git clone https://github.com/rdp/ffmpeg-windows-build-helpers.git cd ffmpeg-windows-build-helpers
必要なパッケージのインストール
スクリプトを実行します。
./cross_compile_ffmpeg.sh
以下のようなメッセージが表示されます。
Could not find the following execs (svn is actually package subversion, makeinfo is actually package texinfo if you're missing them): libtoolize cmake python clang meson bzip2 autogen gperf nasm unzip pax g++ makeinfo bison flex cvs yasm automake autoconf gcc svn make pkg-config ragel Install the missing packages before running this script. for ubuntu: $ sudo apt-get update $ sudo apt-get install subversion ragel curl texinfo g++ ed bison flex cvs yasm automake libtool autoconf gcc cmake git make pkg-config zlib1g-dev unzip pax nasm gperf autogen bzip2 autoconf-archive p7zip-full meson clang python3-distutils python-is-python3 -y NB if you use WSL Ubuntu 20.04 you need to do an extra step: https://github.com/rdp/ffmpeg-windows-build-helpers/issues/452
sudoの行をコピーして実行します。
ビルド
スクリプトを実行します。
./cross_compile_ffmpeg.sh
以下のようなメッセージが表示されます。
What version of MinGW-w64 would you like to build or update? 1. Both Win32 and Win64 2. Win32 (32-bit only) 3. Win64 (64-bit only) 4. Local native 5. Exit Input your choice [1-5]:
ビルドには非常に時間がかかるので2か3がおすすめです。
ファイルを取り出す
エクスプローラーで以下のフォルダを開きます。
\\wsl$\Ubuntu\home\ユーザー名\ffmpeg-windows-build-helpers\sandbox\win32またはwin64\ffmpeg_git
ffmpeg.exe、ffplay.exe、ffprobe.exeを適当なフォルダにコピーします。
オプション
すべてのオプションは以下を実行すると表示されます。
./cross_compile_ffmpeg.sh -h
オプションは以下のようにスクリプト実行時に指定します。
./cross_compile_ffmpeg.sh --build-ffmpeg-shared=y
オプションを指定すると「ffmpeg_git_shared」のように出力フォルダ名が変わります。
Shared版のビルド
--build-ffmpeg-shared=y
ffmpeg_git_shared\bin に出力されます。
バージョンの指定
--ffmpeg-git-checkout-version=n4.3.1
nX.X.Xの形で指定します。
FDK AACを組み込む
--disable-nonfree=n
ライセンスの関係で再配布不可になります。
コメント