55
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

概要

動画のアップロードとエンコードの機能をつくろうとして、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と置き換える

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

55
60
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
55
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?