ffmpegでmp3の容量を下げる

コマンド

mkdir -p small_mp3 && for f in *.mp3; do ffmpeg -i "$f" -acodec libmp3lame -ab 48k -ac 1 "small_mp3/$f"; done

コマンド構成要素の解説

  1. mkdir -p small_mp3

    • ディレクトリ作成: 出力先のフォルダ「small_mp3」を作成します。
    • -p オプション: すでにフォルダが存在していてもエラーにならず、必要なら親ディレクトリも同時に作ります。
  2. &&

    • 逐次実行: 左側のコマンド(ディレクトリ作成)が正常に完了したときのみ、右側のループ処理を開始します。
  3. for f in *.mp3; do … done

    • ループ処理: カレントディレクトリにある .mp3 ファイルを一つずつ変数 $f に代入して、do 以降の処理を繰り返します。
  4. ffmpeg -i “$f”

    • 入力指定: ffmpeg を起動し、変数 $f(現在の処理対象ファイル)をソースとして読み込みます。
  5. -acodec libmp3lame

    • コーデック指定: MP3への変換に標準的な「LAME」エンコーダーを使用するように指定します。
  6. -ab 48k

    • ビットレート指定: 音声のデータ量を 48kbps に制限します。数値が小さいほど容量は減りますが、音質は劣化します。
  7. -ac 1

    • モノラル化: オーディオチャンネル数を 1 にします。左右の音を統合して1chにすることで、データ量を効率よく削減します。
  8. “small_mp3/$f”

    • 出力先指定: 作成したフォルダ内に、元と同じファイル名($f)で保存します。