[總結(jié)]視音頻編解碼技術(shù)零基礎(chǔ)學(xué)習(xí)方法
視頻播放器原理
視音頻技術(shù)主要包含以下幾點:封裝技術(shù),視頻壓縮編碼技術(shù)以及音頻壓縮編碼技術(shù)。如果考慮到網(wǎng)絡(luò)傳輸?shù)脑?,還包括流媒體協(xié)議技術(shù)。
視頻播放器播放一個互聯(lián)網(wǎng)上的視頻文件,需要經(jīng)過以下幾個步驟:解協(xié)議,解封裝,解碼視音頻,視音頻同步。如果播放本地文件則不需要解協(xié)議,為以下幾個步驟:解封裝,解碼視音頻,視音頻同步。
封裝格式
封裝格式的主要作用是把視頻碼流和音頻碼流按照一定的格式存儲在一個文件中?,F(xiàn)如今流行的封裝格式如下表所示:
視頻編碼
視頻編碼的主要作用是將視頻像素數(shù)據(jù)(RGB,YUV等)壓縮成為視頻碼流,從而降低視頻的數(shù)據(jù)量。常見的像素數(shù)據(jù)格式有RGB24, RGB32, YUV420P,YUV422P,YUV444P等。壓縮編碼中一般使用的是YUV格式的像素數(shù)據(jù),最為常見的格式為YUV420P
學(xué)習(xí)H.264最標(biāo)準(zhǔn)的源代碼,就是其官方標(biāo)準(zhǔn)JM了。但是要注意,JM速度非常的慢,是無法用于實際的:H.264參考軟件JM12.2RC代碼詳細(xì)流程
實際中使用最多的就是x264了,性能強悍(超過了很多商業(yè)編碼器),而且開源。其基本教程網(wǎng)上極多,不再贅述。編碼時候可參考:x264編碼指南——碼率控制。編碼后統(tǒng)計值的含義:X264輸出的統(tǒng)計值的含義(X264 Stats Output)
Google推出的VP8屬于和H.264同一時代的標(biāo)準(zhǔn)。總體而言,VP8比H.264要稍微差一點。有一篇寫的很好的VP8的介紹文章:深入了解 VP8。
音頻編碼
音頻編碼的簡單原理可以參考:視頻壓縮編碼和音頻壓縮編碼的基本原理
這些編碼標(biāo)準(zhǔn)之間的比較可以參考文章:音頻編碼方案之間音質(zhì)比較(AAC,MP3,WMA等)
結(jié)果大致是這樣的:
AAC+ > MP3PRO > AAC> RealAudio > WMA > MP3
AAC格式的介紹:AAC格式簡介
AAC幾種不同版本之間的對比:AAC規(guī)格(LC,HE,HEv2)及性能對比
AAC專利方面的介紹:AAC專利介紹
此外杜比數(shù)字的編碼標(biāo)準(zhǔn)也比較流行,但是貌似比最新的AAC稍為遜色:AC-3技術(shù)綜述