實時視頻帶寬的計算過程
打開淘寶,四處可見的安全相機,他們可以讓你打開手機APP就隨時查看家里的情況。打開電腦,我們隨時都可以查看某場演講的直播。今天我們來講的,就是這種實時視頻到底會占用多少的帶寬,結(jié)合上一講,你就可以了解對于有實時視頻需求的產(chǎn)品,他對網(wǎng)絡(luò)的需求是怎么樣的。
要搞清楚這個問題,首先要從圖像說起。
1.圖像
1.1 什么是圖像
什么是圖像?簡單說圖像就是很多帶有顏色的點組成的,這些點就是像素點。而像素,也是圖像顯示的基本單位。
我們通常提到的一張圖片是1920 * 1080,意思是說長度為1920個像素點,寬度為1080個像素點,1920 * 1080 = 2073600,也就是說這張圖片總共有200多萬個像素點,也就是我們通常說的200萬像素。
1.2 圖像有多大
想要搞清楚圖像有多大,就得先搞清楚一個像素點是多少個比特(bit),而想搞清楚一個像素點是多少個bit,就要從顏色開始說起。
我們知道任何顏色都可以用紅色、綠色、藍色按照一定的比例調(diào)配出來,而這三種顏色也被稱為三原色。
而在計算機里,顏色是用數(shù)字來表示的,R、G、B被稱為“基色分量”,他們的值分別是從0到255,一種256個等級。因此,任何顏色都可以用R、G、B的三個值的組合來表示。通過RGB的方式,我們可以表達256 * 256 * 256 = 16777216種顏色,這種表示方式,也稱為1600萬色。
剛才提到,RGB三原色中每一個顏色有256個數(shù)值,正好是2的8次方,我們知道在計算機里一個數(shù)字是1bit,那么用8位的二進制數(shù)來表達,剛好能表達256個數(shù)值,那么剛好就是8bit可以表達一個原色,也就是說RGB三原色每個顏色占用8bit,三個顏色就是24bit,這種方式表達的顏色也被稱為24位色。
以1080p的圖片為例,像素點是2073600個,用24位色表示,每張圖片就是 2073600 * 24 bit = 49766400 bit。
結(jié)合上一節(jié)課的知識,我們得到49766400 / 8 / 1024 / 1024 = 5.9MB,就是說這張圖片的大小是5.9MB。
2.視頻
2.1 什么是視頻
我們提到的視頻,其實就是若干張圖片連續(xù)播放的結(jié)果,通常的視頻有如下的幾張格式:
| 視頻格式 | 長寬比 | 分辨率 | 像素 |
| 720p | 16:9 | 1280 * 720 | 921600 |
| 1080p | 16:9 | 1920 * 1080 | 2073600 |
| 2K | 16:9 | 1920 * 1080 | 82073600 |
| 4K | 16:9 | 3840 * 2160 | 8294400 |
| 8K | 16:9 | 7680 * 4320 | 33177600 |
好的,我們繼續(xù)回到視頻,那么多張圖片通常要怎么樣去連續(xù)的播放呢,這就涉及到一個概念,幀率。
2.2 視頻有多大
視頻其實是由若干圖片構(gòu)成的,在視頻中,一幀就是一個畫面,也就是一張圖片,而幀率是指每秒鐘圖片的數(shù)量,單位是FPS(Frame per second)。
常見的幀率有24fps、30fps、60fps,其中24fps是電影的標準,那我們就用24fps來繼續(xù)計算我們要得到的帶寬。
按照上邊的結(jié)果,每秒的視頻就是:49766400 * 24 = 1194393600bit,我們知道1B=8bit,所以每秒的視頻就是149299200B。
換言之,每秒的視頻就是149299200/1024/1024=142MB。這個數(shù)據(jù)是很嚇人的,1秒142MB,那我們刷會兒抖音流量豈不是分分鐘爆炸,這是因為我們對視頻進行了壓縮,接下來我們就來說說視頻的壓縮。
2.3 視頻的壓縮
通常一段視頻從錄制到播放需要經(jīng)過如下流程:
?攝像機錄像?預(yù)處理(A/D轉(zhuǎn)換)?預(yù)處理(YUV轉(zhuǎn)換等)?壓縮編碼?數(shù)據(jù)封裝及傳輸?解碼?圖像格式變換?播放
錄像機錄像以及預(yù)處理不是我們要講的重點,這里就先不展開了,我們只要知道做完這些預(yù)處理后,就要開始正式的編碼了,而目前編碼的主流格式是H.264和H.265。這些編碼有很強的壓縮率,通過可以實現(xiàn)300~500:1的壓縮率,換言之,如果1080p的視頻采用H.264的編碼格式,那么每秒就是1194393600bit / 300 = 3981312 bit/s,而這里的3981312 bit/s就是碼流,也就是視頻文件在單位時間內(nèi)使用的數(shù)據(jù)流量。
3.結(jié)論
綜上所述,我們1080p,24fps,采用H.264格式的視頻,
碼流為:3981312 bit/s
帶寬為:3981312 / 1024 / 1024 = 3.79Mbps
通常我們網(wǎng)絡(luò)帶寬需求 = 視頻碼流 * 1.3,因此,
網(wǎng)絡(luò)帶寬需求為:3.79 Mbps * 1.3 = 4.9 Mbps
同樣我們也知道,4.9Mbps的帶寬理論速度為:4.9/8=0.612MB/s,也就是我們常說的627k的網(wǎng)速。
