注意
書きなぐりメモ、かつ2020年10月27日現在の情報になりますことをご了承ください。
WSL(Windows Subsystem for Linux)の準備
正確にはWSL2です。
Windows上でビルドしようとするとMSYSやらと面倒だったのでWSLを使うことに。
ハマった時は、Windows Updateを手動更新するのを忘れずに。
今回はUbuntu 20.04を使いました。
下準備(1)
ここからは公式ガイドを参考にしました。
$ sudo apt update && sudo apt install git autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libtool libvorbis-dev pkg-config texinfo wget yasm zlib1g-dev mingw-w64
今回は一切ライブラリを入れずにビルドします。
ライブラリを入れる場合、後に説明する一部引数を変える必要があるかもしれません。
下準備(2)
公式のGitHubからクローンしてきます。
最新バージョンの確認は公式HPから。記事執筆時点での最新安定版は4.3.1でした。
$ git clone -b release/4.3 https://git.ffmpeg.org/ffmpeg.git ffmpeg && cd ffmpeg
ビルド
まずはコマンドをバッと。
$ PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure --arch=x86_64 --target-os=mingw64 --cross-prefix=x86_64-w64-mingw32- --disable-shared --enable-static --pkg-config-flags=--static --enable-w32threads --extra-cflags=-O2 --enable-optimizations --disable-gpl --enable-version3 --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-debug && make
$ PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure \
--arch=x86_64 \
--target-os=mingw64 \
--cross-prefix=x86_64-w64-mingw32- \
--disable-shared \
--enable-static \
--pkg-config-flags=--static \
--enable-w32threads \
--extra-cflags=-O2 \
--enable-optimizations \
--disable-gpl \
--enable-version3 \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages \
--disable-debug \
&& make
解説
完全に理解して指定しているわけでないために、解説が雑なのが申し訳ないです…。
PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure
--arch=x86_64
--target-os=mingw64
--cross-prefix=x86_64-w64-mingw32-
--disable-shared
--enable-static
--pkg-config-flags=--static
--enable-w32threads
--extra-cflags=-O2
--enable-optimizations
--disable-gpl
--enable-version3
--disable-doc
--disable-htmlpages
--disable-manpages
--disable-podpages
--disable-txtpages
--disable-debug
make
--enable-small
は実行速度を犠牲にバイナリサイズを小さくする引数ですが、今回は指定していません。
(私の環境の場合、実行速度が約5%遅くなったかわりにサイズは約27%小さくなりました。)
まとめ
書きなぐってすまんかった。
おまけ
この記事を書くきっかけになった私の開発するソフト、m3u8ToMP4をよろしくお願いします。
HTTP Live Streaming(HLS)で配信される動画・生放送をmp4などに変換するWindows向けソフトです。(保存した動画・音声が著作権法に抵触しないよう十分に注意してご利用ください。)