- Published on
Bashからffmpegでflac(wav)ファイルをmp3へ変換
- Authors
- Name
- Shou Arisaka / 有坂翔
Linuxパソコン・サーバーのコマンドライン、Bashからffmpegでflac(wav)ファイルをmp3へ変換する方法について紹介します。
最近外へ出るときはowncloudサーバーから音楽をストリーミング再生して聞いてたのですが、楽天モバイルSIMのプロバイダがよくないのか、flacになると高速通信してても頻繁に途切れる。 そこで、データ量を小さくすればとりあえず聞けるようにはなるよねってことで。
せっかくハイレゾで聞けるプレイヤー使ってるのに本末転倒な気がしなくもないがどうせ外でノイズありアンプなしブルートゥースなんだしflacもmp3も変わらないだろうと思ったり。
というかflacで音楽聞いてると通信量が割と消費されてしまうんですよね。20分位で200mbとかいくし、月間2gbの僕的には致命的。soundcloudとは雲泥の差です。
flactomp3(){
: copy all of flac or other highres audio on current dir as mp3
for i in *.+(flac|wav|wave); do ffmpeg -i "$i" -b:a ${1:-320k} -acodec libmp3lame "$(basename "${i/.flac}").mp3" ; done
}
上記のように.bashrcに書いておくと、
flactomp3 128k
のようにして、引数にビットレートを指定して実行すると、
for i in *.+(flac|wav|wave); do ffmpeg -i "$i" -b:a 128k -acodec libmp3lame "$(basename "${i/.flac}").mp3" ; done
のように展開されて実行されます。
ffmpegのオプションは、
-i : 入力ファイル
-b:a : ビットレート
-acodec : オーディオコーデック
となっています。
オーディオコーデックは、
libmp3lame : mp3
libvorbis : ogg
libfdk_aac : aac
などがあります。
オーディオコーデックは、
ffmpeg -codecs
で確認できます。
また、
ffmpeg -i input.flac -acodec libmp3lame -aq 2 output.mp3
のように、-aqオプションを使うと、ビットレートを指定せずに品質を指定できます。
品質は、0が最高で9が最低です。
以上となります。