Vine Linux への FFmpeg インストールと、使い方(2007年11月Ver)

以前、FLV2MP3(仮)のサービス立ち上げ時に「Vine Linux へのFFmpegのインストール方法とか」という記事を書きましたが、その後 FLV2iPod(仮)用に動画変換も対応させたので、改めてコンパイルやインストール、また導入後の使い方についてまとめなおしました。

◆FFmpeg をインストールする前に……

1.MP3変換用コーデック(MP3-LAME)のインストール。

# wget http://nchc.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
# tar xvzf lame-3.97.tar.gz
# cd lame-3.97
# ./configure
# make
# make install


2.OGGコーデック(Ogg Vorbis)のインストール。
OGG形式の音楽への変換を行いたい場合のみ。MP3だけで良い場合は不要です。

# apt-get install libogg libogg-devel


3.AACコーデック、AACデコーダ(FAAC, FAAD)のインストール。
AACはMP4の音声形式に使いますので、iPod用動画変換を行いたい場合はインストール。

# wget http://downloads.sourceforge.net/faac/faac-1.26.tar.gz
# tar zxvf faac-1.26.tar.gz
# cd faac
# ./bootstrap
# ./configure
# make
# make install
# apt-get install faad2 faad2-devel


4.H.264エンコード用ライブラリ(x264)のインストール。
H.264は、iPod touch 用MP4の映像コーデックとしてインストールします。第5世代 iPodには未対応なので、こちらも必要に応じてインストール。

# upt-get install nasm
# wget http://downloads.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-YYYYMMDD-ZZZZ.tar.bz2 ※
# bzip2 -dc ./x264-snapshot-YYYYMMDD-ZZZZ.tar.bz2 | tar xvf -
# cd x264-snapshot-YYYYMMDD-ZZZZ
# ./configure --enable-pthread --enable-shared
# make
# make install

※(http://downloads.videolan.org/pub/videolan/x264/snapshots/ から最新版を取得)


5.Xvidコーデック(Xvid)のインストール。
Xvid は通常のMPEG4より綺麗な画質を求める人用。こちらは第5世代iPodにも対応しています。

# wget http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz
# tar zxvf xvidcore-1.1.3.tar.gz
# cd xvidcore-1.1.0/build/generic
# ./configure
# make
# make install

事前準備はここまで。


◆FFmpeg の取得とコンパイルとインストールと。

# svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
# cd ffmpeg
# ./configure --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libogg --enable-libfaac --enable-libfaad --enable-pthreads --enable-libxvid --enable-shared
# make
# make install

※コンパイルオプションについては、FFmpeg のバージョンによりかなり差があるため、
(少し前のバージョンでは、x264 のオプションは --enable-x264 だった 等)
./configure --help を参照のこと。


これで、FFmpeg のインストールまで完了。
さっそく実行してみると……

# ffmpeg -version
ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory

なんか、共有ライブラリのファイルが見つかりません! って怒られた…orz

実はこの「libmp3lame.so.0」のファイルは「/usr/local/lib/libmp3lame.so.0」にありますが、ライブラリディレクトリの「/usr/lib/」にはありません。
そのため、シンボリックリンクを貼ってあげてもいいですが

# ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0

インストールしたモジュール全てにこの作業をやるのはめんどくさいので、共有ライブラリディレクトリを追加してしまいます。

# vi /etc/ld.so.conf
# ldconfig

※ /etc/ld.so.conf のファイルに /usr/local/lib を追記して、ldconfig コマンドを実行。

もう一度 FFmpeg を実行してみると…

# ffmpeg -version
FFmpeg version SVN-r10755, Copyright (c) 2000-2007 Fabrice Bellard, et al.

とか、コンパイル時のオプションの一覧とかが出てくれば、準備OKです。


◆FLVファイルから音楽データの抽出
1.flvファイルからMP3データを切りだす(ついでにタイトルタグを埋め込む)

# ffmpeg -i sm1097445.flv -title "みくみくにしてあげる♪【してやんよ】" -vn -acodec copy mikumiku.mp3


2.flvファイルから音声データを MP3に変換(192Kbps/2ch)

# ffmpeg -i sm1097445.flv -vn -acodec libmp3lame -ac 2 -ab 192k mikumiku.mp3


3.flvファイルから音声データを OGGに変換(そこそこクオリティ)

# ffmpeg -i sm1097445.flv -vn -ac 2 -aq 24 mikumiku.ogg


4.flvファイルから音声データを AACに変換(64Kbps/2ch)

# ffmpeg -i sm1097445.flv -vn -acodec libfaac -ac 2 -ab 64k mikumiku.aac

※ビットレートの指定について、古いバージョンの FFmpegでは、128 192 というように、k を付けずに指定できたが、現在の最新版では k を付けなければならない。


◆FLVファイルを iPod 用 MP4ファイルに変換
1.MPEG4 QVGA/標準画質 (Video: mpeg4, 320x240, 600kb/s, Audio: AAC 44100Hz, 128kb/s)

# ffmpeg -i sm1097445.flv -f mp4 -b 600k -s 320x240 -r 29.97 -acodec libfaac -ac 2 -ar 44100 -ab 128k mikumiku.mp4


2.MPEG4(Xvid) QVGA/高画質 (Video: xvid, 320x240, 768kb/s, Audio: AAC 44100Hz, 160kb/s)

# ffmpeg -i sm1097445.flv -vcodec libxvid -b 768k -s 320x240 -r 29.97 -acodec libfaac -ac 2 -ar 44100 -ab 160k mikumiku.mp4


3.H.264 QVGA/超画質/超低速変換 (Video: h264, 320x240, 768kb/s, Audio: AAC 44100Hz, 160kb/s)

# ffmpeg -i sm1097445.flv -vcodec libx264 -b 768k -s 320x240 -r 29.97 -acodec libfaac -ac 2 -ar 44100 -ab 160k mikumiku.mp4

※H.264は第5世代iPodには対応していません。iPod touch専用です。


こんな感じです。
FLV2MP3(仮)や、FLV2iPod(仮)では、サーバに送られてきたFLVファイルを↑のように FFmpegで変換して、出来上がったファイルを返しているだけなのです。

※参考にさせてもらったサイト
ffmpegをソースからインストール (Yusukebe::Tech)
 # ldconfig なんて方法があったんですね。
 # 最初は一所懸命シンボリックリンクを貼っていました (汗
自動エンコードノススメ(ひとりごと)
 # このページに辿りついたおかげで、MP3 128Kbps以上のBitrateへの変換ができました。
 # 他のどのサイトでも、-ab オプションに k の指定とかかいていなかったので……。
Vine Linux へのFFmpegのインストール方法とか(以前のエントリーです)


◆2009年3月12日追記
FFmpeg と、LAME、それから FAAC のバージョンをそれぞれ最新版に更新しました。
FFmpeg 0.5 バージョンアップ

投稿者: りぐ 日時: 2007年11月08日 00:59
カテゴリ: [Linux/サーバ]

トラックバック

このエントリーのトラックバックURL:
http://aerith.mydns.jp/cgi-bin/mt-bin/mt-tb.cgi/259
※トラックバックは管理者に承認されるまで表示されません。

このリストは、次のエントリーを参照しています: Vine Linux への FFmpeg インストールと、使い方(2007年11月Ver):

» わがsongbirdとの闘争
from oranblue

Songbirdをubuntu linux gutsy gibbonにインストールしてみました。表示サイズが最大化できないのは置いといて、*.m4aのファ... [詳しくはこちら]
トラックバック時刻: 2007年12月08日 02:21

» FFMPEGを使ってサーバサイドでmp3 → 3gp変換。
from NOBODY:PLACE - MUTTER

ffmpegとは? 簡単に言うと、動画ファイル/音声ファイルを別の形式に変換し... [詳しくはこちら]
トラックバック時刻: 2008年01月17日 14:30

コメント: Vine Linux への FFmpeg インストールと、使い方(2007年11月Ver)

記事拝見させて頂きました。
shared libraryのリンクですが、わざわざシンボリックリンクやldconfigを使わなくても

$export LD_LIBRARY_PATH=/ライブラリのあるディレクトリ
でリンク出来ませんか?

投稿者 abu3 | 2008年01月12日 05:09

>abu3さん
なるほど。LD_LIBRARY_PATH って環境変数があったんですね。詳しく知らなかったのでぐぐってみましたが、たしかにできそうですね。

FLV2MP3(仮)みたく、CGIで使うとなると、apache の環境変数にこれを設定してあげればいいってことかな。

投稿者 りぐ@管理人 | 2008年01月12日 12:50

abu3です。

>FLV2MP3(仮)みたく、CGIで使うとなると、apache の環境変数にこれを設定してあげればいいってことかな。

自分は Apache はあまりいじったことないので詳しくは判りませんが、「CGI LD_LIBRARY_PATH 」でググってみた所いくつか関連した情報がありました。
どうやら httpd.confに

SetEnv LD_LIBRARY_PATH ライブラリへのパス

と記述すれば行けるらしいです。

投稿者 abu3 | 2008年01月13日 04:33

>abu3さん

すごいです! 確かにいけそうですね!!

勉強になりました。すばらしい情報ありがとうございました。

投稿者 りぐ@管理人 | 2008年01月13日 07:58

コメントを投稿