foorbar关于flac和WAV文件的蛇皮走位(播放不了flac而可以用酷狗之类的播放)
前言(吐槽)
寫個foorbar關于flac和WAV文件的蛇皮走位的故事
本來打算上博客園開個小博客的,發現居然還要人工審核。
不等了,等到審核通過臨時產生的想法都要忘了。。。
事情大概是這樣紙滴
今天聽歌的時候發現冷鳥女神童靴出專輯了(好像出來很久了)
聲音甚是好聽,然后在逛貼吧的時候發現了有粉絲提供無損音樂的下載
嗯,然后就一頓操作猛如虎了,
下載完都是flac,然后就興沖沖的下了個用foorbar打開享受一下(筆記本前兩天回檔了QAQ)
結果發現。。。
長度還是一個大大的問號。。。
國際慣例先看了一眼解碼器:
這不是都挺好的嘛,而且講道理foorbar是打娘胎里就支持flac的,
再看看能不能放別的flac文件:
是可以的額。。。。
看一下可以正常播放的文件屬性是長這樣的:
可以看到采樣頻率和位速等信息,反觀播放不了的flac就沒有:
你以為到這就完了?
神奇的事情發生了,酷狗可以打開。。。
不信?放一個給你聽聽(看看)
但是采樣什么都是看不到的。。。
于是本能驅使。。我用記事本打開了這個大概50多M的疑似音頻文件。。。
在經歷了N久N久的轉圈圈以后。。。
我放棄了,選了一個比較小的大概20M的一個音頻文件來打開,不過也是轉了好久好久的圈圈。
內容大致如下,截取了一部分
重點還是文件的開頭
RIFF?wWAVEfmt D? ? data .wRIFF?wWAVEfmt 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方式就可以出來了。
至于酷狗嘛。。。。人家路子野。。。
總結
以上是生活随笔為你收集整理的foorbar关于flac和WAV文件的蛇皮走位(播放不了flac而可以用酷狗之类的播放)的全部內容,希望文章能夠幫你解決所遇到的問題。