x264 が有効な FFmpeg をさくらのレンタルサーバーにインストールする
動画の変換などに便利な FFmpeg をさくらのレンタルサーバーにインストールしたので、そのときの記録を残しておきます。
前提
今回インストールしたレンタルサーバーの OS 情報は以下の通りでした。契約時期によって OS やライブラリのバージョンが異なり、下記の手順ではうまくいかないかもしれません。
% uname -v
FreeBSD 11.2-RELEASE-p14 #0: Mon Aug 19 22:38:50 UTC 2019 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
% gmake -v
GNU Make 4.3
% gcc --version
gcc (FreeBSD Ports Collection) 7.5.0
準備(.cshrc に項目を追加する)
インストールの準備として、さくらのレンタルサーバーのデフォルトシェルが csh なので、.cshrc に必要な環境変数を追加しておきます。
setenv TMPDIR ~/tmp
setenv LIBRARY_PATH ~/lib
setenv LD_LIBRARY_PATH ~/lib
setenv C_INCLUDE_PATH ~/include
setenv PKG_CONFIG_PATH ~/lib/pkgconfig:/usr/local/libdata/pkgconfig
NASM のインストール
x264 が有効な FFmpeg をインストールするためには、NASM、x264、FFmpeg の順にインストールします。というわけで、まずは NASM から。
cd ~
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.gz
tar xvzf nasm-2.15.05.tar.gz
cd nasm-2.15.05
./configure ./configure --prefix=${HOME}
gmake
gmake install
x264 のインストール
続いて x264 をインストールします。
cd ~
wget https://code.videolan.org/videolan/x264/-/archive/stable/x264-stable.tar.gz
tar xvzf x264-stable.tar.gz
cd x264-stable
bash ./configure --prefix=${HOME} --enable-static --enable-pic --disable-opencl
gmake -j2
gmake install
FFmpeg のインストール
そしていよいよ FFmpeg をインストールします。gmake のオプション -j を指定すると複数のスレッドで同時にコンパイルを行うことができますが、大きすぎる数字を指定すると途中で失敗してしまうので、控えめに 2 を指定しています。
setenv PKG_CONFIG_PATH ~/lib/pkgconfig
ですが、これを実行しておかないと、ビルド時に WARNING: using libx264 without pkg-config
のエラーが出ます。.cshrc で ~/lib/pkgconfig もパスに指定しているのですが、なぜかうまく参照することができませんでした。。
cd ~
wget https://ffmpeg.org/releases/ffmpeg-4.4.1.tar.gz
tar xvzf ffmpeg-4.4.1.tar.gz
cd ffmpeg-4.4.1
setenv PKG_CONFIG_PATH ~/lib/pkgconfig
./configure --disable-x86asm --enable-openssl --cc=clang --prefix=${HOME} --disable-ffplay --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --disable-manpages --enable-small --enable-static --enable-libx264 --enable-nonfree --enable-gpl
gmake -j2 all
install ffmpeg ~/bin
install ffprobe ~/bin
今回使用しているコンパイルオプションは以下の通り(FFmpeg に固有のもののみ説明)。ffmpeg と ffprobe の実行ファイルのみをインストールするため、不要なものを削っています。
- –disable-x86asm
- x86asm を使用しない
- –enable-openssl
- openssl を使用する。変換元の動画の URL が https のときに必要
- –prefix=PREFIX
- インストール先のディレクトリ。実際には ffmpeg は PREFIX/bin にインストールされます
- –disable-ffplay
- ffplay をビルドしない
- –disable-doc
- ドキュメントをビルドしない
- –disable-htmlpages
- HTML 形式のドキュメントをビルドしない
- –disable-podpages
- POD 形式のドキュメントをビルドしない
- –disable-txtpages
- テキスト形式のドキュメントをビルドしない
- –disable-manpages
- man をビルドしない
- –enable-small
- コンパイル速度を犠牲にしてサイズを小さくする
- –enable-static
- スタティックライブラリをビルドする
- –enable-libx264
- x264 を有効にする
- –enable-nonfree
- nonfree のコードを使用する(x264 を有効にするために必要)
- –enable-gpl
- GPL のコードを使用する(openssl を有効にするために必要)
普段、apt とか brew とかでパッケージ名を指定するだけの生活を送っているので、久しぶりにソースコードからインストールすると、戸惑うことばかりです。さくらのレンタルサーバーは FreeBSD なので、そのせいもあるかもしれませんが。
ディスカッション
コメント一覧
まだ、コメントがありません