音視訊解碼流程
原理上講: 我們所看到的有聲視訊,其實是視訊和音頻資料同步的結果.
視訊的播放過程
- 封裝視訊格式(flv,mp4)等,解封裝 ,
- 變為 視訊壓縮的資料(H.264),
- 再經過解碼,變成原生的像素資料(YUV),
- 最後在畫布載體(surfaceview等),一幀幀繪制的過程.
音頻的播放過程
- 封裝視訊格式(MP3,wma)等,解封裝 ,
- 變為 視訊壓縮的資料(AAC,MP3),
- 再經過解碼,變成原生的像素資料(PCM),
- 最後重新采樣播放的過程.
相關原理知識工具
相關檢視工具
- 封裝格式:Elecard Format Analyzer
- 視訊編碼資料:Elecard Stream Eye
- 視訊像素資料:YUV Player
- 音頻采樣資料:Adobe Audition
視訊編碼資料
- 視訊編碼的作用
-
将視訊像素資料(RGB,YUV等)壓縮成為視訊碼流,進而降
低視訊的資料量(目前直播就是如此)。
-
- 常見的視訊編碼格式
- H.264格式簡介
-
資料由大小不固定的NALU構成
最常見的情況下,1個NALU存儲了1幀畫面的壓縮編碼後的資料。
-
- H.264壓縮方法
-
比較複雜。包含了幀内預測、幀間預測、熵編碼、環路濾波等環節
構成。本課程不對其中的算法做過多介紹。
. 可以将圖像資料壓縮100倍以上。
-
視訊像素資料
- 視訊像素資料作用
- 儲存了螢幕上每個像素點的像素值。
- 格式
-
常見的像素資料格式有RGB24, RGB32, YUV420P,YUV422P,
YUV444P等。壓縮編碼中一般使用的是YUV格式的像素資料,最為常
見的格式為YUV420P。
-
- 特點
-
視訊像素資料體積很大,一般情況下1小時高清視訊的RGB24
格式的資料體積為:
3600*25*1920*1080*3=559.9GByte
PS:這裡假定幀率為25Hz,取樣精度8bit。
-
- YUV格式像素資料檢視工具
- YUV Player
音頻編碼資料
- 音頻編碼的作用
-
将音頻采樣資料(PCM等)壓縮成為音頻碼流,進而降低音
頻的資料量。
-
- AAC格式簡介
- 資料由大小不固定的ADTS(Audio Data Transport Stream 音頻資料傳輸流)構成.
音頻采樣資料
- 音頻采樣資料作用
- 儲存了音頻中每個采樣點的值。
- 特點
-
音頻采樣資料體積很大,一般情況下一首4分鐘的PCM格式的
歌曲體積為:
4*60*44100*2*2=42.3MByte
PS:這裡假定采樣率為44100Hz,采樣精度為16bit。
-
- 音頻采樣資料檢視工具:Adobe Audition
- PCM格式簡介
- 單聲道的情況下按照順序存儲每個采樣點的資料。
-
雙聲道的情況下按照“左右、左右”的順序存儲每個采樣點兩個聲
道的資料。