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 なので、そのせいもあるかもしれませんが。

この記事を書いた人

グッドネイバー

“ Webに悩むお客さまの「よき隣人」でありたい ” をモットーに、Web システム開発(主に Laravel)、Web マーケティング支援の仕事をしています。詳しい業務内容はこちら。お仕事のご依頼・ご相談はこちらからお気軽にどうぞ。