みんながみんな、もっとニコニコできることを祈って。
Categories
Search
Sponsored Link
Archives
Counter
Recent Entries
Recent Comments
2007年11月08日
以前、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 バージョンアップ
このエントリーのトラックバック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
記事拝見させて頂きました。
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