視頻網站節約流量的小妙招

如今社會你們不是在看視頻就是在準備去看視頻的路上,那些花樣百出的視頻播放、關閉時你有注意過下方那個小小的進度條麼?在進度條裏其實隱藏着大大的密碼,你知道是什麼麼?html

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 時代已然到來,你們在享受不斷增快的網絡速度的同時,視頻網站的帶寬成本也在持續不斷的上漲。又拍雲一直以來都在點播、直播等視頻應用方面潛心鑽研,目前已經取得了不俗的成果。咱們結合點播、直播、短視頻等業務中的用戶場景,從編碼技術、網絡架構等角度出發,推出了各類「省帶寬,壓成本」的功能。趕快來試一試吧~

推薦閱讀

當我談 HTTP 時,我談些什麼?

三分鐘瞭解 Python3 的異步 Web 框架 FastAPI

相關文章
相關標籤/搜索