視頻直播“秒開(kāi)”是如何實(shí)現(xiàn)的?
不得不說(shuō)近些年來(lái)視頻技術(shù)的飛速發(fā)展給人們帶來(lái)的良好的視頻觀看體驗(yàn),視頻直播秒開(kāi)也已成為直播界的標(biāo)配,可以說(shuō)為了達(dá)到秒開(kāi)的標(biāo)準(zhǔn)視頻技術(shù)服務(wù)商真的是絞盡腦汁。
而移動(dòng)互聯(lián)網(wǎng)的興起讓直播技術(shù)的難點(diǎn)也從傳統(tǒng)的電腦端轉(zhuǎn)向到了移動(dòng)端,移動(dòng)直播技術(shù)上的環(huán)節(jié)包括:采集、編碼、封裝、推流、轉(zhuǎn)碼、分發(fā)、解碼渲染、播放等。從推流到播放,再經(jīng)過(guò)中間轉(zhuǎn)發(fā)環(huán)節(jié),延遲越低,則用戶體驗(yàn)越好。
衡量視頻直播的性能有三個(gè)指標(biāo):第一個(gè)是延遲,第二個(gè)是卡頓,第三個(gè)就是首屏耗時(shí)。
視頻直播技術(shù)發(fā)展到今天,延遲和卡頓對(duì)用戶造成不良的觀看體驗(yàn)的概率已經(jīng)非常小了。今天主要說(shuō)一下首屏耗時(shí),沒(méi)有人愿意打開(kāi)一個(gè)直播,等視頻出來(lái)等個(gè)幾分鐘,這對(duì)人來(lái)說(shuō)簡(jiǎn)直是種折磨。為了給人們觀看視頻打造良好的體驗(yàn),所以,現(xiàn)在視頻秒開(kāi)已經(jīng)成為直播界的標(biāo)配。可是,看似一小步,確實(shí)技術(shù)的一大步呢。
首屏耗時(shí)指第一次點(diǎn)擊播放后,肉眼看到畫(huà)面所等待的時(shí)間。技術(shù)上指播放器解碼第一幀渲染顯示畫(huà)面所花的耗時(shí)。通常說(shuō)的 “秒開(kāi)”,指點(diǎn)擊播放后,一秒內(nèi)即可看到播放畫(huà)面。首屏打開(kāi)越快,說(shuō)明用戶體驗(yàn)越好。
現(xiàn)在可以說(shuō)是很多的視頻直播都可以做到秒開(kāi),已不是什么罕見(jiàn)的事情了。但是之前點(diǎn)擊播放后要等好幾秒以后才能播放。這是什么原因?qū)е氯绱说奶烊乐畡e呢?
其實(shí),大部分播放器都是拿到一個(gè)完成的 GOP 后才能解碼播放,基于 FFmpeg 移植的播放器甚至需要等待音畫(huà)時(shí)間戳同步后才能播放(如果一個(gè)直播里邊沒(méi)有音頻只有視頻相當(dāng)于要等待音頻超時(shí)后才能播放畫(huà)面)。
現(xiàn)在之所以能夠?qū)崿F(xiàn)秒開(kāi)是因?yàn)槿缃窀膶?xiě)了播放器邏輯,讓播放器拿到第一個(gè)關(guān)鍵幀后就顯示成像,不再是等待音畫(huà)時(shí)間戳同步后再播放了。而GOP 的第一幀通常都是關(guān)鍵幀,加載的數(shù)據(jù)又少,更加有利于“秒開(kāi)”的實(shí)現(xiàn)。而且現(xiàn)在的直播服務(wù)器基本都支持 GOP 緩存,播放器在和服務(wù)器建立連接后可立即拿到數(shù)據(jù),省卻跨地域和跨運(yùn)營(yíng)商的回源傳輸時(shí)間。
當(dāng)然了,除了更改播放器邏輯之外,“視頻秒開(kāi)”還有一個(gè)更重要的原因,那就是如今十分發(fā)達(dá)CDN網(wǎng)絡(luò)的建立。現(xiàn)在基本各大視頻服務(wù)商都有2套以上的CDN網(wǎng)絡(luò),更多服務(wù)器、更大的帶寬讓數(shù)據(jù)的傳輸暢行無(wú)阻。
CDN網(wǎng)絡(luò)的成熟構(gòu)建將“視頻秒開(kāi)”向前推進(jìn)了一步,但是僅僅是網(wǎng)絡(luò)環(huán)境好、改變了播放器邏輯就能實(shí)現(xiàn)“秒開(kāi)”嗎?
還是差點(diǎn)東西的。
基本的優(yōu)化還是要做的。比如:可以圍繞傳輸層面做性能優(yōu)化,可以圍繞客戶播放行為做業(yè)務(wù)邏輯優(yōu)化。
提前做好 DNS 解析和測(cè)速選線,經(jīng)過(guò)這樣的預(yù)處理后,在點(diǎn)擊播放按鈕時(shí),將極大提高下載性能。兩者可以有效的互為補(bǔ)充,作為秒開(kāi)的優(yōu)化空間。