2011-09-09 10 views
2

我在JAVA音頻進口商(在鼓sequencer使用)工作,我有以下問題與進口AIFF文件:是否有可能(以及如何)確定AIFF音頻文件的字節順序?

我有相同的類型(24位,44100kHz,單聲道),一個2個AIFF文件在Mac上創建,另一個是在Windows計算機上使用wavelab創建的。這兩個文件都是未壓縮的PCM,都是FORM == AIFF。

來自Mac的AIFF是BigEndian(應該是這樣), 來自Wavelab的AIFF(windows)是LittleEndian。

這兩個文件都可以在Wavelab(Windows)以及Quicktime(Windows)中正確播放。 這些工具如何檢測這些文件的字節順序?無論如何,它一定是可能的,否則至少有一個文件聽起來就像噪聲(這是我的應用程序發生的)。

文件頭中是否有隱藏的信息或其他方式來確定AIFF文件的字節順序? 有什麼建議嗎?

非常感謝

回答

3

快速google搜索說,AIFF文件是big endian

但是根據Wikipedia,還有另一種稱爲AIFF-C的格式壓縮數據。蘋果公司現在使用little endian,並創建了一種名爲sowt的虛假壓縮方法,其實質上意味着「不壓縮,但小尾數」。您可能需要檢查。

除此之外,普通的AIFF無法檢查字節順序。以小端編碼的標準AIFF似乎違反了規範。

+0

是的,AIFF是大端,我知道。但是wavelab在小端創建了24bit aiff,這是一個事實。這隻發生在24位aiffs上。每個其他比特率都可以用wavelab作爲大端編碼來正確創建。我知道,這可能聽起來很奇怪。但是這個文件實際上是小尾數 – gal

+0

@gal:我明白了。我更新了答案。 – musiKk

+0

是的,我同意。或者文件違反規範,或者我在閱讀標題時做錯了什麼(我讀完它的方式與16位aiffs完全一樣,並且在那裏一切正常)。我讀到了假壓縮'sowt',但該文件不是那種類型。標題是表單類型的AIFF,而不是AIFC。只是想知道,如何兩個文件可以在quicktime正確回放 – gal

相關問題