CentOS6.xにFFmpegをインストールする

CentOS 6.x系にインストールしたことはなかったので備忘録としてメモ。

x264/AACのトランスコードだけできればいい環境を構築します。

環境

CentOS 6.3 x86_64

バージョンの確認方法がわからない方は以下のコマンドで確認

1
$ cat /etc/redhat-release

64bitかどうかの確認は以下のコマンドで確認

1
$ uname -a

必要なパッケージのインストール

1
$ yum install autoconf automake make gcc gcc-c++ pkgconfig wget libtool zlib-devel

リポジトリの追加

gitやらもろもろ必要となるのでepelとDAG(RPMforge)をリポジトリに追加する。

リポジトリのダウンロード

epel

Dag(RPMforge)

1
2
$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

リポジトリの追加

1
$ rpm -Uvh epel-release-6-8.noarch.rpm rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

追加したリポジトリの使用制限をかける

追加したリポジトリの使用をする際は明示的に指定するよう制限をかける

epel

1
2
3
4
5
6
7
8
9
10
$ vi /etc/yum.repos.d/epel.repo

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0 ← 0に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

DAG(RPMforge)

1
2
3
4
5
6
7
8
9
10
11
$ vi /etc/yum.repos.d/rpmforge.repo

[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0 ← 0に変更
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

FFmpegのインストール

ソースコードからインストールするものが多いので作業ディレクトリを作成する

1
$ mkdir ~/ffmpeg-source

x264 FFmpegは最新版を利用するのでgitをインストール

1
$ yum install --enablerepo=epel git

YASM

アセンブラ x264 FFmpegで使用される

1
$ yum install --enablerepo=epel yasm

X264のインストール

1
2
3
4
5
6
$ cd ~/ffmpeg-source
$ git clone git://git.videolan.org/x264.git
$ cd x264
$ ./configure --enable-shared --disable-asm
$ make
$ make install

libfdk_aac

1
2
3
4
5
6
7
$ cd ~/ffmpeg-source
$ git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
$ cd fdk-aac
$ autoreconf -fiv
$ ./configure
$ make
$ make install

ライブラリの設定

1
2
3
$ export LD_LIBRARY_PATH=/usr/local/lib/
$ echo /usr/local/lib > /etc/ld.so.conf.d/custom-libs.conf
$ ldconfig

FFmpegのインストール

今回はver1.2をインストールします。

1
2
3
$ cd ~/ffmpeg-source
$ git clone git://source.ffmpeg.org/ffmpeg.git
$ cd ffmpeg

ブランチ一覧の表示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ git branch -a

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/oldabi
  remotes/origin/release/0.10
  remotes/origin/release/0.11
  remotes/origin/release/0.5
  remotes/origin/release/0.6
  remotes/origin/release/0.7
  remotes/origin/release/0.8
  remotes/origin/release/0.9
  remotes/origin/release/1.0
  remotes/origin/release/1.1
  remotes/origin/release/1.2

1.2のブランチに切り替え

1
$ git checkout -b n1.2 origin/release/1.2

切り替わっているか確認

1
2
3
4
$ git branch

  master
* n1.2

インストール

1
2
3
4
$ ./configure --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 \
    --enable-shared --arch=x86_64 --enable-pthreads
$ make
$ make install

確認

1
2
3
4
5
6
7
8
9
10
11
12
13
$ ffmpeg -version

ffmpeg version 1.2
built on Mar  3 2013 03:53:58 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
configuration: --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 --enable-shared --arch=x86_64 --enable-pthreads
libavutil      52. 18.100 / 52. 18.100
libavcodec     54. 92.100 / 54. 92.100
libavformat    54. 63.104 / 54. 63.104
libavdevice    54.  3.103 / 54.  3.103
libavfilter     3. 42.103 /  3. 42.103
libswscale      2.  2.100 /  2.  2.100
libswresample   0. 17.102 /  0. 17.102
libpostproc    52.  2.100 / 52.  2.100

トランスコード

下記のコマンドでトランスコードしてみましたが、問題はなさそうです。

1
2
3
4
$ ffmpeg -i big_buck_bunny_480p_surround-fix.avi -s 400x300 \
  -c:v libx264 -c:v libx264 -profile:v baseline -preset:v slower \
  -b:v 300k -maxrate 300k -minrate 300k -bufsize 1835k \
  -ac 2 -c:a libfdk_aac -b:a 128k big_buck_bunny.mp4

ライセンス

x.264 aacは商用で利用する際はライセンス料が発生するので注意して下さい。ライセンス気にしたくない方はAmazon Elastic TranceCoder使えばいいと思います。大抵のことはできますよ。

あれ…Dag(RPMforge)使ってない…まぁ他のコーデックいれたりするとき使うのでいれとけばいいと思います。

参考

Install FFmpeg on CentOS or RedHat EL 6.x

Compile FFmpeg on CentOS 6.x

Amazon Linuxにffmpegを入れて動画エンコーディングする

Comments