LoginSignup
29
32

More than 5 years have passed since last update.

ffmpegをビルドする

Last updated at Posted at 2014-03-22

今更どうしたの

外出先(ネットワークが弱いところ)で突然エンコードしたくなって、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は別に必要無いような気もする。

29
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
32