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 に入れることが出来ますね。
おめでとうございます。ありがとうございます。