2008-09-15 68 views
52

我有很多很多的mp3文件,我想合併成一個文件。我用命令行方式什麼是合併mp3文件的最佳方式?

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

,但它是一個痛苦時,有很多他們和他們的namings不一致。時間似乎永遠也不會出現。

+1

阿使用的音樂文件在dos二進制合併工具是不建議所有。音樂文件附帶標題,指示有關音樂的信息。這是不一致的原因。 – 2012-12-28 15:14:27

+0

只需使用以下命令即可完成此操作:`rm -f all.mp3 && cat * .mp3> temp_file.dat;睡1; mv temp_file.dat all.mp3 && echo && echo「您的mp3文件已合併爲一個文件 - all.mp3」&& echo`。如果你覺得很難在這裏閱讀,你可以從這個鏈接獲取它(https://gist.github.com/bradparks/12444ff9926824decbc9) – 2015-12-04 03:38:34

+0

如果你不關心重新編碼,你可以使用類似`ffmpeg -f concat -i <(printf「文件'%s'\ n」/absolute/path/to/*.mp3)-aq 2 concatenated.mp3`。 `-aq 2`對應``lame`中的`-V2`。 – user4669748 2016-05-03 11:58:27

回答

46

正如托馬斯·歐文斯指出,簡單地串聯文件會留下散落整個所得連結文件ID3多個頭 - 所以時間/比特率信息將大錯特錯。

您將需要使用一種工具,它可以爲您合併音頻數據。

mp3wrap將是理想的選擇 - 它旨在將MP3文件連接在一起,無需對數據進行解碼+重新編碼(這會導致音頻質量的損失),並且還會智能處理ID3標籤。

生成的文件也可以使用mp3splt工具拆分回其組成部分 - mp3wrap將信息添加到IDv3註釋中以允許此操作。

+0

我真正想要的是一個GUI來對它們進行重新排序並將它們輸出爲一個帶有正確標題的文件。 我結束了重命名文件,讓他們以正確的順序和使用 mp3wrap FullDisk.mp3 * .MP3 – 2008-09-15 14:40:32

+2

@DanWilliams然後檢查MP3喬伊納:http://mp3joiner.net/或低於:) – James 2013-07-02 10:39:37

5

時間問題與MP3文件的ID3標題有關,這是您的方法在整個文件被複制時未考慮到的問題。

你有選擇的語言,你想使用或沒有關係?這將影響支持所需操作的庫。

+0

這只是一個個人項目,所以我不在乎語言。簡單是最好的,我最大的問題是,這似乎是我不應該花太多時間,但有。 在回答你的問題VB.NET。 謝謝 – 2008-09-15 13:09:06

0

個人而言,我會使用類似的mplayer與音頻通不過的選擇如-oac複製

3

MP3文件包含您需要尊重的標題。

你可以使用類似Open Source Audio Library Project的庫並在其周圍編寫一個工具。 或者你可以使用一個工具來理解mp3文件,如Audacity

1

我會用Winamp來做到這一點。創建一個你想合併到一個文件的播放列表,選擇Disk Writer輸出插件,選擇文件名,你就完成了。你將得到的文件將是正確的MP3文件,你可以設置比特率等。

2

正如大衛所說,mp3wrap是要走的路。但是,我發現它沒有修復音頻長度標題,所以即使所有數據都存在,iTunes仍然拒絕播放整個文件。 (我合併了三個7分鐘的文件,但它只看到了最初的7分鐘。)

我挖起this blog post,它解釋瞭如何解決這個問題以及如何從原始文件複製ID3標籤本身,mp3wrap會刪除你的ID3標籤)。或只複製標記(使用id3cp從id3lib),這樣做:

id3cp original.mp3 new.mp3 
1

我沒有聽說過mp3wrap之前。看起來很棒。我猜測有人把它變成了一個gui。但是,爲了迴應原來的帖子,我寫了一個支持COPY/b方法的gui。因此,在封面下,太陽下沒有什麼新東西,但是如果你有很多文件需要合併,那麼這個程序就是讓這個過程變得不那麼痛苦......並且你不想重新編碼和每一組文件合併是相同的比特率。如果你有(並且你在Windows上),請查看Mp3Merge:http://www.leighweb.com/david/mp3merge,看看你是否在尋找。

18

使用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 

然後,在運行時,Concat的文件一起:

cat intermediateA.mp3 intermediateB.mp3 > output.mp3 

最後,運行他們通過工具MP3Val修復任何流錯誤,而不強迫一個完整的重新編碼:

mp3val output.mp3 -f -nb 
0

而不是使用命令行來做

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真的很痛苦。

4

我真正想要的是一個GUI來重新排序並輸出它們作爲一個文件

Playlist Producer正是這麼做的,解碼和重新編碼它們爲組合MP3。它專爲製作混音磁帶或簡單的播客而設計,但您可能會發現它很有用。 (披露:我寫了這個軟件,如果你購買了專業版,我就會獲利),Lite版是一個免費版本,但有一些限制)。

51

我知道這是一個老問題,但我對你有一個更好的答案。大衛的答案是正確的,只是連接文件將ID3標籤分散在內部(儘管這通常不影響播放,所以你可以做「copy/b」或在UNIX上「cat a.mp3 b.mp3> combined.mp3」在捏)。

但是,mp3wrap並不完全是將多個MP3合併爲一個「乾淨」文件的正確工具。實際上,它並沒有使用ID3,而是將其自己的custom data format插入到MP3幀(「換行」部分)中,這會導致回放問題,特別是在iTunes和iPod上。雖然文件播放的很好,如果你讓它們從頭到尾運行(因爲播放器會跳過這些是任意非MPEG字節),文件持續時間和比特率將不正確地報告,這會中斷搜索。另外,mp3wrap會清除所有ID3元數據,包括封面,並且無法使用正確的文件長度更新VBR標題。

mp3cat本身會產生一個很好的連接數據文件(因此,比mp3wrap更好),但它也會剝離ID3標籤,並且無法用正確長度的連接文件更新VBR標頭。

這裏有一個good explanation這些問題和方法(實際上是兩個)結合MP3文件,併產生一個「乾淨」的最終結果與原始的元數據完好無損 - 它的命令行,所以適用於Mac/Linux/BSD等。它使用:

  • mp3cat到MPEG數據幀只合成爲連續文件,然後
  • id3cp超過複製所有元數據,以將合併的文件,最後
  • VBRFix更新VBR報頭。

對於Windows GUI工具,請看Merge MP3 - 它需要處理所有事情。 (VBRFix還配備在圖形用戶界面的形式,但它不會做加盟。)

3

如果你想要的東西免費用一個簡單的用戶界面,使一個完全乾淨 MP3我建議MP3 Joiner

特點:

  • 條ID3數據(ID3v1和ID3v2.x),不添加它自己的(不像mp3wrap)
  • 無損連接(不解碼和重新編碼.mp3s)。不需要編解碼器。
  • 簡單的用戶界面(見下文)
  • 低內存佔用(使用流)
  • 非常快(比mp3wrap)
  • 我寫的:) - 所以你可以請求的功能,我將它們添加。

MP3 Joiner app

鏈接:

  • MP3喬伊納網站:Here
  • 最新的安裝程序:Here
相關問題