実績紹介

技術紹介構築サイト

FFMPEGのインストール手順

2009/07/06

---------------------------------------------------------------------
動画変換のための環境構築手順
(ffmpeg の導入と、各種 CODEC 及びツールの導入手順)
---------------------------------------------------------------------

[目次]
0. 概要
1. はじめに
2-1. CODEC のインストール [liba52]
2-2. CODEC のインストール [AMR]
2-3. CODEC のインストール [FAAC]
2-4. CODEC のインストール [FAAD2]
2-5. CODEC のインストール [lame] (MP3)
2-6. CODEC のインストール [x264]
2-7. CODEC のインストール [Xvid]
2-8. ID3 解析libのインストール
3. ldconfig する (共有ライブラリのディレクトリパスを追加)
4. MPlayer のインストール
5. ffmpeg のインストール
6. flvtool2 のインストール
7. 使用例



==========================================================
概要
==========================================================

ffmpeg を使った、動画変換をするための環境を構築する手順書です。
各種 CODEC、flvtool2、MPlayer のインストール手順を含みます。

◆読み方
行頭が「 # 」で始まる行は、コマンドの入力です。



==========================================================
1. はじめに
==========================================================

◆MPlayer について
MPlayer には数多くの CODEC が付属しています。これらの CODEC を
利用するため、MPlayer をインストールします。なお、MPlayer には
mencoder というエンコーダが付属していますが、今回は使いません。
【注意!】 付属の CODEC が internal 扱いや builtin 扱いに
           なっているものは、別途インストールする必要があります。
           具体的には、libmpeg2, liba52, faad2, mp3lib です。(2007.12.07 現在)
           ----------------------------------------
           ◆対応策◆
           ----------------------------------------
           libmpeg2 : ffmpeg で対応
           liba52   : 別途インストール
           faad2    : 別途インストール
           mp3lib   : lame をインストール
           ----------------------------------------

◆各種 CODEC について
ffmpeg は、デフォルトで数多くの動画形式に対応しています。
しかし、デフォルトで対応する音声形式はあまり多くないため、
必要に応じて別途 CODEC をインストールします。
【参考WEB】
http://www.mplayerhq.hu/DOCS/HTML/en/codecs.html
http://www.mplayerhq.hu/DOCS/codecs-status.html

◆flvtool2 について
ffmpeg で作成された flv にメタデータがないために発生する、
シークできなくなるなどの不具合を回避するために使います。



==========================================================
2-1. CODEC のインストール [liba52]
==========================================================
 # wget http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz
 # tar xzf a52dec-0.7.4.tar.gz
 # cd a52dec-0.7.4
 # ./configure
 # make
 # make install



==========================================================
2-2. CODEC のインストール [AMR]
==========================================================

################### AMR (3GPP音声codec)
 # wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.0.tar.bz2
 # tar xjf amrnb-7.0.0.0.tar.bz2
 # cd amrnb-7.0.0.0
 # ./configure
 # make
 # make install

################### AMR Wideband
 # wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.2.tar.bz2
 # tar xjf amrwb-7.0.0.2.tar.bz2
 # cd amrwb-7.0.0.2
 # ./configure
 # make
 # make install



==========================================================
2-3. CODEC のインストール [FAAC]
==========================================================
 # wget http://downloads.sourceforge.net/faac/faac-1.26.tar.gz
 # tar xzf faac-1.26.tar.gz
 # cd faac
 # ./bootstrap           ##### automake, libtool が必要
 # ./configure
 # make
 # make install

【必要であれば automake / libtool をインストールします】
 # yum install automake
 # yum install libtool



==========================================================
2-4. CODEC のインストール [FAAD2]
==========================================================
 # wget http://downloads.sourceforge.net/faac/faad2-2.6.1.tar.gz
 # tar xzf faad2-2.6.1.tar.gz
 # cd faad2
 # ./bootstrap           ##### automake, libtool が必要
 # ./configure
 # make
 # make install

【必要であれば automake / libtool をインストールします】
 # yum install automake
 # yum install libtool



==========================================================
2-5. CODEC のインストール [lame] (MP3)
==========================================================
 # yum install ncurses
 # yum install ncurses-devel


##### http://sourceforge.net/project/showfiles.php?group_id=290
 # wget http://nchc.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
 # tar xzf lame-3.97.tar.gz
 # cd lame-3.97
 # ./configure
 # make
 # make install



==========================================================
2-6. CODEC のインストール [x264]
==========================================================
 # wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.2.tar.gz
 # tar xvzf yasm-0.7.2.tar.gz
 # cd yasm-0.7.2
 # sh ./configure
 # make
 # make install

 # wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090301-2245.tar.bz2
 # tar xjf x264-snapshot-20090301-2245.tar.bz2
 # cd x264-snapshot-20090301-2245
 # ./configure (./configure --disable-asm)
 # make
 # make install



==========================================================
2-7. CODEC のインストール [Xvid]
==========================================================
 # wget http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz
 # tar xzf xvidcore-1.1.3.tar.gz
 # cd xvidcore-1.1.3/build/generic
 # ./configure
 # make
 # make install



==========================================================
2-8. ID3 解析libのインストール
==========================================================
##### http://sourceforge.net/project/showfiles.php?group_id=979
 # wget http://nchc.dl.sourceforge.net/sourceforge/id3lib/id3lib-3.8.3.tar.gz
 # tar xzf id3lib-3.8.3.tar.gz
 # cd id3lib-3.8.3
 # ./configure
 # make
 # make install



==========================================================
3. ldconfig する (共有ライブラリのディレクトリパスを追加)
==========================================================
 # vi /etc/ld.so.conf    ### 「/usr/local/lib」を追加する。
 # ldconfig

----------------------
 # ln -s hoge hoge
を1つ1つ打ち込む手間をなくす措置です。

----------------------
【参考】
http://aerith.mydns.jp/regrets/2007/11/ffmpeg-install.html



==========================================================
4. MPlayer のインストール
==========================================================

◆以下からダウンロード
http://www.mplayerhq.hu/design7/dload.html

-------------------------
 # wget http://www.mplayerhq.hu/MPlayer/releases/mplayer-checkout-snapshot.tar.bz2
 # tar xjf mplayer-checkout-snapshot.tar.bz2
 # cd mplayer-checkout-2009-05-19 <= 日付部分は変わる可能性あり
 # ./configure
 # make
 # make install



==========================================================
5. ffmpeg のインストール
==========================================================

◆以下からダウンロード
http://ffmpeg.mplayerhq.hu/download.html

-----------------------------------
 # wget http://ffmpeg.mplayerhq.hu/releases/ffmpeg-checkout-snapshot.tar.bz2
 # tar xjf ffmpeg-checkout-snapshot.tar.bz2
 # cd ffmpeg-checkout-2009-05-19 <= 日付部分は変わる可能性あり
 
パッチを当てる(必要ない?)
cd /root/ffmpeg-checkout-2009-05-19/libavcodec/

vi patch.txt
-------------------------------------------------------
--- libfaad.c   (revision 9723)
+++ libfaad.c   (working copy)
@@ -218,11 +218,11 @@
         return -1;
     }
 #define dfaac(a, b) \
-    do { static const char* n = "faacDec" #a; \
+    do { static const char* n = "NeAACDec" #a; \
     if ((s->faacDec ## a = b dlsym( s->handle, n )) == NULL) { err = n; break; } } while(0)
     for(;;) {
 #else  /* !CONFIG_LIBFAADBIN */
-#define dfaac(a, b)     s->faacDec ## a = faacDec ## a
+#define dfaac(a, b)     s->faacDec ## a = NeAACDec ## a
 #endif /* CONFIG_LIBFAADBIN */

         // resolve all needed function calls

----------------------------------------------------------
patch < patch.txt


######### ↓バージョンによって引数のフォーマットが異なることがあるので、チェックします。
 # ./configure --help
#########
 # ./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-shared --enable-libx264 --enable-libxvid --enable-libamr-wb --enable-libamr-nb --enable-libfaad --enable-libfaadbin --enable-libfaac  --enable-libmp3lame
 (# ./configure --enable-gpl --enable-pp --enable-pthreads --enable-shared --enable-libx264 --enable-libxvid --enable-libamr-wb --enable-libamr-nb --enable-libfaad --enable-libfaadbin --enable-libfaac --enable-liba52 --enable-liba52bin --enable-libmp3lame)
 # make
 # make install
 # sudo ldconfig

-----------------------------------
※ --enable-gpl --enable-pp オプションを付けると、
   GPL のソースコードを使っても良いという指定になります。
   ただし、ffmpeg や libav* が GPL ライセンスになります。



==========================================================
6. flvtool2 のインストール
==========================================================

◆flvtool2 は ruby で実装されているため、まず ruby をインストールします。
 # yum install ruby

----------------------------------- flvtool2 のインストール
 # wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
 # tar xzf flvtool2-1.0.6.tgz
 # cd flvtool2-1.0.6
 # ruby setup.rb config
 # ruby setup.rb setup
 # ruby setup.rb install



==========================================================
7. 使用例
==========================================================

動画変換のための環境構築はこれで完了です。
以下、使用例です。

---------------------------------
◆動画を flv に変換
 # ffmpeg -i hoge.avi -vcodec flv -s 320x240 -ar 22050 -ac 1 -ab 24 -f flv hoge.flv

◆flv にメタデータ付加 (※)
 # flvtool2 -U hoge.flv

◆flv から swf に変換
 # ffmpeg -i hoge.flv -f swf hoge.swf

---------------------------------
(※) メタデータの付加については、
     -key:value
     の形でいろいろ追加できます。
     オプションについては flvtool2 --help を参照。

【例】
 # flvtool -U -title:HOGE_MOVIE_TITLE hoge.flv

---------------------------------
◆応用◆
flv 用のプレイヤーを Flash で実装すれば、YouTube で言うところの、再生コンポーネントが完成です。
後はPHP側で、検索、並べ替えなどの基本機能を実装し、使いやすいUIを作れば、動画投稿サイトになります。



==========================================================
以上