2010-05-29 72 views
0

這是一個2部分的問題。首先,是否可以獨立於ID3標籤訪問MP3中的音頻數據,其次,是否有任何方法可以使用可用的庫?獨立於ID3標籤訪問MP3音頻數據?

我最近整理了3臺電腦中的音樂收藏,並最終播放了改變ID3標籤的歌曲,但音頻數據本身未經修改。運行搜索重複文件失敗是因爲文件因ID3標記更改而更改,但如果我只是使用音頻數據運行重複數據刪除以進行比較,我認爲應該可以識別重複文件。

我知道可以通過文件中的ID3頭尋找特定的位置,並直接讀取數據,但想知道是否有一個庫會暴露音頻數據,因此我可以提取數據,在其上運行校驗和,並將計算結果存儲在某處,然後查找相同的校驗和。 (另外,考慮到可變長度標題,我可能必須使用某種類型的庫。)

+0

類似的問題,因爲似乎沒有'鏈接到不同的問題'框: 閱讀ID3標籤 - http://stackoverflow.com/questions/1645803/how-to-read-mp3-file-tags(共識:使用庫) 標籤讀者的Java - http://stackoverflow.com/questions/73147/i-need-an-id3-tag-reader-library-for-java-preferably-a-fast-one http://stackoverflow.com/questions/86083/any-good-recommendations-for-mp3-sound-libraries-for-java http://stackoverflow.com/questions/278612/java-mp3-audio-editing-trimming-library – Kyle 2010-05-29 05:18:31

+0

此外,這似乎是我最好的選擇,據我所知: http://stackoverflow.com/questions/476227/detect-duplicate-mp3-files-with-different-bitrates-and-or-different-id3-tags – Kyle 2010-05-29 05:19:49

回答

0

巧合的是,我想在前些天做類似的事情。

這裏是一個Ruby腳本,我掀起了:

http://code.google.com/p/kodebucket/source/browse/trunk/bin/mp3dump.rb

它轉儲MPEG幀到標準輸出,這樣一個可以抓住像這樣的校驗:

# mp3dump.rb file.mp3 | md5sum

+0

嗯。我在尋找什麼,儘管我不知道它在做什麼。我會接受它,但我不介意解釋它在做什麼。我假定除非序列以某種方式過濾出ID3標籤,但不能說明如何。鏈接到你用來創建這個文檔的任何文檔都會很棒。 :) – Kyle 2010-06-06 13:51:21

+0

是的,它可能有點混亂;意識流編碼... 它的要點: 打開一個mp3文件; 讀取4個字節; 如果我們讀取的字節是一個有效的mp3頭,讀取幀並將其發送到標準輸出; 否則我們倒退3個字節,然後重試,直到我們到達文件末尾。 我用下面的MPEG幀資源:http://www.datavoyage.com/mpgscript/mpeghdr.htm – user358390 2010-06-07 18:43:45

+0

這個腳本已經把我的MP3變成壞了54 KB。 – 2012-08-28 21:13:25