參考鏈接
- FFMpeg視頻播放器的制作-雷霄驊(去除電流音版本)_嗶哩嗶哩_bilibili
視頻播放器原理
- 播放視頻文件的流程
- ?YUV是一張屏幕中像素點的數值
?
封裝格式
- MP4 RMVB TS FLV AVI
- 將視頻和音頻碼流按照一定的格式存儲在一個文件中
- 封裝格式分析工具:Elecard Format Analyzer
?
- 數字電視支持的格式 MPEG2-TS
- 數據大小固定,每個都是188Byte
- 單個數據包損壞不會影響其余數據包?
?
- FLV包含Header頭文件,一旦損壞,無法播放數據?
視頻編碼數據
- H.264 MPEG2 VC-1
- 將視頻像素數據(RGB,YUV等)壓縮成視頻碼流,從而降低視頻的數據量
- 視頻編碼分析工具 Elecard Stream Eye
?
- ?I幀 :紅色的幀? 將圖片作為數據直接壓縮,不依賴
- P幀 :藍色的幀? 依賴前面的I幀,存儲與I幀不同的地方
- B幀 :綠色的幀? 依賴左右的視頻幀,參考的東西更多
音頻編碼數據
- AAC? MP3? AC-3?
- 將音頻采樣數據(PCM等)壓縮成音頻碼流,從而降低音頻的數據量
- WAV格式的數據是未經壓縮的音頻數據
?
?
視頻像素數據
- 解碼之后的數據,送到顯卡進行數據顯示
- YUV420P RGB
- 視頻像素數據的作用:保存了屏幕每個像素點的像素值
- 格式:常見的像素數據格式有RGB24、RGB32、YUV420P、YUV422P和YUV444P等
- YUV是基于RGB進行轉換
- Y? ? ?亮度
- UV? ?色調和飽和度
- 壓縮編碼中一般使用的是YUV格式的像素數據,最為常見的是YUV420P
- 特點
- 視頻像素數據體積很大,一般情況下1小時高清視頻的RGB24格式的數據體積為:
- 3600*25*1920*1080*3=559.9GByte
- 這里假定幀率為25Hz,取樣精度8bit
- YUV格式像素數據查看工具 YUV Player
?
音頻采樣數據
- PCM
- 音頻采樣數據的作用:保存了音頻中每個采樣點的數值
- 特點:音頻采樣數據體積很大,一般情況下一首4分鐘的PCM格式的歌曲體積為
- 4*60*44100*2*2=42.3MByte
- 第一個2表示聲道
- 第二個2表示字節 8*2=16
- PS:這里假定采樣率為44100Hz,采樣精度為16bit
- 音頻采樣數據查看工具:Adobe Audition
?