1.1 android支持的媒體格式
/指南/主題/媒體/媒體格式
格式/codecencorderdecoderdetails支持的文件類型/容器格式
AAC支持單聲道/立體聲/5.0/5.1內容,標準采樣速率範圍為8至48 kHz。?3GPP (.3gp)
?MPEG-4 (.mp4,. m4a)
?ADTS原始AAC(。aac,在Android 3.1+中解碼,在Android 4.0+中編碼,不支持ADIF)
?MPEG-TS(。ts,不可查,安卓3.0以上)
HE-AACv1 (AAC+)?
(安卓4.1+)
?
HE-AACv2(增強版AAC+)?支持立體聲/5.0/5.1內容,標準采樣速率範圍為8至48 kHz。
AAC ELD(增強型低延遲AAC)?
(安卓4.1+)
?
(安卓4.1+)
支持單聲道/立體聲內容,標準采樣速率範圍為16至48 kHz
AMR-NB4.75至12.2 kbps采樣@ 8kHz3GPP (.3gp)
AMR-WB9速率範圍為6.60 kbit/s至23.85 kbit/s,采樣@ 16kHz3GPP (.3gp)
弗萊克。
(安卓4.1+)
?
(安卓3.1+)
單聲道/立體聲(無多聲道)。采樣速率最高可達48 kHz(但對於輸出為44.1 kHz的器件,建議采樣速率最高可達44.1 kHz,因為48至44.1 kHz下采樣器不包括低通濾波器)。16位推薦;24位不應用抖動。FLAC(。僅flac)
迷笛?MIDI類型0和1。DLS版本1和2。XMF和移動XMF。支持鈴聲格式RTTTL/RTX,OTA和iMelody?鍵入0和1(。mid,。xmf,。mxmf)
?RTTTL/RTX(。rtttl,。rtx)
?太田(。ota)
?iMelody(。imy)
MP3?單聲道/立體聲8-320Kbps恒定(CBR)或可變比特率(VBR)MP3 (.mp3)
Opus?
(安卓5.0以上)
馬特羅斯卡(。mkv)
PCM/WAVE?
(安卓4.1+)
?8位和16位線性PCM(速率高達硬件極限)。8000、16000和44100 Hz下原始PCM記錄的采樣率。波(。wav)
Vorbis Ogg(。ogg)
?馬特羅斯卡(。mkv,安卓4.0+)
1.2 OS X支持的音頻文件和數據格式
/library/content/documentation/music audio/Conceptual/coreaudio overview/SupportedAudioFormatsMacOSX/SupportedAudioFormatsMacOSX . html
每種文件格式允許的數據格式。
文件格式數據格式
AAC(。aac,。adts)'aac '
AC3(. ac3)“AC-3”
AIFC(。aif,。aiff,。aifc)BEI8,BEI16,BEI24,BEI32,BEF32,BEF64,' ulaw ',' alaw ',' MAC3 ',' MAC6 ',' ima4 ',' QDMC ',' QDM2 ',' Qclp ',' agsm '
AIFF(。aiff)貝8,貝16,貝24,貝32
Apple Core音頻格式(。caf)' ` MP3 ',' MAC3 ',' MAC6 ',' QDM2 ',' QDMC ',' Qclp ',' Qclq ',' aac ',' agsm ',' alac ',' alaw ',' drms ',' dvi ',' ima4 ',' lpc ',BEI8,BEI16,BEI24,BEF32,BEF64,LEI16,LEI24,LEI32,LEF32,LEF64,' ms\x00\x02 ',' ms \ x00 \ x 166
MPEG第3層(. MP3)“. MP3”
MPEG 4音頻(. MP4)“AAC”
MPEG 4音頻(. m4a)'aac ',alac '
下壹個/太陽音響(。snd,。au)BEI8,BEI16,BEI24,BEI32,BEF32,BEF64,' ulaw '
音響設計師二級(. sd2)BEI8,BEI16,BEI24,BEI32
波(。wav)LEUI8,LEI16,LEI24,LEI32,LEF32,LEF64,' ulaw ',' alaw '
Core Audio包括許多音頻編解碼器,可將音頻數據與線性PCM相互轉換。OS X v10.4提供以下音頻數據類型的編解碼器。音頻應用程序可能會安裝額外的編碼器和解碼器。
音頻數據類型從線性PCM編碼?解碼為線性PCM?
MPEG第3層(' . mp3 ')否
MACE 3:1(“MAC 3”)是是
MACE 6:1 ('MAC6 ')是是
音樂設計2(“qd m2”)是是
q design(“QDMC”)NoYes
高通純語音公司(Qclp)是是
高通QCELP ('qclq ')否
是是
蘋果無損(“alac”)是是
蘋果GSM 10:1(“agsm”)否
ALaw 2:1“ALaw”)是是
蘋果數字版權管理音頻解碼器
AC-3 no
DVI 4:1(“DVI”)否
蘋果IMA 4:1(“ima4”)是是
LPC 23:1(“LPC”)是
微軟ADPCMNoYes
DVI ADPCMYesYes
GSM 610名員工
AMR窄帶(“samr”)是是
?法律2:1(“ulaw”)是是
1.3匯總:
Android/ios可以解碼mp3,但是不能編碼,編碼靠lame。
Android/ios支持aac編解碼;
Mp3,aac AAC都是音樂編碼器。android支持amr的窄帶和寬帶編解碼,ios文檔顯示窄帶支持編解碼。但也有人說IOS版本ios4.3.x之後不再支持AMR,排除了AMR的硬件解碼。如果需要使用libopencore庫;
結論:
H5音頻標簽支持mp3最好(音頻標簽除firefox和opera外支持MP3、ogg和wavFlash player可以支持mp3,aac,speex,nellymoser)。考慮到與純web的兼容性,使用mp3
Android和IOs硬件支持aac最好。考慮到硬編碼的性能和效率,使用aac。
Amr是壹個語音編碼器。考慮到使用場景,推薦amr。
對比微信,微信短語音,6.0之前的AMR,6.0之後的silk_v3。
2.音頻的基本概念
2.1聲音的三要素
聲音的特性可以用三個要素來描述,即響度、音調和音色。
響度:人耳對聲音強度的主觀感受稱為響度。響度與聲波振動的幅度有關。壹般來說,聲波的振動幅度越大,響度越大。當我們用力擊鼓時,鼓膜震動很大,發出很大的聲音;鼓輕鼓時,鼓膜振動幅度小,聲音弱。音叉振動時,聲波是單聲道的,即只有壹個頻率成分。如果我們試著記錄壹下音叉的振動規律,可以發現它的振動波形是壹個正弦波。用不同的力度敲擊音叉,音叉發出的聲波振幅不同,也就意味著聲音的響度不同。給出兩個聲音波形,壹個振幅大,壹個振幅小。振幅大的波形響度大,振幅小的波形響度小。另外,人對響度的感知也與聲波的頻率有關。如果同樣強度的聲波頻率不壹樣,人的耳朵感受到的響度就不壹樣。
音調:人耳對聲音高低的感覺稱為音調。音調主要和聲波的頻率有關。聲波的頻率越高,音調越高。當我們分別敲擊小鼓和大鼓時,會感覺到它們發出不同的聲音。擊鼓後振動頻率快,聲音清脆,即音調高;但鼓的振動頻率較慢,聲音較低,即音調較低。如果分別敲小音叉和大音叉,也會感覺到小音叉發出的聲音音調較高,大音叉發出的聲音音調較低。如果我們嘗試記錄大小音叉發出的聲波,可以發現小音叉單位時間振動次數多,即頻率高,大音叉單位時間振動次數少,即頻率低。給出了兩種不同頻率的聲音波形。從聲音上看,頻率高的聲音波形聽起來音高較高,頻率低的聲音波形聽起來音高較低。
音色:音色是區分兩種響度和音調相同的聲音的特征,或者說是人耳對各種頻率和強度的聲波的綜合反應。音色與聲波的振動波形有關,或者說與聲音的頻譜結構有關。如前所述,音叉可以產生單壹頻率的聲波,其波形為正弦波。但實際上,人們在自然界中聽到的絕大部分聲音都有非常復雜的波形,由基波和各種諧波組成。和聲的數量和強弱構成了不同的音色。當各種發聲物體發出相同的音調時,它們的基本成分是相同的。但由於諧波的數量不同,每個諧波的幅度不同,產生的音色也不同。例如,當我們聽胡琴和揚琴演奏同壹個曲調時,雖然它們的音調是相同的,但我們可以區分不同樂器的聲音。這是因為各種樂器的發音材料和結構不同。當它們發出同壹個音調的聲音時,雖然基波相同,但諧波成分不同,所以產生的波形不同,從而產生不同的音色。給出了小提琴和鋼琴的波形和聲音。這兩種聲音的響度和音調是壹樣的,但是聽起來不壹樣。這是因為這兩種聲音的音色不同(波形不同)。
2.2抽樣率和抽樣規模
聲音其實是壹種能量波,所以也具有頻率和振幅的特性。頻率對應於時間軸,幅度對應於水平軸。波浪是無限光滑的,弦可以看作是由無數個點組成的。由於存儲空間相對有限,在數字編碼的過程中必須對和弦的點進行采樣。采樣的過程就是提取某壹點的頻率值。顯然,壹秒鐘提取的點數越多,頻率信息就會越豐富。* *為了恢復波形,壹次振動中必須有兩個采樣點。人耳能感受到的最高頻率是20kHz。所以要滿足人耳的聽覺要求,每秒至少要采樣40k次,用40kHz來表示。我們常見的CD,采樣率是44.1kHz。僅有頻率信息是不夠的。我們還必須獲得該頻率的能量值,並將其量化以表示信號強度。量化級別是2的整數次冪,我們常見的CD bit 16bit的采樣大小是16的2次冪。抽樣規模比抽樣率更難理解,因為它是抽象的。我們舉個簡單的例子:假設壹個波被采樣八次,采樣點的能量值分別為A1-A8,但我們只用2比特的采樣大小。這樣壹來,我們只能保留A1-A8中四個點的值,丟棄其他四個。如果我們取3比特的采樣大小,我們將正好記錄8個點的所有信息。采樣率和采樣大小的值越大,記錄的波形越接近原始信號。
2.3有損和無損
根據采樣率和采樣大小可以知道,音頻編碼只能無限接近自然信號,至少目前的技術只能這樣。與自然信號相比,任何數字音頻編碼方案都是有害的,因為它不能被完全恢復。在計算機應用中,脈碼調制可以達到最高的保真度,廣泛用於素材保存和音樂欣賞,也用於CD、DVD和我們常見的WAV文件。所以PCM慣例變成了無損編碼,因為PCM代表了數字音頻中最好的保真度水平,並不意味著PCM可以保證信號的絕對保真度,PCM只能最大程度的實現無限接近。我們習慣性的把MP3歸入有損音頻編碼的範疇,相對來說就是脈碼調制。強調編碼相對性的有損和無損的目的是告訴大家,真正的無損是很難做到的,就像用數字來表示圓周率壹樣,再精確也只是無限接近,並不是真的等於圓周率。
2.4頻率和采樣率之間的關系
采樣率表示每秒鐘對原始信號進行采樣的次數。我們經常看到的音頻文件的采樣率是44.1KHz。這是什麽意思?假設我們有兩個正弦波信號,20Hz和20KHz,每個信號的長度為壹秒鐘,分別以我們能聽到的最低頻率和最高頻率對應的40KHz對這兩個信號進行采樣。能得到什麽樣的結果?結果是20Hz的信號每振動采樣40K/20=2000次,而20K的信號每振動僅采樣兩次。很明顯,在相同的采樣率下,低頻的信息遠比高頻的信息更詳細。這也是壹些音響發燒友指責CD的數字聲音不真實的原因,CD在44.1KHz的采樣不能保證高頻信號被很好的記錄。為了更好的記錄高頻信號,似乎需要更高的采樣率,所以有些朋友在捕捉CD曲目時使用48KHz的采樣率,這是不可取的!其實這樣對音質也不好。對於跟蹤軟件來說,保持和CD提供的44.1KHz壹樣的采樣率是保證音質最好的保證之壹,而不是提高。較高的采樣速率僅在與模擬信號相關時有用。如果采樣信號是數字的,請不要試圖提高采樣率。
哈利·奈奎斯特采樣定理:在對連續變化的信號波形進行采樣時,如果采樣率fs高於信號中所含最高頻率的兩倍,那麽原始信號中的波形就可以通過插值技術由采樣值正確恢復,否則就會造成頻譜混疊,產生混疊噪聲,重疊部分無法恢復。(這同樣適用於模擬視頻信號的采樣。)
根據人聲的特點,人的聽覺感知範圍是20 Hz到20Hz。這個帶寬範圍分為四個帶寬類別:窄帶、寬帶、超寬帶和全頻帶。
壹部窄帶普通電話覆蓋的帶寬是300Hz到3.4kHz,對應的采樣率是6.8kHz,普通電話的采樣率是8kHz,對應的帶寬是4kHz,足夠人聲使用。
寬帶有50Hz到7 khz的帶寬,對應14khz的采樣率,可以很好的捕捉和還原人聲,但是對於音樂聲音來說還不夠。這就是人聲通話場景中所謂的高清語音。
超寬帶從50Hz到14kHz,對應的采樣率為28kHz,基本可以覆蓋人聲和樂音。對於非專業音樂人來說,這個帶寬對於語音通話和音樂直播都是足夠的。
全頻段從20Hz到20kHz,對應40kHz的采樣率,完全覆蓋人類的聽覺範圍,可以滿足音樂發燒友或專業音樂人的需求。任何超過40Hz的都可以稱為全頻帶語音。CD的采樣率為44.1kHz。
因此窄帶的音質可以滿足人聲錄音和回放的要求。
從四個角度衡量音頻編碼:
成本:開發成本,服務器流量成本。
音質:
系統影響:對於系統資源的臨時使用,軟編解碼器比硬編解碼器占用更多的cpu。
兼容性:與移動和網絡終端兼容。
適合產品場景的編碼器有以下四個特點。
碼率比較低,符合成本控制的要求,壹般不超過16kbps。壹個樣本可以用1bit編譯,所以8kHz的窄帶對應8kbps的碼率,16kHz的寬帶對應16kbps的碼率。碼率的本質是成本。
算法復雜度相對較低,消耗的CPU、內存和功耗較少,對系統的影響盡可能小。
可以適當犧牲音質來保證以上三個因素。8kHz的采樣率足夠人聲場景,16kHz的采樣率可以提供高清語音。
考慮兼容性
3.主流音頻編碼器
音頻編碼格式對比:/library/content/reference library/getting started/GS _ music audio/_ index.html。
2.Opus iOS:/chrisballinger/Opus-iOS
3 . Android opus:/axet/Android-opus
4 . opus _ Android:/louisyonge/opus _ Android
5 . opus codec:/martoreto/opus codec
6.和大家探討壹下如何用opencore amr在iOS上解碼:/library/archive/documentation/music audio/conceptual/coreaudio overview/coreaudio essentials/coreaudio essentials . html #//apple _ ref/doc/uid/TP 40003577-ch 10-SW 13