Help us understand the problem. What is going on with this article?

CentOS6.4にffmpegとffmpeg-phpをインストールする

More than 5 years have passed since last update.

概要

動画のアップロードとエンコードの機能をつくろうとして、CentOSにffmpegとffmpeg-phpをインストールするところでつまづいたので、インストールするまでの手順をメモ。
今回やろうとしていたのは、ユーザーが投稿した動画をS3にアップする前に、php側で一度h264のエンコードを行ってからS3にアップするというもの。
動画はh264/aacに変換したかったので、FAACとX264も合わせてインストールした。

事前準備

各種パッケージのインストール

ffmpegをインストールする前に、まずは下記のパッケージをインストールする。
sudo yum install nasm git subversion yum-plugin-priorities

RPMForgeリポジトリの追加

sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

リポジトリの設定を変更

sudo vi /etc/yum.repos.d/CentOS-Base.repo

Screen Shot 2014-06-29 at 21.55.29.png

アップデート

sudo yum -y update rpmforge-release

yumでデフォルトで使用できないように設定を変更

sudo vi /etc/yum.repos.d/rpmforge.repo

Screen_Shot_2014-06-29_at_22_02_55.png

FAACをインストール

今回オーディオコーデックはAACに変換したかったので、フリーのAACエンコーダであるFAACをインストールする

wget http://sourceforge.net/projects/faac/files/faac-src/faac-1.28/faac-1.28.tar.bz2/download?use_mirror=jaist
tar xjf faac-1.28.tar.bz2
cd faac-1.28
sh ./bootstrap
./configure --prefix=/usr/local
make
makeすると下記のようなエラーが出るので、
Screen Shot 2014-06-29 at 22.34.52.png

mpeg4ip.hを編集する
sudo vi common/mp4v2/mpeg4ip.h

123行目辺りの、
char *strcasestr(const char *haystack, const char *needle);
の記述を探しこのラインを削除する。

再度makeを実行
sudo make
sudo make install
cd

X264をインストール

H264に変換するために、X264をインストールする
X264をインストールする前に、yasmをインストールする(X264のビルドに必要)
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xvfz yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure --prefix=/usr/local
make
sudo make install
cd

次にx264をインストール
git clone git://git.videolan.org/x264.git
cd x264

./configure --prefix=/usr/local --enable-shared
make
sudo make install
cd

ffmpegをインストール

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --prefix=/usr/local --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-libfaac --enable-libx264 --enable-libxvid
make
sudo make install
cd

ffmpeg-phpに必要なパッケージのインストール

sudo yum install rec2 php-devel ffmpeg-libpostproc

ffmpeg-phpのインストール

phpからffmpegの機能の一部を使用できるffmpeg-phpをインストール
git clone https://github.com/tony2001/ffmpeg-php.git
cd ffmpeg-php
phpize
./configure --prefix=/usr/local --enable-skip-gd-check
make
sudo make install
cd

ffmpeg.soモジュールの組み込み

ffmpeg.iniがないので同フォルダにある適当なiniをコピーし、編集する (今回はgd.iniをコピーした)
cd "/etc/php.d"
sudo cp gd.ini ffmpeg.ini
ffmpeg.iniを編集する
sudo vi /etc/ld.so.conf
gdとなっている部分をffmpegと置き換える
; Enable ffmpeg extension module
extension=ffmpeg.so

組み込み確認
php -m でffmpegが追加されているか確認

Screen_Shot_2014-06-30_at_10_03_57.png

ライブラリのパスの設定

追加したライブラリが正しく読み込まれるように、パスを追加する
sudo vi /etc/ld.so.conf
ld.so.confの中身を以下のように修正

include ld.so.conf.d/*.conf
/usr/local/lib

ライブラリの更新

ld.so.confを更新したら、ld.so.cacheを更新する必要があるので、下記のコマンドを入力する
sudo ldconfig
これで、ld.so.confの変更が、ld.so.cacheにも適用される

Apacheの再起動

sudo service httpd restart

phpinfoでffmpegが確認できればOK

Screen Shot 2014-06-30 at 10.19.40.png

無事にffmpegが認識されていれば終了です。
お疲れ様でした。

参考URL

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした