【ffmpeg】複数のmp3を1つのmp4にまとめる

プログラム

今回はいろいろなアルバムからのmp3ファイルを1つのmp4ファイルにまとめる手順の紹介したいと思います。

まとめる時の問題点

例えば、複数のアルバムの曲(オーディオファイル)から、プレイリストを作りたいという場合に、下記の問題が考えられます。

  • サンプリングレートの異なり
  • 音量の異なり

同じアルバムであれば、オーディオファイルに変換した時のサンプリングレートや音量は同じですが、異なるアルバムであれば、これらが違ってくる可能性があります。1つのMP4ファイルにまとめるには、サンプリングレート、音量は統一させたいですよね。

では、手順を説明していきます。

必要なソフトウェア

必要なソフトウェアは下記になります。

  • ffmpeg-normalize
  • ffmpeg

音量を平均化するffmpeg-normalizeはffmpegに梱包されている実行ファイルではありません。PYTHONのpipからインストールすることになりますので、PYTHONがインストールされていることが前提となります。詳しくは、下記の記事をご覧ください。

手順

手順
  1. サンプリングレートの統一
  2. 音量の統一
  3. MP3ファイルの結合
  4. MP4ファイルに変換

メインは1,2のステップです。

サンプリングレートの統一

オーディオファイルのサンプリングレートの確認は下記のコマンドを用います。

ffprobe input.mp3

上記のコマンドを実行すると、出力の一部は下記のように出てきます。

  Duration: 00:06:45.29, start: 0.025057, bitrate: 96 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 96 kb/s
    Metadata:
      encoder         : LAME3.96r

Stream #0:0の行の 44100Hz がサンプリングレートとなります。

複数のmp3をまとめるには、すべてのファイルを同じサンプリングレートにする必要があります。

私の場合、48000Hzと44100Hzのオーディオファイルが混在していたので、44100Hzのオーディオファイルを48000Hzに変換しました。

変換するコマンドは下記になります。input.mp3が44100Hzのファイル、output.mp3が44800Hzに変更するファイルになります。

ffmpeg -i input.mp3 -ar 48000 output.mp3

音量の統一化

音量を統一には、ffmpeg-normalizeを使用します。

音量の統一化をするには、下記のコマンドを実行して下さい。

ffmpeg-normalize IN.mp3 -c:a libmp3lame -o OUT.mp3

IN.mp3は変換するファイル名OUT.mp3は変換後のファイル名です。オプションなどは必要ありません。

複数のファイルであれば、このコマンドをその回数だけ実行する必要があります。

10ファイルぐらいであれば、1回1回コマンドを手動で実行していけばいいと思いますが、50ファイルぐらいになってくると、数が多いので、PYTHONでプログラム化するか、バッチファイルで複数のコマンドを実行すると楽だと思います。

MP3ファイルの結合

サンプリングレート、音量が統一化された後は、すべてのファイルを一つのファイルに結合します。

結合するには、MS-DOSのコマンド copy /b を使用します。

copy /b input01.mp3+input02.mp3 output.mp3

input01.mp3、input02.mp3は結合するファイル、output.mp3は出力するファイルになります。

3ファイル以上ある時は input01.mp3+input02.mp3+input03.mp3+…. というようにプラスマークで連結させて下さい。

MP3からMP4へ変換

最後にMP3ファイルからMP4ファイルに変換します。

変換は下記のコマンドを使用します。

ffmpeg -loop 1 -i pic.jpg -i input.mp3 -shortest output.mp4

pic.jpgは挿入する画像ファイル、input.mp3は変換するmp3ファイル、output.mp4は出力後のmp4ファイルになります。

MP4は映像ファイルになるので、好きな画像をpic.jpg挿入します。但し、挿入する画像ファイルのサイズ(縦、横の大きさ)は偶数にしないとエラーになるので注意して下さい。

挿入する画像のおすすめは、プレイリストを画像化したものをおススメします。そうすれば、再生した時にどんな曲が入っているかがわかります。

おわりに

mp3からmp4に変換アプリなどもありますが、プログラマーであれば、ffmpegを利用したいですよね。

Windowsのコマンド大好き派の方は、是非、参考にして下さい。

コメント

タイトルとURLをコピーしました