前言(吐槽)
寫個foorbar關于flac和WAV檔案的蛇皮走位的故事
本來打算上部落格園開個小部落格的,發現居然還要人工稽核。
不等了,等到稽核通過臨時産生的想法都要忘了。。。
事情大概是這樣紙滴
今天聽歌的時候發現冷鳥女神童靴出專輯了(好像出來很久了)
聲音甚是好聽,然後在逛貼吧的時候發現了有粉絲提供無損音樂的下載下傳
嗯,然後就一頓操作猛如虎了,
下載下傳完都是flac,然後就興沖沖的下了個用foorbar打開享受一下(筆記本前兩天回檔了QAQ)
結果發現。。。
長度還是一個大大的問号。。。
國際慣例先看了一眼解碼器:
這不是都挺好的嘛,而且講道理foorbar是打娘胎裡就支援flac的,
再看看能不能放别的flac檔案:
是可以的額。。。。
看一下可以正常播放的檔案屬性是長這樣的:
可以看到采樣頻率和位速等資訊,反觀播放不了的flac就沒有:
你以為到這就完了?
神奇的事情發生了,酷狗可以打開。。。
不信?放一個給你聽聽(看看)
但是采樣什麼都是看不到的。。。
于是本能驅使。。我用記事本打開了這個大概50多M的疑似音頻檔案。。。
在經曆了N久N久的轉圈圈以後。。。
我放棄了,選了一個比較小的大概20M的一個音頻檔案來打開,不過也是轉了好久好久的圈圈。
内容大緻如下,截取了一部分
RIFF?wWAVEfmt D? ? data .w ? ?? ? ?? ???? ?? ???? ? ????? ?? ? ? ? ?? ? ? ????? ? ? ? ? ? ?? ? ??? ? ?? ? ??? ? ?? ? ???? ? ? ??? ? ??? ? ?? ? ?? ? ? ? ? ? ? ? ?
?
?
?
?
? ? ? ?
? ? ? ?
? ? ? ? ?
?
? ? ?
? ?
?
? ? ?
? ? ?
? ? ?
?
? ?
? ?
? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ?
? ?
?
?
?
?
?
?
?
? ?
? ? ? ? ? ? ? ? ?
? ? ? ?
?
? ? ? ?
? ? ? ?
?
? ? ? ? ? ? ? ? ? ?
? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ?? ?? ? ? ? ????? ?????? ??? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????? ????????????????????????? ??????? ???? ?????????????????? ?????? ?????? ?????????????? ??? ? ????????? ? ????? ? ? ? ?? ? ? ? ?? ???????? ? ? ? ? ??? ? ???? ? ?? ???? ?? ? ? ? ???? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
重點還是檔案的開頭
RIFF?wWAVEfmt D? ? data .w
我看到了啥?
關鍵詞:
- RiFF
- WAVE
-
D? ? data .w
emmm。。。什麼鬼啊都是,那先百度一下吧:
哦,那是音頻格式沒跑了,然後接下來找到的資料更是确定了我的推測:
RIFF file format
RIFF全稱為資源互換檔案格式(Resources Interchange File Format),是Windows下大部分多媒體檔案遵循的一種檔案結構。RIFF檔案所包含的資料類型由該檔案的擴充名來辨別,能以RIFF格式存儲的資料有:
音頻視訊交錯格式資料 .AVI
波形格式資料 .WAV
位圖資料格式 .RDI
MIDI格式資料 .RMI
調色闆格式 .PAL
多媒體電影 .RMN
動畫光标 .ANI
其他的RIFF檔案 .BND
CHUNK
chunk是RIFF檔案的基本單元,其基本結構如下:
struct chunk
{
uint32_t id; // 塊标志
uint32_t size; // 塊大小
uint8_t data[size]; // 塊資料
};
id 4位元組,用以辨別塊中所包含的資料。如:RIFF,LIST,fmt,data,WAV,AVI等,由于這種檔案結構 最初是由Microsoft和IBM為PC機所定義,RIFF檔案是按照小端 little-endian位元組順序寫入的。
size 塊大小 存儲在data域中的資料長度,不包含id和size的大小
data 包含資料,資料以字為機關存放,如果資料長度為奇數(位元組為機關),則最後添加一個空位元組。
chunk是可以嵌套的,但是隻有塊标志為RIFF或者LIST的chunk才能包含其他的chunk。
以上内容引用自:https://www.cnblogs.com/wangguchangqing/p/5957531.html
反正我就覺得你Y的就是一個波形檔案,然後ren一下就讀出來了:
嗯,潑墨漓江真好聽!~
其實主要問題還是foorbar檢測到flac就用對應解碼器去讀檔案了,其實是個波形檔案PCM方式就可以出來了。
至于酷狗嘛。。。。人家路子野。。。