#今更どうしたの
外出先(ネットワークが弱いところ)で突然エンコードしたくなって、apt-get
で入れたはいいものの、そういえば自前ビルドってやったことないな〜と思ってやってみたってだけです。
#作業するよ
make
とかは適宜-j4
とかのオプションをつけてもいいかと
##まず古いffmpegと関連パッケージを削除する
$ sudo apt-get remove ffmpeg x264 libav-tools libvpx-dev libx264-dev
##ffmpegに必要なライブラリをインストールする
$ sudo apt-get update
$ sudo apt-get -y install autoconf build-essential checkinstall git libfaac-dev libgpac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html yasm zlib1g-dev
##x264をインストールする
$ cd
~/$ git clone --depth 1 git://git.videolan.org/x264
~/$ cd x264
~/x264$ ./configure --enable-static --disable-opencl
configure
のオプションに--disable-opencl
をつけるとffmpeg
のビルドの時にERROR: libx264 not found
みたいな事を言われなくて済む(済んだ)
###yasmのバージョンが低いとか怒られた
~/x264$ ./configure --enable-static
Found yasm 1.1.0.2352
Minimum version is yasm-1.2.0
If you really want to compile without asm, configure with --disable-asm.
しょうがないので…
###yasmをバージョンアップさせる
$ cd
~/$ wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
~/$ tar xzvf yasm-1.2.0.tar.gz
~/$ cd yasm-1.2.0
~/yasm-1.2.0$ ./configure
~/yasm-1.2.0$ make
~/yasm-1.2.0$ sudo checkinstall --pkgname=yasm --pkgversion="1.2.0" --backup=no --deldoc=yes --default
###再度作業を進める
~/x264$ ./configure --enable-static
~/x264$ make
~/x264$ sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes --fstrans=no --default
##fdk-aacをインストールする
$ cd
~/$ git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
~/$ cd fdk-aac
~/fdk-aac$ autoreconf -fiv
~/fdk-aac$ ./configure --disable-shared
~/fdk-aac$ make
~/fdk-aac$ sudo checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
##libvpxをインストールする
$ cd
~/$ git clone --depth 1 http://git.chromium.org/webm/libvpx.git
~/$ cd libvpx
~/libvpx$ ./configure
~/libvpx$ make
~/libvpx$ sudo checkinstall
0 - Maintainer: [ hoge ]
1 - Summary: [ hogehoge ]
2 - Name: [ libvpx ]
3 - Version: [ 1.0.0 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ libvpx ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ libvpx ]
12 - Conflicts: [ ]
13 - Replaces: [ ]
後々libvpxのバージョンがどうのこうのと怒られてしまったので試行錯誤した結果。
引数なしで$ sudo checkinstall
して手作業で進める。オプションで設定できる項目を手作業で埋めていく事になる。状況を見ながら判断。
大切なのはnameとversion(nameはもしかしてデフォルトで入ってたっけかな)
※2014年8月3日にもう一回やったらURLが上記のものからhttps://chromium.googlesource.com/webm/libvpx
に変更になってました
よくわかんないけどこれからやる人はこいつをどうぞ
##ffmpegをインストールする
$ cd
~/$ git clone --depth 1 git://source.ffmpeg.org/ffmpeg
~/$ cd ffmpeg
~/ffmpeg$ ./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
~/ffmpeg$ make
~/ffmpeg$ sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
$ hash x264 ffmpeg ffplay ffprobe
最後のhashは別に必要無いような気もする。