數字音視頻基礎
音視頻構成:文件名,圖像,聲音,字幕
播放一個視頻文件的流程:
三原色
- 由於人類肉眼有三種不同顏色的感光體,因此所見的色彩空間通常可以由三種基本色表達,這三種顏色被稱爲 三原色
- 疊加型:紅色、綠色、藍色。
- 消減型:品紅色、黃色、青色。
色彩空間
- R、G、B(紅、綠、藍)
- Y、U、V (Y爲亮色,U、V爲色差)
其中
Y
表示明亮度(Lumina nce或Luma),也就是灰階值;
而U
和V
表示的是色度,作用是描述影響色彩及飽和度,用於指定像素的顏色
採樣格式(YUV分量不同)
數字視頻的採樣格式有:
- 4:4:4 –色差分量沒有下采樣
- 4:2:2 – 色差分量進行水平下采樣沒有垂直下采樣
- 4:1:1 – 色差分量進行了4:1的水平下采樣沒有垂直下采樣
- 4:2:0 – 色彩分量分別進行2:1的水平和垂直下采樣
視頻動畫原理
- 幀:視頻的一個畫面
- 幀率:單位時間內,從圖像序列中所能獲取的完整圖片的數量,單位是fps(幀/秒)
- 視頻分辨率:圖像大小(橫向zongxiang)
- 採樣率:將模擬信號轉換成數字信號時的採樣頻率,也就是單位時間內採樣的多少點,一個採樣點數據有多少個比特。單位Hz
- 碼率:單位時間內傳輸的數據位數,通常以kbps或Mbps爲單位
- 時間戳
視頻採集
- Windows視頻採集技術
- Directshow
- VFW(Video for Windows)
- Directshow
- 基於com實現,提供了一系列視頻數據操作接口
- 重要接口ISampleGrabberCB
STDMETHODIMP BufferCB(double dbISampleTime,byte *pBuffer,long IBufferSize);
視頻壓縮
- 攝像頭原始數據
YUV,RGB - 按照ITU601的建議,傳輸1秒鐘的PAL制式信號的原始數據量爲:
720*576*16*25/8 = 20736000 byte = 20MB/s
1GB硬盤存:1GB/20MB = 51s的節目 - 結論:要使數字電視信號適合於實際存儲和傳輸,必須壓縮數據。
- 前提:壓縮後圖像質量要滿足視覺要求;
視頻編碼數據
將視頻像素數據(RGB,YUV等)壓縮成爲視頻碼流,從而降低視頻的數據量
常見視頻編碼格式:
音頻編碼數據
將音頻採樣數據(PCM等)壓縮成爲音頻碼流,從而降低音頻的數據量
常見音頻編碼格式:
視頻像素數據
保存了屏幕上每個像素點的像素值。 常見的像素數據格式有RGB24, RGB32, YUV420P,YUV422P,
YUV444P等。壓縮編碼中一般使用的是YUV格式的像素數據,最爲常 見的格式爲YUV420P。
音頻採樣數據
保存了音頻中每個採樣點的值。 音頻採樣數據體積很大,一般情況下一首4分鐘的PCM格式的 歌曲體積爲:
4*60*44100*2*2=42.3MByte PS:這裏假定採樣率爲44100Hz,採樣精度爲16bit。
視頻壓縮標準發展史
視頻壓縮標準發展歷史(一)
國際視頻壓縮標準
視頻編碼與壓縮技術發展史
封裝格式
- 封裝格式
TS,AVI,MKV,Mpeg,MOV,M2T等等,不同的封裝方式就像是不同的盒子,高清視頻要用它裝起來才能呈現給觀衆。
- 錄音(PCM) —> 音頻數據壓縮(aac) —> 封裝(mp4,mkv,flv…)
- 錄像(YUV420) —> 視頻數據壓縮(h264) —> 封裝(mp4,mkv,flv…)
- 文件播放
- 本地(網絡)視頻 —— 解協議(http,rtmp,file) —— 解封裝(mp4,mlv,avi,wmv,…) —— 視頻解碼(h264,h263,h265…) —— 圖像數據到顯卡
- 音頻解碼(aac,g729,g711…) —— 聲音數據至聲卡
流媒體傳輸:rtp,rtmp
- 視頻採集(YUV420) ——> 視頻壓縮(H264/H265 NALU) ——> 緩衝區 ——> RTP/RTMP傳輸(rtp包) ——> 網絡傳輸(UDP,IP包) ——> INTERNET ——>UDP,IP解包 ——>RTP解包(NALU)——> 緩衝區 ——> H264/H265視頻解碼(YUV420) ——> 視頻播放(YUV)
常用工具簡介
- 音視頻相關知識學習博客:雷霄華
- 視頻採集:DirectShow(api)
- 視頻剪輯: 格式工廠,會聲會影
- 視頻播放器: potplayer,vlc,ffplay;
- 視頻編解碼工具: ffpmeg + api