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