wmvから音だけ抜く時はとりあえずFFmpegで分離しよう

最近ネトラジはなぜか静止画像 1 枚くっつけて wmv とかにするのが流行りらしくて、iPod とかに入れるときは全く持って不要。

なので、分離しようとか思っていつも通り MPlayer とかでやろうと色々試行錯誤してたら、こんな感じで音声だけ抜き出してデコードできる事がわかった。

mplayer hoge.wmv -vc null -vo null -ao pcm:file=hoge.wav

-vo null だけだと、デコードするけど出力しないというベンチマーク用の技らしいのでちゃんと-vc null しないとダメ。

でも、同じくらいの尺の wma をデコードしたときより妙に時間がかかるし、45 分くらいの番組なのに 30 分くらいで切れてた。

仕方が無いので、試しに FFmpeg で動画と音声を分離した後、デコードしてみた。

ffmpeg -i hoge.wmv -vn -acodec copy fuga.wma
mplayer fuga.wma -ao pcm:file=nyuru.wav

こうすると、なぜか MPlayer 単体で分離してデコードするよりも数倍は速くなった。ちゃんと 45 分のファイルとして認識もされる。

ファイルが壊れたのはモノによると思うけど、とりあえず FFmpeg で分離した方がよさそう。

今日のまとめ

wmv から音だけ抜く時はとりあえず FFmpeg で分離しよう。(タイトル)

for i in *.wmv
do
  ffmpeg -i $i -vn -acodec copy $i.wma
  mplayer $i.wma -ao pcm:file=$i.wav
  ffmpeg -i $i.wav -acodec libmp3lame -ab 96k $i.mp3
  rm $i.wma $i.wav
done

こんな感じで、無駄に静止画像 1 枚だけ張り付いてるネトラジも簡単に mp3 に変換できて、iPod に入れることが出来ますね。

おめでとうございます。ありがとうございます。