前言
音視頻相關的基礎知識網上層出不窮,我們要善于站在巨人的肩膀上去學習,本篇博客將基于雷老師(雷霄驊)的博客以及講課ppt,如果沒有雷老師的無私奉獻,就沒有我們寶貴的學習資料,愿老師在天堂能夠一路走好,也希望我們能夠注重勞逸結合,多休息!這里奉上老師的博客地址:
[總結]FFMPEG視音頻編解碼零基礎學習方法
好了,不要那么嚴肅了,回過來,我們學習還是要繼續的,下面進入正文:
視頻播放器原理
我們可能不知道,錄像、錄音,實質上是一個壓縮采集到的圖像或者音頻數據的過程,這個過程又稱為編碼。那為什么需要編碼(壓縮)呢?因為設備采集到的音視頻數據太大了,如果不進行壓縮,占用的空間太大,不利于傳輸等。
而播放視頻或者音頻文件,實質上是一個解壓縮的過程,這個過程又稱為解碼。那為什么又要解碼(解壓縮)呢?因為播放器播放需要的是音頻采樣數據、視頻像素數據,通俗一點來說就是需要的是編碼之前的數據,所以需要解碼來獲取。
播放一個視頻文件的流程如下:
首先拿到的是一個封裝格式數據,一般封裝格式為FLV、MKV、MP4等,也就是我們平常拿到的一個音視頻文件的后綴,這樣說,大家應該了解了吧,原來這就是封裝格式啊。通過解封裝格式數據得到音頻壓縮數據和視頻壓縮數據,再分別對其進行處理,音頻壓縮數據進行音頻解碼得到音頻采樣數據,視頻壓縮數據進行視頻解碼得到視頻像素數據,然后通過音視頻同步技術,分別進行音頻視頻的播放。
封裝格式
封裝格式常見的有:AVI、MP4、TS、FLV、MKV、RMVB
1. 封裝格式的作用
封裝格式的作用就是將視頻碼流和音頻碼流按照一定的格式存儲在一個文件中。也就是說封裝格式相當于一個容器,將視頻碼流和音頻碼流放在里面。
2. 封裝格式分析工具
Elecard Format Analyzer
- MPEG2-TS格式簡介
不包含文件頭,數據大小固定(188Byte)的TS Packet構成。
- FLV格式簡介
包含文件頭,數據由大小不固定的Tag構成。
視頻編碼數據
視頻編碼后的常見數據格式有:HEVC(H.265)、H264、MPEG4、MPEG2、VP9、VP8、VC-1
1. 視頻編碼的作用
將視頻像素數據(RGB、YUV等)壓縮成為視頻碼流,從而降低視頻的數據量。
2. 視頻編碼的分析工具
Elecard Stream Eye
H.264格式簡介
- 數據由不固定的NALU構成
- 最常見的情況下,1個NALU存儲了1幀畫面的壓縮編碼后的數據。
H.264壓縮方法
- 比較復雜。包含了幀內預測、幀間預測、熵編碼、環路濾波等環節構成。
- 可以將圖像數據壓縮100倍以上。
音頻編碼數據
音頻編碼后的常見數據格式有:AAC、AC-3、MP3、WMA
1. 音頻編碼的作用
將音頻采樣數據(PCM等)壓縮成為音頻碼流,從而降低音頻的數據量。
2. 音頻編碼分析工具
暫不涉及。
AAC格式簡介
數據由大小不固定的ADTS構成。
AAC壓縮方法
比較復雜,暫不對其中的算法做過多介紹。
可以將音頻數據壓縮10倍以上。
視頻像素數據
常見的視頻像素數據格式有:RGB24、RGB32、YUV420P、YUV422P、YUV444P等。壓縮編碼中一般使用的是YUV格式的像素數據,最為常見的是YUV420P。
特點
視頻像素數據體積很大,一般情況下1小時高清視頻的RGB24格式的數據體積為:
3600 * 25 * 1920 * 1080 * 3 = 559.9GByte
PS:這里假定幀率為25HZ,取樣精度8bit。
YUV格式像素數據查看工具
YUV Player
RGB格式簡介
R代表Red,G代表Green,B代表Blue,這三種顏色可以混合成世界上所有的顏色。彩色圖像中的每個點,由R、G、B三個分量組成。
以RGB24為例,圖像像素數據的存儲方式如下:
從圖中可以看出,RGB24依次存儲了每個像素點的R、G、B信息。
PS:BMP文件存儲的就是RGB格式的像素數據。
YUV格式簡介
相關實驗表明,人眼對亮度敏感,而對色度不敏感。因而可以將亮度信息和色度信息分離,并對色度信息采用更“狠”一點的壓縮方案,從而提高壓縮效率。
YUV格式中,Y只包含亮度信息,而UV只包含色度信息。以YUV420P為例,圖像像素數據的存儲方式如圖所示:
從圖中可以看出,YUV420P首先存儲了整張圖像的Y信息,然后存儲整張圖像的U信息,最后存儲整張圖像的V信息。
音頻采樣數據
常見的音頻采樣數據格式為:PCM。
特點
音頻采樣數據體積很大,一般情況下一首4分鐘的PCM格式的歌曲體積為:
4 * 60 * 44100 * 2 * 2 = 42.3MByte
PS:這里假定采樣率為44100,采樣精度為16bit。
音頻采樣數據查看工具
Adobe Audition
PCM格式簡介
- 單聲道的情況下按照順序存儲每個采樣點的數據。
- 雙聲道的情況下按照“左右、左右”的順序存儲每個采樣點兩個聲道的數據。
展望
關于音視頻相關的知識,實在是太多太多,所以我們不斷地學習,不斷地積累,在工作中增加知識,利用知識去服務于工作。
喜歡本篇博客的簡友們,就請來一波點贊,您的每一次關注,將成為我前進的動力,謝謝!