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