現在社會大家不是在看視頻就是在准備去看視頻的路上,那些花樣百出的視頻播放、關閉時你有注意過下方那個小小的進度條么?在進度條里其實隱藏着大大的密碼,你知道是什么么?
2020 年初,一場突如其來的疫情打破了我們以往正常的生活,也阻擋了大家出行的腳步。抗擊疫情,最重要的防護措施就是減少外出,做好隔離,大家每天待在家里,活動范圍僅限“卧室 - 客廳 - 衛生間”,因為無所事事出現了許多“宅家趣事”。
比如某“土豪”網友在家里釣魚,不知道遠道而來的熱帶魚會不會“願者上鈎” … ...
也有某網友很有“商業頭腦”的自制套圈游戲,放在現在一定很適合擺攤 … …
俗話說有耐心的人一定能成就一番大事,這不就有網友把整袋果干數了一遍,揭開了哪種干果最便宜了的秘密……
廣大網友集思廣益創造了很多宅家趣事的同時,一定也有很多的小伙伴一朝得空瘋狂“追劇、看視頻”補齊劇情和娛樂進度。特別最近,各大綜藝紛紛官宣首播時間,各視頻平台也上線了新劇,仿佛后宮三千佳麗靜待垂憐,讓人樂不思蜀。
時間有限,而選擇卻越來越多。為了用戶能夠在有限時間內看更多的內容,各視頻平台推出了各種“花樣節約時間成本”的功能,比如倍速、只看 TA 等等。對於一些劇情拖沓的電視,或者想快進又舍不得的人,這些功能簡直好用到爆。
那大家在用這些好用的功能瘋狂追劇的同時有沒有注意到,有時我們觀看的網絡視頻,它的進度條不是一次性全部載入,而是一段一段的加載?同時肯定也有小伙伴困惑為什么看視頻我們能快進,下載文件的時候就不可以?下面我們就來一一解密。
視頻緩沖技術
在播放視頻的時候,我們一般不需要等待全部加載完成后再開始觀看,而是在我們打開視頻的時候就可以點擊觀看,同時視頻加載的進度條是隨着播放持續加載。這里運用的就是視頻緩沖技術。
緩沖是指將數據預加載到內存保留區(或稱為緩沖區)的過程。在流式傳輸視頻或音頻的情況下,緩沖可以讓客戶端(或瀏覽器)在開始播放視頻或音樂之前,先下載一定數量的數據。這樣當流媒體的下一部分在后台加載時,您可以觀看存儲在緩沖區中的數據。這種預加載過程可以確保視頻在網絡穩定的情況下不收干擾的保持流暢播放。
使用這項技術后觀看視頻就可以免去等待時間,不用全部下載完才能觀看,大大提高了觀看體驗。
視頻分段加載
目前主流的大型視頻網站(例如騰訊、優酷、愛奇藝、blibli)在進行視頻點播時,都使用了視頻分段加載和播放的技術。比如我們打開一個視頻觀看時,可以發現緩沖條在緩沖一段后停止,等待播放一部分后再繼續緩沖,這個就是分段加載。
分段是將一個完整的視頻切割成若干小段視頻。觀看視頻時,會跟隨着播放的時間一階段一階段地去加載剩下的小段視頻,並不需要一下全部加載完。如果觀看者看到了視頻的 50%,突然不想看了,沒有使用分段技術可能會加載全部的視頻。;有了分段,視頻可能只需要加載 55%,剩下的45%在停止觀看后就不會繼續加載,這樣就節省了 45% 的流量。這也是分段加載最大的好處,既減少帶寬和流量的浪費。
如果你在觀看網絡視頻時打開了瀏覽器的開發者模式,你會看到除了開始請求視頻返回的 200 狀態碼,下面還會有一串 206 狀態碼。
這種響應是當客戶端表明自己只需要目標 URL 上的部分資源時返回的。點開任意一個 206 請求,都可以通過 Content-Range 響應頭辨認出該部分內容的請求。Content-Range 響應頭用於表明具體加載了資源的哪一部分。例如下圖的請求就是加載的 3375104-16313201 字節的數據。
Content-Range: bytes 3375104-16313201/16313202
3375104-16313201 是指分段的數據
16313202 是指總文件大
將視頻緩沖和分段技術相結合,既能使視頻在客戶端播放流暢,又能有效的節省帶寬和流量,同時因為緩沖在本地的是小段視頻,也為盜取視頻增加了難度,能夠更好的保護視頻版權。
又拍雲 CDN 之分段緩存
隨着網絡速度的不斷加快,視頻播放的帶寬需求也越來越大。經調研,一些視頻網站的帶寬成本僅次於影視劇版權費用,可見視頻網站在帶寬上成本之高昂。
在針對視頻網站的需求上,除去又拍雲 CDN 的傳統緩存技術,又拍雲還開發了多種功能,為視頻網站提供一些“節約流量的小妙招”。
CDN 的傳統緩存技術是將完整文件作為最基本緩存單位的,因為“點播和下載”加速業務中大文件(上百 M 甚至幾十 G) 隨處可見。如果客戶端通過 HTTP 協議中的 Range 請求獲取文件的部分內容,實現並發下載和斷點續傳。那么按照傳統緩存特性,文件要么被完整緩存,要么不緩存。
為了避免這個問題,又拍雲 CDN 服務提供了分段緩存功能配置,該功能可以使緩存的基本單位變成塊,並且可以在緩存塊大小以及回源請求大小上采用不同粒度進行控制,從而實現按塊緩存,按需回源,在緩存加速的同時避免拉取完整文件導致的源站帶寬浪費。
開啟方式:【功能配置】-【緩存控制】-【分段緩存】,開啟即可
該功能默認開啟,開啟后可有效降低視頻及大文件回源率,提升響應速度,同時還可以提高文件在 CDN 節點的緩存命中率。
又拍雲 CDN 之碼率適配限速
分段緩存是針對所有大文件都可以開啟的功能,又拍雲還針對視頻文件推出了一種節約流量功能:碼率適配限速。
在邊下邊播的視頻點播場景中,觀看者很多情況下不會完整地觀看一個視頻,而是重復打開一個視頻觀看一段時間后就關閉,接着看下一個視頻的動作。視頻網站為了用戶體驗,往往會事先加載部分視頻內容。也就是上面所說的“緩沖”。
視頻不限速的話,一打開視頻,客戶端就開始瘋狂地加載視頻。這樣固然保證了終端用戶的體驗,但如果一旦用戶還沒看完視頻就切換走,預下載視頻的那部分流量就會被浪費,並產生大量的額外帶寬成本。
又拍雲的碼率適配限速功能會根據視頻的觀看進度控制預載的速度,。只需要在后台合理設定碼率適配限速的限速因子,就可以在保證用戶體驗的前提下,做到節省流量成本,防止不必要的帶寬支出。
開啟方式:【功能配置】-【成本控制】-【碼率適配限速】,點擊【管理】,添加規則
在配置界面,依次需要進行資源路徑、限速策略、限速因子的配置。
資源路徑:也即對請求的 URI 進行匹配,匹配成功則進入限速邏輯,支持 * 通配符,例如:/*.mp4
限速策略:表示從某個時刻(下載時間,不是播放時間)開始執行限速策略,支持秒和分鍾配置,默認推薦 3 秒;
限速因子:用來控制 mp4 文件下載限速的因子,指定下載速度為視頻碼率的多少倍,推薦值為 1.1
舉例:
假如某視頻碼率為 1337 Kbps,則視頻的下載速度為 :
(1337/8)*1.1 = 183 KB/s
配置完所有配置項之后,點擊左下角的【保存】按鈕即可。
又拍雲的分段緩存和碼率適配限速都可以有效的減少帶寬成本,節約流量,減輕源站壓力,兩者並不沖突可以同時使用。
除了上述功能,又拍雲還提供了音視頻轉碼、窄帶高清、H265 自適應等針對流媒體多方面優化功能,在節省成本的同時保證並提升用戶體驗。
5G 時代已然到來,大家在享受不斷增快的網絡速度的同時,視頻網站的帶寬成本也在持續不斷的上漲。又拍雲一直以來都在點播、直播等視頻應用方面潛心鑽研,目前已經取得了不俗的成果。我們結合點播、直播、短視頻等業務中的用戶場景,從編碼技術、網絡架構等角度出發,推出了各種“省帶寬,壓成本”的功能。趕快來試一試吧~