Help us understand the problem. What is going on with this article?

[ffmpeg] 音声形式の変換方法まとめ

条件

  • 入力ファイル
    • CD形式の音声 44.1kHz Stereo 16bit
  • ffmpeg
    • ffmpeg version 2.4.git (Linuxでソースコードからコンパイルしたもの)
    • 必要に応じてコーデックのライブラリもインストールしていること

WAVからFLACへ変換

ffmpeg -i "input.wav" -vn -ar 44100 -ac 2 -acodec flac -f flac "output.flac"

FLAC形式にすれば、音を劣化させずに容量を節約できます。
曲にも依りますがおよそ7割程のサイズになります (wav:50MB→flac:35MB程度)

WAVからMP3へ変換

ffmpeg -i "input.wav" -vn -ac 2 -ar 44100 -ab 256k -acodec libmp3lame -f mp3 "output.mp3"

ビットレートはabオプションで指定します。個人的な感覚ですが、音の違いが判ったは160kと192kまででしたので、それより少し上でキリが良い数値の256kを使ってます

WAVからWindows Media形式へ変換

ffmpeg -i "input.wav" -vn -ac 2 -ar 44100 -ab 128k -acodec wmav2 -f asf "output.wma"

Windows Mediaの拡張子は wma または asf となりますが、どちらも同じファイルです

WAVからOgg Vorbis形式へ変換

ffmpeg -i "input.wav" -vn -ac 2 -ar 44100 -ab 128k -acodec libvorbis -f ogg "output.ogg"

WAVからAAC形式へ変換

ffmpeg -i "input.wav" -vn -ac 2 -ar 44100 -ab 128k -acodec libfaac -f mp4 "output.m4a"

コーデックにlibfdk_aacが使用できる場合、こちらの方が音質が良くなりますが、一部のプレイヤでは再生できなくなるようですのでご注意ください。質を上げるためにオプションに"-profile:a aac_he -afterburner 1"を追加します。このオプションを指定しないと、話し声向けのプロファイルでエンコードされてしまい、音が悪くなってしまいます

ffmpeg -i "input.wav" -vn -ac 2 -ar 44100 -ab 128k -acodec libfdk_aac  -profile:a aac_he -afterburner 1 -f mp4 "output.m4a"

MP3からWAVへ変換

ffmpeg -i "input.mp3" -vn -ac 2 -ar 44100 -acodec pcm_s16le -f wav "output.wav"

補足

  • ar のオプションは省略すると入力ファイルと同じサンプリングレートでエンコードされます
  • 最近のffmpegでは、オプションが変わっているようです。"ab"は"b:a"のような形になります。オプションの警告が出た場合は、それに従ってください
suzutsuki0220
C言語の組み込み開発ばかりだった危機感から、NodeJS、electron、KotlinのAndroidアプリ開発など色々チャレンジ中、最近はTypeScriptを少しだけ触り始めた。エディタはvimからVS Codeに乗り換え中。今一番欲しいものRaspberry Pi。将来の夢は子供と一緒にログハウスを建てること
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away