Linux
ffmpeg

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

More than 1 year has passed since last update.

条件

  • 入力ファイル
    • 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 となりますが、どちらも同じファイルです
https://support.microsoft.com/kb/284094/ja

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"のような形になります。オプションの警告が出た場合は、それに従ってください