2016-03-05 51 views
3

我正在寫一個程序來讀取和處理數字信號處理類項目的WAV文件,我有兩個測試文件。我可以正確閱讀RIFFfmtdata塊。兩個文件都有fmt Chunk Size: 16,但文件B在fmtdata塊之間有這個十六進制的塊。WAV文件的其他子塊是什麼?

我確定它不是隨機數據。我推測它有一些關於該文件的元數據,所以我將其歌曲標題Colors轉換爲十六進制,並發現43 6f 6c 6f 72 73在該流浪塊內。我覺得這不是巧合。我訪問過的所有網站都只提到了一個2字節變量,它告訴fmt塊末尾的額外參數的大小。如果兩個fmt塊聲稱只有16 bytes,則對於文件B來說不是這種情況。

我在猜測文件B中還有其他塊。我還沒有發現任何有關這些可選(?)塊的信息。我需要幫助來了解我可以在wav文件中查找哪些其他子塊。我根本不知道其他塊的標籤可以存在於一個WAV文件


文件(「我跑到目前爲止away.wav」)包含此頭。我從互聯網上下載了這個文件。

5249 4646 24c0 c900 5741 5645 666d 7420 
1000 0000 0100 0100 2256 0000 44ac 0000 
0200 1000 6461 7461 00c0 c900 

文件B(「Colors.wav」)包含此標頭。這是我從.mp3下載到.wav轉換器的文件。

5249 4646 7c32 4a02 5741 5645 666d 7420 
1000 0000 0100 0200 44ac 0000 10b1 0200 
0400 1000 4c49 5354 5000 0000 494e 464f 
4941 5254 0500 0000 466c 6f77 0000 494e 
414d 0700 0000 436f 6c6f 7273 0000 4950 
5244 0f00 0000 436f 6465 2047 6561 7373 
204f 5031 0000 4953 4654 0e00 0000 4c61 
7666 3537 2e32 362e 3130 3000 6461 7461 
0032 4a02 

如果它是有幫助的,下面是我寫的程序輸出。

File A 
     File Descriptor: RIFF 
     RIFF Chunk Size: 13221924 
      File Format: WAVE 

    fmt Chunk Descriptor: fmt 
      fmt Chunk Size: 16 
      Audio Format: 1 
     Number of Channels: 1 
      Sampling Rate: 22050 
       Byte Rate: 44100 
      Block Align: 2 
     Bits Per Sample: 16 

    Data Chunk Descriptor: data 
     Data Chunk Size: 13221888 

File B 
     File Descriptor: RIFF 
     RIFF Chunk Size: 38417020 
      File Format: WAVE 

    fmt Chunk Descriptor: fmt 
      fmt Chunk Size: 16 
      Audio Format: 1 
     Number of Channels: 2 
      Sampling Rate: 44100 
       Byte Rate: 176400 
      Block Align: 4 
     Bits Per Sample: 16 

    Data Chunk Descriptor: data 
     Data Chunk Size: 38416896 

回答

3

的RIFF文件規範允許任何大塊ID的程序要需要提醒的是它可能與另一程序如果同樣的大塊ID被用於不同的用途有衝突。當編寫一個程序來處理RIFF文件時,它是而不是要求你能夠理解每一個塊類型,因爲這是不可能的。然而,你必須寫下你的閱讀器,以便能夠跳過無法識別的大塊ID。

您正在查看的文件中有一個預定義的可選「INFO」塊。如果您從您發佈的十六進制轉儲ASCII出來,你會發現:

INFO 
    IART Flow 
    INAM Colors 
    IPRD Code Geass OP1 
    ISFT Lavf57.26.100 

這大塊ID是覆蓋在維基百科頁面RIFF - https://en.wikipedia.org/wiki/Resource_Interchange_File_Format#Use_of_the_INFO_chunk

或這裏 http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/RIFF.html#Info

,它的也包含在RIFF規範中。對不起,我沒有鏈接。

+0

我試着將hex轉換爲ascii,並發現這個'LIST P'塊。無論如何,你是否知道這意味着什麼,或者像「INFO」塊一樣可以忽略不計? – Nogurenn

相關問題