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で分離しよう。(タイトル)

  • MPlayerで全部するより数倍速い
  • MPlayerで全部するよりファイルがぶっ壊れにくい(たぶん)
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に入れることが出来ますね。

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