实时视频带宽的计算过程
打開淘寶,四處可見的安全相機(jī),他們可以讓你打開手機(jī)APP就隨時(shí)查看家里的情況。打開電腦,我們隨時(shí)都可以查看某場(chǎng)演講的直播。今天我們來講的,就是這種實(shí)時(shí)視頻到底會(huì)占用多少的帶寬,結(jié)合上一講,你就可以了解對(duì)于有實(shí)時(shí)視頻需求的產(chǎn)品,他對(duì)網(wǎng)絡(luò)的需求是怎么樣的。
要搞清楚這個(gè)問題,首先要從圖像說起。
1.圖像
1.1 什么是圖像
什么是圖像?簡單說圖像就是很多帶有顏色的點(diǎn)組成的,這些點(diǎn)就是像素點(diǎn)。而像素,也是圖像顯示的基本單位。
我們通常提到的一張圖片是1920 * 1080,意思是說長度為1920個(gè)像素點(diǎn),寬度為1080個(gè)像素點(diǎn),1920 * 1080 = 2073600,也就是說這張圖片總共有200多萬個(gè)像素點(diǎn),也就是我們通常說的200萬像素。
1.2 圖像有多大
想要搞清楚圖像有多大,就得先搞清楚一個(gè)像素點(diǎn)是多少個(gè)比特(bit),而想搞清楚一個(gè)像素點(diǎn)是多少個(gè)bit,就要從顏色開始說起。
我們知道任何顏色都可以用紅色、綠色、藍(lán)色按照一定的比例調(diào)配出來,而這三種顏色也被稱為三原色。
而在計(jì)算機(jī)里,顏色是用數(shù)字來表示的,R、G、B被稱為“基色分量”,他們的值分別是從0到255,一種256個(gè)等級(jí)。因此,任何顏色都可以用R、G、B的三個(gè)值的組合來表示。通過RGB的方式,我們可以表達(dá)256 * 256 * 256 = 16777216種顏色,這種表示方式,也稱為1600萬色。
剛才提到,RGB三原色中每一個(gè)顏色有256個(gè)數(shù)值,正好是2的8次方,我們知道在計(jì)算機(jī)里一個(gè)數(shù)字是1bit,那么用8位的二進(jìn)制數(shù)來表達(dá),剛好能表達(dá)256個(gè)數(shù)值,那么剛好就是8bit可以表達(dá)一個(gè)原色,也就是說RGB三原色每個(gè)顏色占用8bit,三個(gè)顏色就是24bit,這種方式表達(dá)的顏色也被稱為24位色。
以1080p的圖片為例,像素點(diǎn)是2073600個(gè),用24位色表示,每張圖片就是 2073600 * 24 bit = 49766400 bit。
結(jié)合上一節(jié)課的知識(shí),我們得到49766400?/ 8 / 1024 / 1024 = 5.9MB,就是說這張圖片的大小是5.9MB。
2.視頻
2.1 什么是視頻
我們提到的視頻,其實(shí)就是若干張圖片連續(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ù)的播放呢,這就涉及到一個(gè)概念,幀率。
2.2 視頻有多大
視頻其實(shí)是由若干圖片構(gòu)成的,在視頻中,一幀就是一個(gè)畫面,也就是一張圖片,而幀率是指每秒鐘圖片的數(shù)量,單位是FPS(Frame per second)。
常見的幀率有24fps、30fps、60fps,其中24fps是電影的標(biāo)準(zhǔn),那我們就用24fps來繼續(xù)計(jì)算我們要得到的帶寬。
按照上邊的結(jié)果,每秒的視頻就是:49766400 * 24 = 1194393600bit,我們知道1B=8bit,所以每秒的視頻就是149299200B。
換言之,每秒的視頻就是149299200/1024/1024=142MB。這個(gè)數(shù)據(jù)是很嚇人的,1秒142MB,那我們刷會(huì)兒抖音流量豈不是分分鐘爆炸,這是因?yàn)槲覀儗?duì)視頻進(jìn)行了壓縮,接下來我們就來說說視頻的壓縮。
2.3 視頻的壓縮
通常一段視頻從錄制到播放需要經(jīng)過如下流程:
?攝像機(jī)錄像?預(yù)處理(A/D轉(zhuǎn)換)?預(yù)處理(YUV轉(zhuǎn)換等)?壓縮編碼?數(shù)據(jù)封裝及傳輸?解碼?圖像格式變換?播放
錄像機(jī)錄像以及預(yù)處理不是我們要講的重點(diǎn),這里就先不展開了,我們只要知道做完這些預(yù)處理后,就要開始正式的編碼了,而目前編碼的主流格式是H.264和H.265。這些編碼有很強(qiáng)的壓縮率,通過可以實(shí)現(xiàn)300~500:1的壓縮率,換言之,如果1080p的視頻采用H.264的編碼格式,那么每秒就是1194393600bit / 300 = 3981312 bit/s,而這里的3981312 bit/s就是碼流,也就是視頻文件在單位時(shí)間內(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)速。
總結(jié)
以上是生活随笔為你收集整理的实时视频带宽的计算过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP安装rabbitmq扩展
- 下一篇: 【IDEA 教程系列第 14 篇】ide