LoginSignup
2
3

More than 3 years have passed since last update.

ffmpeg4.2.2をWSL(Ubuntu)でWindows用にビルドする

Last updated at Posted at 2020-04-17

忘れないようにメモします。

私はとりあえず動けばOKという感じでビルドするので警告とか無視していきます。
この記事の手順でビルドして問題が起きても私は責任を負いません。自己責任でお願いします。

ffmpegをビルドしようということでWSLでビルドすることにしました。
専用のツールが用意されているのでとっても楽です。

WSLの設定

WSLの起動方法については検索してください。検索したほうが詳しい情報が出ると思います。
WSLはUbuntuを使います。たぶんCentOSでも大丈夫です。

ツールのダウンロード

ディレクトリはhomeディレクトリ以下ならどこでもいいです。

git clone https://github.com/rdp/ffmpeg-windows-build-helpers.git
cd ffmpeg-windows-build-helpers

必要パッケージのダウンロード

とりあえず実行します。

./cross_compile_ffmpeg.sh

するとログの中にsudo apt install 〇〇みたいなコマンドが出るのでそれをコピーして実行します。
次にその他に必要なものをインストールします。

sudo apt install python3-pip
pip3 install ninja meson

nasmのインストール

#好きなディレクトリに移動
cd ~
wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.bz2
tar xjvf nasm-2.13.03.tar.bz2
cd nasm-2.13.03
./autogen.sh
./configure --prefix=/usr/local
make
sudo make install

バージョンは必要に応じて変えたほうがいいかもしれないです。
もっと新しいバージョンを求められたときは変えてください。

ffmpegのビルド

./cross_compile_ffmpeg.sh --build-ffmpeg-shared=y --build-intel-qsv=y --build-amd-amf=y --ffmpeg-git-checkout-version=n4.2.2 --enable-gpl=n

私はこんな感じで実行しました。
数時間かかります。
ターゲットには32bit、64bit一緒にビルド、もしくは片方だけを選びましょう。

dllがほしかったので--build-ffmpeg-shared=yでdllを生成するようにしました。不要であれば--build-ffmpeg-static=yです。

--build-intel-qsv=y --build-amd-amf=y
ここでIntel QSV、AMD amfをオプションで有効にします。
NVENC、NVDECは自動で有効になるようです。

--enable-gpl=nにするとlibx264が無効になります。--enable-gpl=yだとlibx264がインストールされます。
どうやら標準でOpenH264が使われるようです。

--ffmpeg-git-checkout-version=n4.2.2でffmpegのバージョンを指定します。指定しなかったら最新のファイルを落としてくるようです。
こちらのツールは最新版用に作られているようなので、最新版を指定しないとエラーが出る可能性があります。

その他詳しい設定についてはshファイルの中を覗くのがいいかもしれません。
詳細に変更したいなら直接書き換えたほうがいいと思います。

ビルド完了ログ

Compressing  COPYING.GPLv3.txt
Compressing  ffmpeg.exe
Compressing  ffplay.exe
Compressing  ffprobe.exe
Compressing  avcodec-58.dll
Compressing  avdevice-58.dll
Compressing  avfilter-7.dll
Compressing  avformat-58.dll
Compressing  avresample-4.dll
Compressing  avutil-56.dll
Compressing  swresample-3.dll
Compressing  swscale-5.dll

Everything is Ok

完成したファイルの場所

私の場合だとここにありました。
ffmpeg-windows-build-helpers/sandbox/win64/ffmpeg_git_lgpl_n4.2.2_shared/bin/
最後のログに出てるのでそこを読めばわかります。

エラー解決

とりあえずもう一回ビルドする

これで通ることが多いです。

Unknown option "--enable-libdav1d".

ffmpeg4.2からlibdav1dが利用可能になりました。cross_compile_ffmpeg.shの中から--enable-libdav1dを消すかビルドするffmpegのバージョンを上げましょう。

最後に

ffmpegを使うときはライセンスに気をつけましょう。ライセンス料とか色々考えなければなりません。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3