web-dev-qa-db-ja.com

mp3ファイルをマージする最良の方法は何ですか?

単一のファイルにマージしたい、非常に多くのmp3ファイルがあります。コマンドライン方式を使用しました

copy /b 1.mp3+2.mp3 3.mp3

しかし、それらが多く、命名に一貫性がない場合は苦痛です。時間が正しく出てくることはないようです。

57
Dan Williams

Thomas Owensが指摘したように、単にファイルを連結すると、結果として連結されたファイル全体に複数のID3ヘッダーが散在したままになるため、時間/ビットレート情報は非常に間違っています。

オーディオデータを組み合わせることができるツールを使用する必要があります。

mp3wrap はこれに理想的です-データをデコード+再エンコードする必要なしにMP3ファイルを結合するように設計されており(これによりオーディオ品質が低下します)、ID3も処理しますタグをインテリジェントに。

結果のファイルは、mp3spltツールを使用してコンポーネント部分に戻すこともできます。mp3wrapは、IDv3コメントに情報を追加してこれを許可します。

49
David Precious

David's answer は正しいです。ファイルを連結するだけで、ID3タグが内部に散在します(ただし、これは通常、再生に影響しないため、「copy/b」またはUNIXで「cat a.mp3 b .mp3> combined.mp3 "(ピンチ)。

ただし、mp3wrapは、複数のMP3を1つの「クリーン」ファイルに結合するだけの正確なツールではありません。 ID3を使用するのではなく、実際にMP3フレーム(「ラップ」部分)に独自の カスタムデータ形式 を挿入します。これにより、特にiTunesやiPodでの再生に問題が生じます。ファイルは最初から最後まで実行するだけで問題なく再生されますが(プレーヤーはこれらをスキップするため、これらはMPEGではない任意のバイトです)期間とビットレートが誤って報告され、シークが中断されます。また、mp3wrapはカバーアートを含むすべてのID3メタデータを消去し、正しいファイル長でVBRヘッダーを更新できません。

mp3cat は、それ自体で適切な連結データファイルを生成します(したがって、mp3wrapよりも優れています)が、ID3タグを削除し、結合されたファイルの正しい長さでVBRヘッダーを更新できません。

ここに 良い説明 これらの問題と方法(実際には2つ)があり、MP3ファイルを結合し、元のメタデータをそのまま使用して「クリーンな」最終結果を生成します。コマンドラインなので、Mac/Linux/BSDで動作しますなど。

  • mp3cat MPEGデータフレームを連続ファイルにのみ結合するには、
  • id3cp すべてのメタデータを結合ファイルにコピーし、最後に
  • VBRFix VBRヘッダーを更新します。

Windows GUIツールについては、 Merge MP をご覧ください。すべての面倒を見てくれます。 (VBRFixはGUI形式でも提供されますが、結合は行いません。)

57
joelhardi

Ffmpegまたは同様のツールを使用して、すべてのMP3を一貫した形式に変換します。

ffmpeg -i originalA.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateA.mp3  
ffmpeg -i originalB.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateB.mp3

次に、実行時に、ファイルを連結します。

cat intermediateA.mp3 intermediateB.mp3 > output.mp3

最後に、それらをツールMP3Valで実行して、完全な再エンコードを強制せずにストリームエラーを修正します。

mp3val output.mp3 -f -nb
17
bmurphy1976

時間の問題は、MP3ファイルのID3ヘッダーに関係しています。これは、ファイル全体がコピーされるときにメソッドが考慮していないものです。

使用したい言語がありますか、それとも重要ではありませんか?これは、必要な操作をサポートする利用可能なライブラリに影響します。

5
Thomas Owens

本当に欲しかったのは、それらを並べ替えて1つのファイルとして出力するGUIでした

Playlist Producer はまさにそれを行い、デコードしてMP3に再エンコードします。ミックステープまたは単純なポッドキャストを作成するために設計されていますが、役に立つかもしれません。

(開示:ソフトウェアを作成し、Pro Editionを購入すると利益が得られます。Liteエディションは、いくつかの制限がある無料バージョンです)。

4
Adam

MP3ファイルには、尊重する必要があるヘッダーがあります。

Open Source Audio Library Project のようなライブラリを使用して、その周りにツールを書くことができます。または、 Audacity のようなmp3ファイルを理解するツールを使用できます。

3
Chris M.

何かをしたい場合free完全にクリーンmp3推奨 MP3 Joiner

機能:

  • ID3データ(ID3v1とID3v2.xの両方)を除去し、それ自体を追加しません(mp3wrapとは異なります)
  • ロスレス参加(.mp3をデコードおよび再エンコードしません)。コーデックは必要ありません。
  • シンプルなUI(下記を参照)
  • 低メモリ使用量(ストリームを使用)
  • 非常に高速(mp3wrapと比較)
  • 私はそれを書いた:)-あなたが機能を要求できるように、私はそれらを追加します。

MP3 Joiner app

リンク:

  • MP3 Joiner Webサイト: ここ
  • 最新のインストーラー: ここ
3
James

Davidが言うように、 mp3wrap が道です。しかし、オーディオの長さのヘッダーが修正されなかったため、すべてのデータがあったとしても、iTunesはファイル全体の再生を拒否しました。 (3つの7分間ファイルをマージしましたが、最初の7分間までしか見ませんでした。)

このブログ投稿 を掘り下げました。これは、これを修正する方法と、元のファイルからID3タグをコピーする方法を説明しています(それ自体で、mp3wrapはID3タグを削除します)。または、単にタグをコピーするには( id3lib のid3cpを使用)、次のようにします。

id3cp original.mp3 new.mp3
2
joelhardi

Mp3wrapについて聞いたことがありません。素晴らしく見える。どこかで誰かがGUIになったと思う。しかし、元の投稿に応答するために、COPY/bメソッドを実行するGUIを作成しました。だから、カバーの下では、太陽の下で新しいものはありませんが、プログラムはすべてのファイルをマージする場合にプロセスの痛みを軽減することについてすべてです...そして、あなたはファイルの各セットを再エンコードしたくないマージするビットレートは同じです。持っている場合(そしてWindowsを使用している場合)、Mp3Mergeを http://www.leighweb.com/david/mp3merge で確認し、それが探しているものかどうかを確認してください。

1
David Leigh

これにはWinampを使用します。 1つにマージするファイルのプレイリストを作成し、Disk Writer出力プラグインを選択して、ファイル名を選択すると完了です。取得するファイルは正しいMP3ファイルになり、ビットレートなどを設定できます。

1
szeryf

個人的には、たとえば-oac copyなどのオーディオパススルーオプションでmplayerなどを使用します

0
James

コマンドラインを使用する代わりに

copy/b 1.mp3 + 2.mp3 3.mp3

代わりに "The Rename" を使用して、すべてのMP3フラグメントの名前を、ある種のカウンターに基づいた順序の一連の名前に変更できます。次に、同じコマンドライン形式を使用しますが、少し変更します。

copy/b * .mp3 output_name.mp3

これは、これらすべてのフラグメントMP3を同時にリッピングし、同じオーディオ設定を持っていることを前提としています。 .aaにあるオーディオブックを単一の.mp3に変換していたとき、私にとってはとてもうまくいきました。すべての.aaファイルを9枚のCDに書き込み、その後9枚すべてのCDをリッピングしなければならなかったので、約90 mp3が残っていました。本当にa55の痛み。

0
Daave311