直播系統開發中影片採集的技術分析
- 2019 年 10 月 6 日
- 筆記
採集是整個影片推流過程中的第一個環節,它從系統的採集設備中獲取原始影片數據,將其輸出到下一個環節。直播系統開發中影片的採集涉及兩方面數據的採集:音頻採集和影像採集,它們分別對應兩種完全不同的輸入源和數據格式。
採集內容:
1、音頻採集
音頻數據既能與影像結合組合成影片數據,也能以純音頻的方式採集播放,後者在很多成熟的應用場景如在線電台和語音電台等起著非常重要的作用。音頻的採集過程主要通過設備將環境中的模擬訊號採集成 PCM 編碼的原始數據,然後編碼壓縮成 MP3 等格式的數據分發出去。常見的音頻壓縮格式有:MP3,AAC,OGG,WMA,Opus,FLAC,APE,m4a 和 AMR 等。
在音頻採集階段,參考的主要技術參數有 :
取樣率(samplerate):
取樣就是把模擬訊號數字化的過程,取樣頻率越高,記錄這一段音頻訊號所用的數據量就越大,同時音頻品質也就越高;
位寬:
每一個取樣點都需要用一個數值來表示大小,這個數值的數據類型大小可以是:4bit、8bit、16bit、32bit 等等,位數越多,表示得就越精細,聲音品質自然就越好,而數據量也會成倍增大。我們在音頻取樣過程中常用的位寬是 8bit 或者 16bit;
聲道數(channels):
由於音頻的採集和播放是可以疊加的,因此,可以同時從多個音頻源採集聲音,並分別輸出到不同的揚聲器,故聲道數一般表示聲音錄製時的音源數量或回放時相應的揚聲器數量。聲道數為 1 和 2 分別稱為單聲道和雙聲道,是比較常見的聲道參數;
音頻幀(frame):
音頻跟影片很不一樣,影片每一幀就是一張影像,而從上面的正玄波可以看出,音頻數據是流式的,本身沒有明確的一幀幀的概念,在實際的應用中,為了音頻演算法處理/傳輸的方便,一般約定俗成取 2.5ms~60ms 為單位的數據量為一幀音頻。這個時間被稱之為「取樣時間」,其長度沒有特別的標準,它是根據編解碼器和具體應用的需求來決定的;
2、影像採集
影像採集的圖片結果組合成一組連續播放的動畫,即構成影片中可肉眼觀看的內容。影像的採集過程主要由攝影機等設備拍攝成 YUV 編碼的原始數據,然後經過編碼壓縮成 H.264 等格式的數據分發出去。常見的影片封裝格式有:MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等。
在影像採集階段,參考的主要技術參數有:
影像傳輸格式:
通用影像傳輸格式(Common Intermediate Format)是視訊會議(video conference)中常使用的影像傳輸格式;
影像格式:
通常採用 YUV 格式存儲原始數據資訊,其中包含用 8 位表示的黑白影像灰度值,以及可由 RGB 三種色彩組合成的彩色影像;
傳輸通道:
正常情況下影片的拍攝只需 1 路通道,隨著 VR 和 AR 技術的日漸成熟,為了拍攝一個完整的 360° 影片,可能需要通過不同角度拍攝,然後經過多通道傳輸後合成;
解析度:
隨著設備螢幕尺寸的日益增多,影片採集過程中原始影片解析度起著越來越重要的作用,後續處理環節中使用的所有影片解析度的定義都以原始影片解析度為基礎。影片採集卡能支援的最大點陣反映了其解析度的性能;
取樣頻率:
取樣頻率反映了採集卡處理影像的速度和能力。在進行高度影像採集時,需要注意採集卡的取樣頻率是否滿足要求。取樣率越高,影像品質越高,同時保存這些影像資訊的數據量也越大。