ffmpegをビルドする

#今更どうしたの
外出先（ネットワークが弱いところ）で突然エンコードしたくなって、`apt-get`で入れたはいいものの、そういえば自前ビルドってやったことないな〜と思ってやってみたってだけです。

#作業するよ
`make`とかは適宜`-j4`とかのオプションをつけてもいいかと

##まず古いffmpegと関連パッケージを削除する

```bash
$ sudo apt-get remove ffmpeg x264 libav-tools libvpx-dev libx264-dev
```

##ffmpegに必要なライブラリをインストールする

```bash
$ 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をインストールする

```bash
$ 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のバージョンが低いとか怒られた

```bash
~/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をバージョンアップさせる

```bash
$ 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
```

###再度作業を進める

```bash
~/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をインストールする

```bash
$ 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をインストールする

```bash
$ 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をインストールする

```bash
$ 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は別に必要無いような気もする。