閱讀924 返回首頁    go 阿裏雲 go 技術社區[雲棲]


lame音頻壓縮解碼(一)Lame知識小解

 

LAME 是最好的MP3編碼器,編碼高品質MP3的最好也是唯一的選擇。LAME本身是DOS下的文件,需要加外殼程序才比較容易使用,也可以在別的軟件(比如EAC)中間調用。是一款出色的MP3壓縮程序。

 

ID3標簽是MP3音樂檔案中的歌曲附加訊息,它能夠在MP3中附加曲子的演出者、作者以及其它類別資訊,方便眾多樂曲的管理。缺少ID3標簽並不會影響 MP3的播放,但若沒有的話,管理音樂文件也會相當的麻煩。如果你在網上download MP3,裏麵多半已經寫有預設的ID3訊息。如果你想要將其清除重設,使用WinAMP中的“Alt + 3”熱鍵,就能修改MP3檔案中之的ID3標簽。
  ID3,一般是位於一個mp3文件的開頭或末尾的若幹字節內,附加了關於該mp3的歌手,標題,專輯名稱,年代,風格等信息,該信息就被稱為ID3信息,ID3信息分為兩個版本,v1和v2版。
  其中:v1版的ID3在mp3文件的末尾128字節,以TAG三個字符開頭,後麵跟上歌曲信息。
  v2版一般位於mp3的開頭,可以存儲歌詞,該專輯的圖片等大容量的信息。 
  此外,ID3也就是ID3Tags,其中的“Tag”在英文中名詞的一個意思是“標簽”,所以“ID3Tags”也就是“MP3文件曲目標簽”的意思。 
  有些地方以“ID3”這樣的簡稱來代表“ID3Tags”,二者本質是一樣的。 
  如果沒有ID3,那麼人們隻能根據文件名判斷一首歌它是什麼內容了,何況就算聽出了是什麼歌,它的演唱者、專輯名稱你也未必背得下來,所以給MP3文件增加內置的標簽是理所當然的事情。有趣的是,MP3的標簽並沒有一個ISO國際標準,ID3的各種版本目前隻是一個近乎事實上的標準,並沒有人強迫播放器或者編碼程序必須支持它。


ID3版本
  ID3 V1是由Eric Kemp在1996年發明的。ID3 V1是一組附加在音樂文件後麵的數據,它的長度是固定的128字節。
  其中流派一共定義了79種,流行的播放軟件Winamp則把它擴展到了125種,從Blues到Noise到Dance Hall,非常豐富,在許多支持ID3編輯的軟件中都可以看到這個列表,但是國內用戶似乎不太在意這個標記,大多數人甚至不知道自己的歌曲到底屬於哪一個分類。 
  這些內容一共隻有128個字節,並不算累贅。由於附加在文件尾部,所以播放器不必考慮它的影響,即使不支持ID3標記也不會影響音樂的還原——某些很老的播放器確實可能會在播放到這裏的時候發出噪音或者報錯。但是標記在文件尾部也會造成一個問題,那就是如果還沒有讀到文件末尾,我們什麼信息也看不到。對硬盤和閃存裏麵的歌曲這當然不是問題,但是如果你通過流媒體方式直接在網絡上收聽,就會發現它的缺陷了。 
  細心的人會注意到ID3V1.0沒有包括曲目序號的定義,所以Michael Mutschler在1997年進行了改進,引入了版本1.1。通過占用備注字段的最後兩個字節,用一個00字節作標記,另一個字節改為序號,可以讓ID3支持曲目編號了。一個字節的空間讓ID3 V1.1支持最高到255的曲目序號,考慮到一張唱片超過256個曲目的可能性極小,這個改進還是相當合理的。


  ID3V2到現在一共有4個版本,但流行的播放軟件一般隻支持第3版,既ID3v2.3。由於ID3V1記錄在MP3文件的末尾,ID3V2就隻好記錄在MP3文件的首部了。也正是由於這個原因,對ID3V2的操作比ID3V1要慢。而且ID3V2結構比ID3V1的結構要複雜得多,但比前者全麵且可以伸縮和擴展。
  下麵就介紹一下ID3V2.3。
  每個ID3V2.3的標簽都一個標簽頭和若幹個標簽幀或一個擴展標簽頭組成。關於曲目的信息如標題、作者等都存放在不同的標簽幀中,擴展標簽頭和標簽幀並不是必要的,但每個標簽至少要有一個標簽幀。標簽頭和標簽幀一起順序存放在MP3文件的首部。

 

最後更新:2017-04-02 16:47:34

  上一篇:go lame音頻壓縮解碼(二)之編譯事例Demo
  下一篇:go 垃圾回收機製與引用類型