考慮到研究方向和項目需要最近在學(xué)習(xí)視音頻編解碼技術(shù),主要是在用ffmpeg這個開源庫。這兒就把學(xué)習(xí)的視音頻基礎(chǔ)知識做個整理以作備忘。
播放一個視頻文件的流程:
常用播放器
跨平臺系列(非DirectShow框架)
VLC,Mplayer,ffplay.....
Windows系列(DireckShow框架)
完美解碼,終極解碼,暴風(fēng)影音......
信息查看工具
綜合信息查看
MediaInfo
二進制信息查看
UltraEdit
單項詳細分析
封裝格式:Elecard Format Analyzer
視頻編碼數(shù)據(jù):Elecard Stream Eye
視頻像素數(shù)據(jù):YUV Player
音頻采樣數(shù)據(jù):Adobe Audition
封裝格式的作用
視頻碼流和音頻碼流按照一定的格式存儲在一個文件中
封裝格式分析工具
Elecard Format Analyzer
常見的封裝格式
視頻編碼的作用
將視頻像素數(shù)據(jù)( RGB, YUV等)壓縮成為視頻碼流,從而降低視頻的數(shù)據(jù)量。
視頻編碼分析工具
Elecard Stream Eye
常見的視頻編碼
MPEG2-TS格式
不包含文件頭。數(shù)據(jù)大小固定(188Byte)的TS Packet構(gòu)成。
FLV格式
包含頭文件。數(shù)據(jù)由大小不固定的Tag構(gòu)成。
H.264格式
數(shù)據(jù)由大小不固定的NALU構(gòu)成
最常見的情況下,1個NALU存儲了1幀畫面的壓縮編碼后的數(shù)據(jù)
H.264壓縮方法
比較復(fù)雜。包含了幀內(nèi)預(yù)測、幀間預(yù)測、熵編碼、環(huán)路濾波等環(huán)節(jié)構(gòu)成??梢詫D像數(shù)據(jù)壓縮100倍以上。包括紅色的幀I幀,藍色的幀P幀,綠色的幀B幀。
音頻編碼的作用
將音頻采樣數(shù)據(jù)(PCM等)壓縮成為音頻碼流,從而降低音頻的數(shù)據(jù)量。
常見的音頻格式
AAC格式簡介
數(shù)據(jù)由大小不固定的ADTS構(gòu)成
AAC可以將音頻數(shù)據(jù)壓縮10倍以上
視頻像素數(shù)據(jù)作用
保存在屏幕上每個像素點的像素值
格式
常見的像素數(shù)據(jù)格式有RGB24,RGB32,YUV420,YUV422P,YUV44P等。壓縮編碼一般使用的是YUV格式的像素數(shù)據(jù),最為常見的格式為YUV420P
特點
視頻像素數(shù)據(jù)體積很大,一般情況下1小時高清視頻的RGB24格式的數(shù)據(jù)體積為:
3600*25*1920*1080*3 = 559.9GByte
這里假定幀率為25HZ,取樣精度8bit
YUV格式像素數(shù)據(jù)查看工具
YUV Player
RGB格式簡介
Red、 Green、 Blue三種顏色,可以混合成世界上所有的顏色。
彩色圖像中每個點,由R、 G、 B三個分量組成。
以RGB24為例,圖像像素數(shù)據(jù)的存儲方式如下:
從圖中可以看出, RGB24依次存儲了每個像素點的R、 G、 B信息。
PS: BMP文件中存儲的就是RGB格式的像素數(shù)據(jù)。
YUV格式簡介
相關(guān)實驗表明,人眼對亮度敏感而對色度不敏感。因而可以將亮度信息和色度信息分離,并對色度信息采用更“狠”一點的壓縮方案,從而提高壓縮效率。YUV格式中, Y只包含亮度信息,而UV只包含色度信息。以YUV420P為例,圖像像素數(shù)據(jù)的存儲方式如圖所示。
音頻采樣數(shù)據(jù)作用
保存了音頻中每個采樣點的值。
特點
音頻采樣數(shù)據(jù)體積很大,一般情況下一首4分鐘的PCM格式的歌曲體積為:
4*60*44100*2*2=42.3MByte
PS:這里假定采樣率為44100Hz,采樣精度為16bit。
音頻采樣數(shù)據(jù)查看工具: Adobe Audition
PCM格式簡介
單聲道的情況下按照順序存儲每個采樣點的數(shù)據(jù)。
雙聲道的情況下按照“左右、左右”的順序存儲每個采樣點兩個聲道的數(shù)據(jù)。
聯(lián)系客服