ffmpegで遊ぶ 音声編

この記事はまだまとめられてないです
メモ代わりに使用しています
気が向いたらまとめます

ffmpeg はさまざまな codec を取り込んでコンパイルするわけだけど、
とりあえず何も取り込まないでコンパイルしてみます

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

としてソースをゲット

cd ffmpeg
./configure --prefix=/usr/local/ffmpeg
make
make install

よし適当にやってみよう

ffmpeg -i in_my_life.mp3  in_my_life.wav
FFmpeg version SVN-r11123, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --prefix=/usr/local/ffmpeg
  libavutil version: 49.5.0
  libavcodec version: 51.48.0
  libavformat version: 52.1.0
  built on Dec 12 2007 16:33:23, gcc: 3.4.6 20060404 (Red Hat 3.4.6-8)
Input #0, mp3, from 'in_my_life.mp3':
  Duration: 00:02:27.8, start: 0.000000, bitrate: 159 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, stereo, 160 kb/s
Output #0, wav, to 'in_my_life.wav':
    Stream #0.0: Audio: pcm_s16le, 44100 Hz, stereo, 1411 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
overread, skip -6 enddists: -4 -4
overread, skip -5 enddists: -2 -2
overread, skip -6 enddists: -4 -4
...
...
...
overread, skip -6 enddists: -4 -4
overread, skip -5 enddists: -2 -2
size=   25434kB time=147.6 bitrate=1411.2kbits/s   
video:0kB audio:25434kB global headers:0kB muxing overhead 0.000169%

なんか overread, skip -* enddists: -* -*ってのがでまくったけど
とりあえずは
mp3 → wav OK

逆もやってみよう

ffmpeg -i in_my_life.wav -ab 160000 in_my_life_enc.mp3
FFmpeg version SVN-r11123, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --prefix=/usr/local/ffmpeg
  libavutil version: 49.5.0
  libavcodec version: 51.48.0
  libavformat version: 52.1.0
  built on Dec 12 2007 16:33:23, gcc: 3.4.6 20060404 (Red Hat 3.4.6-8)
Input #0, wav, from 'in_my_life.wav':
  Duration: 00:02:27.6, bitrate: 1411 kb/s
    Stream #0.0: Audio: pcm_s16le, 44100 Hz, stereo, 1411 kb/s
Output #0, mp2, to 'in_my_life_enc.mp3':
    Stream #0.0: Audio: mp2, 44100 Hz, stereo, 160 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
size=    2884kB time=147.6 bitrate= 160.0kbits/s   
video:0kB audio:2884kB global headers:0kB muxing overhead 0.000000%

ありゃ? mp2 で output してるんじゃね?
QuickTime で再生してあげると認識できないって言う
拡張子をmp2にしてあげたらいけた
やっぱ codec ないとだめなんかな
じゃ mp3lame を組み込んでみよっか

http://lame.sourceforge.net/
mp3lame はオープンソースの mp3 codec です
最新版のソースを取ってきましょう
展開してディレクトリへ
./configure --prefix=/usr/local/ffmpeg --enable-libmp3lame
make
make install

んで再び

ffmpeg -i in_my_life_lm.wav -ab 160000 in_my_life_enc.mp3
FFmpeg version SVN-r11123, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --prefix=/usr/local/ffmpeg/ --enable-libmp3lame
  libavutil version: 49.5.0
  libavcodec version: 51.48.0
  libavformat version: 52.1.0
  built on Dec 12 2007 18:07:01, gcc: 3.4.6 20060404 (Red Hat 3.4.6-8)
Input #0, wav, from 'in_my_life_lm.wav':
  Duration: 00:02:27.6, bitrate: 1411 kb/s
    Stream #0.0: Audio: pcm_s16le, 44100 Hz, stereo, 1411 kb/s
Output #0, mp3, to 'in_my_life_enc.mp3':
    Stream #0.0: Audio: libmp3lame, 44100 Hz, stereo, 160 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
size=    2885kB time=147.7 bitrate= 160.0kbits/s   
video:0kB audio:2885kB global headers:0kB muxing overhead 0.001049%

おーちゃんとmp3で出たね、よしよし
QuickTimeでもOK

気になる点は ./configure のデフォルトが --enable-static なのに
ldconfig に書き込まないとだめなんだよねー
static になってねー

音声編はここまでー

次回は動画をいじってみよう