1,什么是AAC?
AAC代表Advanced Audio Coding(高級音頻編碼),是一種由MPEG-4標(biāo)準(zhǔn)定義的有損音頻壓縮格式,由Fraunhofer發(fā)展,Dolby, Sony和AT&T是主要的貢獻(xiàn)者。在使用MP4作為各種內(nèi)容的容器格式的新多媒體MPEG-4標(biāo)準(zhǔn)中,它是MPEG Layer III / MP3的天然后繼者。AAC能夠在一條音軌中包括48條全帶寬(直到96khz)音頻聲道,加上15條低頻增強(LFE,限制到120Hz)聲道,直到 15條數(shù)據(jù)流并且更多。
2,什么是HE-AAC和LC-AAC?
兩者是符合MPEG4 AAC標(biāo)準(zhǔn)的不同的Profile(類)。LC意思是"low complexity"(低復(fù)雜性)而HE意思是"high efficiency"(高效性)。HE-AAC也稱之為AAC SBR/AAC+/aacplus等。注意HE-AAC注重于低碼流的編碼并很適合多聲道文件(更小的文件尺寸)。對于HE-AAC文件,也需要一個可用 的HE解碼器,請看Q6。如果你想要用AAC與其他流行音頻編碼在64kbps下做比較,請看這里(感謝rjamorim)。
從學(xué)術(shù)上講,HE-AAC混合了AAC與SBR技術(shù)。SBR代表的是Spectral Band Replication(頻段復(fù)制)。SBR的關(guān)鍵是在低碼流下提供全帶寬的編碼而不會產(chǎn)生產(chǎn)生多余的信號。傳統(tǒng)認(rèn)為音頻編碼在低碼流下意味著減少帶寬和 降低采樣率(見MP3 FAQ #7)或產(chǎn)生令人不快的噪音信號。SBR解決問題的方法是讓核心編碼去編碼低頻信號,而SBR解碼器通過分析低頻信號產(chǎn)生高頻信號和一些保留在比特流中的 指導(dǎo)信號(通常碼流極低,~2 kbps)。這就是采用無SBR解碼器的原因,這樣你的帶寬(frequency response/頻率響應(yīng))會被嚴(yán)重浪費。這也是為什么被叫做Spectral Band Replication的原因,它只是增加音頻的帶寬,而非重建。更多關(guān)于SBR技術(shù)的信息請看這里和那里。
象MPEG-4視頻一樣,AAC有著不同的Profile,其中Low Complexity Profile(LC AAC) (也叫MAIN @ Level 2)最被廣泛用于商業(yè)市場(例如Apple非常著名的iTunes音樂庫),其他有象Long Term Prediction Profile(LTP/長期預(yù)測), Scalable Sampling Rate Profile(SSR/可變采樣率) 和Low Delay Profile(LD/低延遲)。
3,我如何編碼AAC?
單單LC Profile:
LC & HE Profile:
- Nero Burning Rom(在額外的菜單中編碼文件)和附隨的Wave Editor允許LC和HE AAC兩種編碼。另外可以在得到Nero AAC/MP4插件。
- RealPlayer 10 黃金版和Real Producer 10同樣也包括基于Coding Technologies執(zhí)行的HE/LC AAC編碼器。RP10 黃金版現(xiàn)在默認(rèn)編碼AAC成M4A,并且是一種極好的免費AAC編碼解決方案。用Real Producer編碼HE AAC,你也需要helix的其他插件包。
GUIs/前端:
- BeSweet:由于DSPguru的貢獻(xiàn),可以通過BeSweet編碼Nero AAC。有兩個非常優(yōu)秀的GUIs,附帶Doom9指南的OagMachine和BeSweetGUI。注意:BeSweet使用者需要確定使用更新的正式版本,更多信息請參閱Q#19。
- foobar2000:使用nero aac編碼/解碼器插件(foo_nero.dll)你可以直接轉(zhuǎn)換任何音頻到Nero LC/HE AAC,同樣有可以參考的指南。注意為了diskwriter插件你需要foobar特別版。用diskwriter插件和命令行的FAAC(可以從rarewares得到)Foobar也同樣可以編碼成FAAC aac。
- HeadAC3he的新版本也可以從AC3, WAV或是任何其他HeadAC3he支持的輸入格式編碼到FAAC aac。
- winLame:DeXt制作的multi-tool GUI,現(xiàn)在支持通過FAAC編碼AAC。
其他優(yōu)秀格式在128kbps與LC AAC的音質(zhì)比較(感謝rjamorim)
注意lame(可用的最好mp3編碼器)和vorbis在他們最新的版本中提供了更加優(yōu)良的音質(zhì)(同樣你可以看這里)。
也注意在這次測試中使用的wma9 pro編碼,是一種與標(biāo)準(zhǔn)wma9編碼完全不同,并且提供更加優(yōu)良音質(zhì)的編碼(使用在音像店和CD唱機里)并且不是向后兼容的。
低比特率和多聲道編碼的AAC提供了高效延展性(HE ACC),同樣在低比特率中是一種最好的格式之一: 其他流行格式在64kbps與HE AAC的音質(zhì)比較(感謝rjamorim)
注意QT是在Quicktime中提供的LC AAC編碼,He是在nero中。
繼承Parametric Stereo(參數(shù)立體聲)延伸(PS AAC)技術(shù),同時使用HE AAC用于低碼率的它(Nero完善中)不得不題及。在32kbps它如何與其他編碼比較可以看這里。
由rjamorim總結(jié)出公共收聽測試結(jié)果,在128kbps比較這些AAC編碼方式可以在這里和那里得到答案。
3b,怎樣在其他平臺下(Linux, MAC OS 10, 其他等等)編碼AAC?
FAAC和FAAD是GPL(GNU通用公共許可證)軟件,可以在OS X, Linux和絕大部分unixes下編譯。FAAC編碼也在avidemux, mencoder, gstreamer和其他編碼工具下實現(xiàn)。大多數(shù)主要的多媒體distributions產(chǎn)品都包括這些。
普通的FAAC編譯說明如下:(摘錄于FAAC文檔)
1,確保你已經(jīng)安裝autoconf, automake和libtool。為了支持mp4, libmp4v2必須也安裝(包括在較老的faad2源中,或是新的FAAC cvs(Concurrent Version System/版本控制系統(tǒng))源碼)。 2,解壓源文檔:tar xvzf faac-x.xx.tar.gz 2,dir(顯示列表) cd到FAAC源碼 3,Run: ./bootstrap ./configure make make install
Binary版也同樣可用于幾個平臺: Debian RPMs
4,有沒有可能在轉(zhuǎn)換AC3/DTS到AAC后還能保留5.1聲道呢?
嗯,用Oagmachine/BeSweetGuI就可以實現(xiàn)。Doom9有篇相關(guān)的教材。不過,記住AC3和DTS都是有損音頻格式,任何在它們基礎(chǔ)上的轉(zhuǎn)碼行為都將導(dǎo)致更嚴(yán)重的音質(zhì)損失。當(dāng)音頻轉(zhuǎn)碼時并且需要大幅度減小文件體積時,HE-AAC推薦使用。同樣,音頻轉(zhuǎn)換還可以通過graphedit搭配3ivx濾 鏡套件(AC3->AC3 parser->AC3 filter->3ivx audio encoder->3ivx media muxer->MP4)或者foobar來實現(xiàn)。需要更多AC3和DTS的轉(zhuǎn)碼的信息請見這兩種編碼各自的FAQ部分。
5,目前有沒有一個開源的AAC編/解碼器存在呢?
FAAC和FAAD2(僅LC)就是開源的AAC編解碼器。CoreAAC Directshow filter,winamp插件和許多AAC解碼器其實都是源于FAAD2,都具有解碼HE-AAC和LC的能力。官方FAAC/FAAD2站點如下:www.。
6,我怎么混合AAC到AVI/OGM/MKV/MP4?
AVI:AVI MUX GUI是僅有的允許混合AAC到AVI的應(yīng)用軟件。注意不推薦AVI作為AAC的容器格式,推薦現(xiàn)代的容器格式如(AAC專門容器格式)。
OGM:Ogg Mux Nic能直接混合LC AAC到OGM。對于HE-AAC,請使用3ivx濾鏡套件與Graphedit。
MKV:MKVtoolnix和AVI MUX GUI都能混合AAC到Matroska。
MP4:3ivx濾鏡套件與Graphedit。 Nero Recode2能自動直接把DVD轉(zhuǎn)換帶有NeroDigital或HE AAC的MP4。其他一些支持MP4混合的軟件包括Ivan&Menno和mp4UI。更多關(guān)于MP4(MPEG-4)容器格式的信息請看MP4 FAQ。
注意當(dāng)從raw .aac流混合HE-AAC時,你必須在MKVtoolnix和AVImux GUI中讓muxer是“AAC is SBR”。當(dāng)混合.mp4時,SBR自動被偵測。
7,關(guān)于AAC回放我需要什么?
下載并安裝CoreAAC DirectShow filter或3ivx audio decoder(3ivx codec內(nèi)有)都能在directshow播放器杰出地回放(LC和HE都可)。 關(guān)于最新的CoreAAC濾鏡與winamp/foobar插件, 請看在HydrogenAudio.org中john33的帖子。
注意對于MP4流,在directshow播放器上回放3ivx或其他的MPEG-4分離濾鏡(splitter)是必需的。對于raw AAC流,rarewares上的AACparser濾鏡也是必需的。當(dāng)muxing成OGM或Matroska時,適當(dāng)?shù)姆蛛x濾鏡)也是必需的。更多信息請參看New Container Formats 版塊的FAQs。
7B,關(guān)于在linux / *nix下回放AAC有什么要求?
任何最新版及相關(guān)版的mplayer包括了對MP4格式與用FAAD解碼AAC的支持。FAAD已經(jīng)包含在mplayer的源碼中,而且無需另外的庫文件或編譯。
VLC支持AAC當(dāng)然MP4也是,但如果你的VLC是源碼包版的你就需要安裝FAAD作為AAC支持。通常你在編譯VLC的源碼前需要檢查VLC需要的庫文件目錄。
8,MPEG-4與MPEG-2 AAC的不同點是什么?
事實上MPEG-4與MPEG-2 AAC流除了在文件頭(header)上并沒有什么區(qū)別。但是一些應(yīng)用軟件象QuickTime并不承認(rèn)MPEG-2 AAC。使用Ivan & Menno改變文件頭。別的程序象Nic的AAC Patch或foobar2000都可修正文件頭。
9,*.AAC,*.MP4,*.M4A(audio/x-m4p AAC audio(受保護(hù)))之間的區(qū)別是什么?
AAC文件通常包含帶ADTS文件頭的AAC或者原始(raw)AAC數(shù)據(jù)流。Raw AAC若沒有編碼其中幾條數(shù)據(jù)流是不能被處理的。MP4,在另一層面,是一種包含AAC流和其他許多符合MPEG4標(biāo)準(zhǔn)的東西的容器格式。這兩種數(shù)據(jù)格式 是很不同的,因此你不能給它們相互重命名,它們只是被混合入容器格式中或者被分離出?;旌螦AC到MP4和其分離Ivan & Menno可以完成。 M4A是MP4容器中常見的音軌,其實是我們自己重命名后綴的。Itunes, Winamp5和Realplayer金版現(xiàn)在默認(rèn)都編碼成M4A。注意M4A和MP4文件能通過簡單重命名相互混淆,但它們都是同一種容器格式的擴展。
注意“Export ISO 13818-7 Stream”選項在Nero編碼器產(chǎn)生的是帶ADTS文件頭的*.AAC文件。再次提醒這不是原始AAC數(shù)據(jù)流,Ivan & Menno能轉(zhuǎn)換成原始aac。
更多關(guān)于MP4容器格式的信息請到恰當(dāng)?shù)腇AQ尋找。
10,我怎樣可以分割合并AAC文件?
AAC在MP4中: MP4Box可以被用來分割合并所有包括這些AAC音頻的MP4文件。完整信息可參閱此帖。
有ACC的MP4也可以直接被QuickTime專業(yè)版編輯。
原始AAC流:
原始AAC流(*.aac) 可以使用BeSplit分割合并。
分割:
quote:
code: ---------------------------------------------------------------------------------------------- besplit -core( -input in.aac -prefix out -type aac -ending ) -split( 0.0 x.x ) ----------------------------------------------------------------------------------------------
這個命令可以剪切in.aac成兩部分:0.0 秒到x.x 秒和 x.x 秒到文件結(jié)尾(-ending)。
合并: 首先產(chǎn)生一個列表文件,一個文本文件用分隔線把每個要被合并的文件列于表上。然后保存成join.lst并且使用BeSplit:
quote:
code: ---------------------------------------------------------------------------------------------- besplit -core( -input join.lst -prefix out -type aac -join ) ----------------------------------------------------------------------------------------------
也可以通過命令提示符來合并AAC流(*.aac) :
quote:
code: ---------------------------------------------------------------------------------------------- copy /b first.aac + second.aac joined.aac ----------------------------------------------------------------------------------------------
11,AAC音頻格式的優(yōu)缺點各是什么?
優(yōu)點:
- 低比特率(具有與其他編碼可比的音質(zhì))和較小文件尺寸,要求使用SBR技術(shù)。
- 多聲道(可以實現(xiàn)直到48 條全帶寬聲道)
- AAC是MPEG-4標(biāo)準(zhǔn)的正式音頻格式,并且未來硬件支持也是很有希望的。
缺點:
- 此刻沒有單獨的回放AAC可用。
- AAC是重大的專利技術(shù)。
12,有沒有可能通過S/PDIF端回放AAC?
這是可行的,雖然并不是所有的硬件上都可以實現(xiàn)。只有一部分硬件支持解碼AAC,且沒有一個directshow濾鏡有能力實現(xiàn)AAC的信號pass-through。當(dāng)然,這在將來一定會實現(xiàn)的。點擊這里和那里閱讀更多的S/PDIF和AAC的硬件支持信息。
然而,在通過S/PDIF回放AAC成為可行之前,有不少directshow的濾鏡可以通過S/PDIF進(jìn)行實時的6聲道AAC=>AC3的轉(zhuǎn)換,Haaan的Dolby Out DS濾鏡,1.x版本的AC3Filter都可以實現(xiàn)。雖然,理論上來說,實時轉(zhuǎn)錄過程會有一定程度的音質(zhì)損失,但使用640kbps全碼仍然會得到完美的監(jiān)聽效果和最小的音質(zhì)損失。
13,5.1 LC AAC和5.1HE AAC各聲道的碼率是如何分配的?怎樣的碼率設(shè)置才能使5.1的AAC各聲道均分為128kbps?
為了使每個聲道的碼率相同,我們必須添加2x(立體聲的碼率)(FL(左前置)、FR(右前置)、RL(左后置)& RR(右后置))+1x(單聲道的碼率(Centre))+一點附加的碼率給低音炮。這樣的話,為了達(dá)到各聲道碼率統(tǒng)一,總碼率要等于立體聲碼率的2.5 至3倍。所以,為了得到每聲道128kbps:128kbps*2.5=320kbps。對于LC AAC而言,320kbps是一個高質(zhì)量的碼率。然而,考慮到AAC的效率和聲道聯(lián)結(jié)方式,128kbps的HE-AAC同樣可以提供很不錯的音質(zhì)及 5.1聲道。
14,nero使用的HE-AAC的碼率是多少?
96kbps或更低的CBR碼率時使用HE-AAC;流媒體或更低的VBR碼率使用HE-AAC。如果輸入源是5.1的aiff,則nero可以生成的128kbps的HE-AAC。
15,我在使用BSN/Oagmachine編碼AAC的時候如何設(shè)置增益調(diào)節(jié)(gain)?
雖然BeSweet/Bsn有Hybrid(混合)增益調(diào)節(jié)的組件,但現(xiàn)在沒有一個Directshow濾鏡有能力處理Hybrid增益調(diào)節(jié)的信息。所以,現(xiàn)在我們不推薦此類設(shè)置,使用標(biāo)準(zhǔn)化或前期增益調(diào)節(jié)來代替吧。
16,有沒有可以被VirtualDub調(diào)用的AAC ACM(Audio Compression Manager/聲音壓縮管理器)編碼嗎?
由于目前AAC與AVI之間并未完全兼容,所以還沒有ACM AAC編碼。在FAAC開發(fā)過程中曾經(jīng)試圖做過類似的努力卻并未成功。
17,我已經(jīng)安裝了所有的BeSweet和Bsn文件,但Besweet/Nero并沒有開始編碼,請幫幫我?
要通過BeSweet/BSN/Oagmachine/BeSweet GUI來編碼Nero AAC,那么有三個dll動態(tài)鏈接文件是必須的:'aac.dll', 'aacenc32.dll'和'NeroIPP.dll'。這三個dll要放入BeSweet文件夾。從60023版開始,aac.dll和 aacenc32.dll要檢查注冊表中是否有NeroIPP的dll,所以系統(tǒng)中必須要安裝Nero Ultra Edition或NeroMix。
18,在用OagMachine/BeSweet編碼時我看不到Nero GUI編碼窗口,要如何才能激活它?
Oagmachine里,在AAC編碼選項下檢查“show configuration dialogue”。如果你使用的是命令行模式,就請在命令行里的'-bsn'后加上'-config'即可。
19,為什么我回放用Oagmachine/BeSweet GUI編碼的48Khz的AC3/DTS文件時聲音會變慢?
那可能你使用的時老版本的BeSweet,從bsn.dll v0.21以后(與BeSweet捆綁)這個bug就已經(jīng)被修復(fù)。請查一下你BeSweet文件的記錄文件,確定你使用的是bsn.dll v0.21。 老版本更多的bug信息: Nero編碼器是通過比特率、配置和聲道數(shù)來準(zhǔn)確判定相應(yīng)的采樣率的。當(dāng)你使用的bsn版本早于0.21時,nero內(nèi)部的重采樣功能默認(rèn)不被打開,從而你必須在Nero編碼器中手動修改采樣率。這里有一篇由bond編寫的關(guān)于如何決定正確的采樣率及相關(guān)大量解釋的文章。
20,如何我才能使自己編碼出來的AAC是HE而非LC?
讓CoreAAC DirectShow filter勾上“AAC+SBR”功能選項。Foobar2000里也同樣如此。3ivx音頻解碼設(shè)置里選擇的是HE-AAC。
21,在使用600X nero插件時,Oagmachine/BeSweetGUI里的哪個選項是負(fù)責(zé)控制多聲道的?
在6.0011和它之前的老版本里請使用-6chold選項,而6.0011之后的請用-6chnew。
22,我用Nero編碼的HE-AAC里有爆音存在,我做錯了什么嗎?
在Nero編碼GUI里打開PNS選項后就會產(chǎn)生這個問題,去掉這個PNS后就可以解決。
23,用FAAC編碼要取得高音質(zhì)的話有什么好的建議嗎?
有的,請看FAAC wiki和FAAC 5.1編碼的討論文章。
24,怎么樣把AAC轉(zhuǎn)換成WAV或AC3?
首先,請你仔細(xì)閱讀通篇關(guān)于AC3的FAQ,學(xué)習(xí)那些需要用到的概念和使用的工具。然后,如 果你還是堅持要這么做的話,這里有篇magicclue寫的指南和graphedit教程。
25,我在哪里可以找到更多關(guān)于AAC的信息?
Audiocoding Wiki Coding Technologies Dolby
|