今天我們來做一道算術(shù)題——
做一次視頻直播,到底需要多大的網(wǎng)絡(luò)帶寬。
廢話不多說,我們直接開始。
我們先從最基本的圖像開始計(jì)算。
圖像,大家都知道,是由很多“帶有顏色的點(diǎn)”組成的。這個(gè)點(diǎn),就是“像素點(diǎn)(Pixel)”。
像素是圖像顯示的基本單位。我們通常說一幅圖片的大小,分辨率是1920×1080,就是長度為1920個(gè)像素點(diǎn),寬度為1080個(gè)像素點(diǎn)。乘積是2,073,600,也就是說,這個(gè)圖片是兩百萬像素的。
對視頻來說,常見的分辨率有:
注意:不同的標(biāo)準(zhǔn),對2K/4K/8K的定義不同
那么,一個(gè)像素點(diǎn)是多少比特(bit)呢?
在計(jì)算機(jī)里,是用數(shù)字來表示顏色的。這就牽出了“彩色分量數(shù)字化”的概念。
以前我們美術(shù)課學(xué)過,任何顏色,都可以通過紅色(Red)、綠色(Green)、藍(lán)色(Blue)按照一定比例調(diào)制出來。這三種顏色,被稱為“三原色”。
在計(jì)算機(jī)里,R、G、B也被稱為“基色分量”。它們的取值,分別從0到255,一共256個(gè)等級(256是2的8次方)。
所以,任何顏色,都可以用R、G、B三個(gè)值的組合表示。
RGB=[183,67,21]
通過這種方式,一共能表達(dá)多少種顏色呢?256×256×256=16,777,216種,因此也簡稱為1600萬色。RGB三色,每色有8bit,這種方式表達(dá)出來的顏色,也被稱為24位色(占用24bit)。
這個(gè)顏色范圍已經(jīng)超過了人眼可見的全部色彩,所以又叫真彩色。再高的話,對于我們?nèi)搜蹃碚f,已經(jīng)沒有意義了,完全識別不出來。
我們按現(xiàn)在比較流行的1080p直播來舉例計(jì)算吧,像素點(diǎn)是2,073,600。用24位色,也就是每張圖片2,073,600×24bit=49,766,400bit,約5.9MB。
感覺有點(diǎn)大呀~ 別急,我們繼續(xù)往下看。
接下來看幀率(Frame Rate)。
我們的視頻,其實(shí)就是很多張靜止的圖像連續(xù)播放。
在視頻中,一個(gè)幀(Frame)就是指一幅靜止的畫面。幀率,就是指視頻每秒鐘包括的畫面數(shù)量(FPS,F(xiàn)rame per second)。
幀率越高,視頻就越逼真、越流暢。
常見的幀率,有24fps(電影標(biāo)準(zhǔn))、30fps、60fps。
我們就以24fps來算吧,接上前面的結(jié)果,那就是:
49,766,400bit×24=?1,194,393,600?bit=?149,299,200?byte(8bit 比特=1byte 字節(jié))
也就是說,每秒視頻大小約是142MB,每分鐘是8.3GB,每小時(shí)是499.2GB。每部90分鐘的電影,是748.8GB。
這不科學(xué)啊,我們平時(shí)看的電影,哪有這么大的?不就才幾GB嘛?
沒錯(cuò),我們平時(shí)的視頻確實(shí)沒有那么大,因?yàn)槲覀儗σ曨l進(jìn)行了編碼壓縮。
我們先來看看,視頻從錄制到播放的整個(gè)過程,如下:
首先是視頻采集。通常我們會使用攝像機(jī)、攝像頭進(jìn)行視頻采集。限于篇幅,我就不打算和大家解釋CCD成像原理了。
采集了視頻數(shù)據(jù)之后,就要進(jìn)行模數(shù)轉(zhuǎn)換,將模擬信號變成數(shù)字信號。其實(shí)現(xiàn)在很多都是攝像機(jī)(攝像頭)直接輸出數(shù)字信號。
信號輸出之后,還要進(jìn)行預(yù)處理,將RGB信號變成YUV信號。
前面我們介紹了RGB信號,那什么是YUV信號呢?
簡單來說,YUV就是另外一種顏色數(shù)字化表示方式。
視頻通信系統(tǒng)之所以要采用YUV,而不是RGB,主要是因?yàn)镽GB信號不利于壓縮。
在YUV這種方式里面,加入了亮度這一概念。
在最近十年中,視頻工程師發(fā)現(xiàn),眼睛對于亮和暗的分辨要比對顏色的分辨更精細(xì)一些,也就是說,人眼對色度的敏感程度要低于對亮度的敏感程度。
所以,工程師認(rèn)為,在我們的視頻存儲中,沒有必要存儲全部顏色信號。我們可以把更多帶寬留給黑—白信號(被稱作“亮度”),將稍少的帶寬留給彩色信號(被稱作“色度”)。于是,就有了YUV。
YUV里面的“Y”,就是亮度(Luma),“U”和“V”則是色度(Chroma)。
YUV碼流的存儲格式其實(shí)與其采樣的方式密切相關(guān)。(采樣,就是捕捉數(shù)據(jù)。)
主流的采樣方式有三種,YUV4:4:4,YUV4:2:2,YUV4:2:0。
具體解釋起來有點(diǎn)繁瑣,大家只需記住,通常用的是YUV4:2:0的采樣方式,能獲得1/2的壓縮率。
這些預(yù)處理做完之后,就是正式的編碼了。
編碼的過程和原理我們就不解釋了。目前比較流行的編碼格式有H.264,H.265。
這些編碼格式有著非常驚人的壓縮率。以2013年推出的H.265為例,壓縮率能夠達(dá)到300~500:1(包括前面的視頻輸入信號YUV重采樣)。
也就是說,剛才那個(gè)1080p的視頻,我們要直播的話,如果采用H.265編碼格式(按300:1算),碼流就是:
1,194,393,600?bit ÷ 300 = 3,981,312 bit/s
碼流(Data rate)是視頻文件在單位時(shí)間內(nèi)使用的數(shù)據(jù)流量,我們可以理解為視頻文件大小除以視頻時(shí)長。一般來說,碼流越大,視頻的壓縮比就越小,畫面質(zhì)量就越好。
是不是這樣就算完啦?當(dāng)然沒有,我們還有音頻沒有計(jì)算呢。
音頻的計(jì)算相對來說要簡單一點(diǎn)。
聲音是連續(xù)的模擬信號,我們對聲音進(jìn)行采樣、量化、編碼,最終變成數(shù)字信號,然后在網(wǎng)絡(luò)中傳輸。
采樣的指標(biāo)是采樣率,也就是單位時(shí)間內(nèi)(每秒)用多少個(gè)數(shù)據(jù)來描述聲音波形。
采樣率越高,波形越接近,音質(zhì)越好。
采樣率通常有24KHz、44.1KHz、48KHz等。
常見的數(shù)字音頻采樣率
現(xiàn)在視頻直播基本上都是用44.1KHz或48KHz采樣率。
然后是采樣位數(shù),也稱為位深、精度、比特。
這個(gè)值有點(diǎn)像前面所說的圖像位色。它可以理解數(shù)字音頻設(shè)備處理聲音的解析度,即對聲音的辨析度。這個(gè)數(shù)值越大,解析度就越高,錄制和回放的聲音就越真實(shí)(聲音越細(xì)膩)。
聲音的采樣位數(shù)有8bit,16bit,24bit等。
一個(gè)bit數(shù)據(jù)大約可以記錄6dB的聲音,故定義0dB為峰值。常見的16bit(CD音質(zhì)),可以記錄大概96分貝的動態(tài)范圍。24bit的聲音動態(tài)范圍-144dB(24×6)—0dB。
人耳的無痛苦極限聲壓是90分貝,所以,一般來說數(shù)字音頻基本上都會采用16bit的采樣位數(shù)。
聲音通常會分為單聲道或多聲道(雙聲道、四聲道等,兩個(gè)以上的聲道就屬于立體聲)。雙聲道的話,就是×2。
所以,在無損無壓縮格式(例如wav格式)中,音頻的碼率=采樣率(48k)× 位深度(16)× 通道數(shù)(2)= 1,536 kbps。
注意,如果是有損壓縮(例如mp3格式),音頻的碼率不等于這個(gè)格式,因?yàn)樵夹畔⒁呀?jīng)被破壞了。
Mp3通過抽取音頻中的一些頻段來達(dá)到提高壓縮比,降低碼率,減少所占空間,但同時(shí)聲音的細(xì)節(jié)如人聲的情感、后期的混響等等都已經(jīng)發(fā)生變形。盲聽的話也很難較快地分辨出wav和mp3,需要借助設(shè)備。
Mp3目前是最為普及的聲頻壓縮格式,可以最大程度地保留壓縮前的音質(zhì)。Mp3常見碼率是128kbps、192kbps、224kbps、256kbps。320kbps是mp3格式的最高碼率。
我們一般都是用有損壓縮格式,192kbps已經(jīng)夠用了,我們以192kbps為例吧。
視頻加音頻,就是 3,981,312 bps + 192 kbps = 4,080 kbps。
一般來說,考慮到一些抖動和冗余,網(wǎng)絡(luò)需求帶寬≈視頻碼率×1.3。所以,帶寬需求大約是 5,304 kbps。也就是說,差不多6Mbps的帶寬,就可以滿足了。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。