考慮到研究方向和項目需要最近在學(xué)習視音頻編解碼技術(shù),主要是在用ffmpeg這個(gè)開(kāi)源庫。這兒就把學(xué)習的視音頻基礎知識做個(gè)整理以作備忘。
播放一個(gè)視頻文件的流程:
常用播放器
跨平臺系列(非DirectShow框架)
VLC,Mplayer,ffplay.....
Windows系列(DireckShow框架)
完美解碼,終極解碼,暴風(fēng)影音......
信息查看工具
綜合信息查看
MediaInfo
二進(jìn)制信息查看
UltraEdit
單項詳細分析
封裝格式:Elecard Format Analyzer
視頻編碼數據:Elecard Stream Eye
視頻像素數據:YUV Player
音頻采樣數據:Adobe Audition
封裝格式的作用
視頻碼流和音頻碼流按照一定的格式存儲在一個(gè)文件中
封裝格式分析工具
Elecard Format Analyzer
常見(jiàn)的封裝格式
視頻編碼的作用
將視頻像素數據( RGB, YUV等)壓縮成為視頻碼流,從而降低視頻的數據量。
視頻編碼分析工具
Elecard Stream Eye
常見(jiàn)的視頻編碼
MPEG2-TS格式
不包含文件頭。數據大小固定(188Byte)的TS Packet構成。
FLV格式
包含頭文件。數據由大小不固定的Tag構成。

H.264格式
數據由大小不固定的NALU構成
最常見(jiàn)的情況下,1個(gè)NALU存儲了1幀畫(huà)面的壓縮編碼后的數據

H.264壓縮方法
比較復雜。包含了幀內預測、幀間預測、熵編碼、環(huán)路濾波等環(huán)節構成??梢詫D像數據壓縮100倍以上。包括紅色的幀I幀,藍色的幀P幀,綠色的幀B幀。
音頻編碼的作用
將音頻采樣數據(PCM等)壓縮成為音頻碼流,從而降低音頻的數據量。
常見(jiàn)的音頻格式

AAC格式簡(jiǎn)介
數據由大小不固定的ADTS構成

AAC可以將音頻數據壓縮10倍以上
視頻像素數據作用
保存在屏幕上每個(gè)像素點(diǎn)的像素值
格式
常見(jiàn)的像素數據格式有RGB24,RGB32,YUV420,YUV422P,YUV44P等。壓縮編碼一般使用的是YUV格式的像素數據,最為常見(jiàn)的格式為YUV420P
特點(diǎn)
視頻像素數據體積很大,一般情況下1小時(shí)高清視頻的RGB24格式的數據體積為:
3600*25*1920*1080*3 = 559.9GByte
這里假定幀率為25HZ,取樣精度8bit
YUV格式像素數據查看工具
YUV Player
RGB格式簡(jiǎn)介
Red、 Green、 Blue三種顏色,可以混合成世界上所有的顏色。
彩色圖像中每個(gè)點(diǎn),由R、 G、 B三個(gè)分量組成。
以RGB24為例,圖像像素數據的存儲方式如下:

從圖中可以看出, RGB24依次存儲了每個(gè)像素點(diǎn)的R、 G、 B信息。
PS: BMP文件中存儲的就是RGB格式的像素數據。
YUV格式簡(jiǎn)介
相關(guān)實(shí)驗表明,人眼對亮度敏感而對色度不敏感。因而可以將亮度信息和色度信息分離,并對色度信息采用更“狠”一點(diǎn)的壓縮方案,從而提高壓縮效率。YUV格式中, Y只包含亮度信息,而UV只包含色度信息。以YUV420P為例,圖像像素數據的存儲方式如圖所示。

音頻采樣數據作用
保存了音頻中每個(gè)采樣點(diǎn)的值。
特點(diǎn)
音頻采樣數據體積很大,一般情況下一首4分鐘的PCM格式的歌曲體積為:
4*60*44100*2*2=42.3MByte
PS:這里假定采樣率為44100Hz,采樣精度為16bit。
音頻采樣數據查看工具: Adobe Audition
PCM格式簡(jiǎn)介
單聲道的情況下按照順序存儲每個(gè)采樣點(diǎn)的數據。
雙聲道的情況下按照“左右、左右”的順序存儲每個(gè)采樣點(diǎn)兩個(gè)聲道的數據。

聯(lián)系客服