標籤:

為什麼 youku 很多卡到播放不出來的的視頻,廣告都很流暢?

從這個問題想到的:為什麼YouTube在至少5秒的廣告後就能看到1440p的視頻,但優酷卻要等至多45秒,還只能碼率很低的720p? - 計算機網路


前http://tudou.com的CDN系統作者。2007-2009。高票答案已經解釋了緩存,我就從CDN的角度做一下解釋。即尚未緩存的時候,為何廣告的載入比內容視頻更快。

CDN系統就是用於直接提供視頻播放的集群。每當有用戶請求一個視頻時,就會由分發系統選擇擁有該視頻的伺服器,列出一個可用於播放的URL列表給用戶來實際播放。播放器按照順序依次找到第一個可播放的URL來播放。這個列表的順序是動態改變的,每個用戶不同,不同時間段也不同。

CDN的伺服器有級別之分,一般分為3級,即大城市(北上廣)、衛星城(天津、濟南、寧波、湛江)、窮鄉僻壤。大城市的帶寬最貴質量最好速度最快,CDN系統往往只購買很少的大城市帶寬。衛星城會便宜不少,質量和速度也還不錯,但肯定沒法跟大城市比。窮鄉僻壤的帶寬極其廉價,網路跳數(TTL)、ping值、丟包等參數也很嚇人。

實際返回的視頻URL列表也會根據多種參數進行動態調整。瀏覽器上一般用js存儲用戶最近看過的20個視頻的ID。然後伺服器會根據這20個視頻ID評估用戶價值,基於統計學的方法。具體參數有很多。當評估出來用戶價值很高時,就會優先返回大城市的CDN伺服器,確保用戶看視頻速度飛快。當用戶就是個沒有消費能力的人,則可能返回窮鄉僻壤的URL。而大部分用戶看的視頻都是返回的衛星城的URL。

所以題主的問題就很明確了。每次請求視頻時,廣告視頻妥妥的走大城市CDN伺服器,而內容視頻則最大的可能是衛星城CDN伺服器。兩者速度差別就來源於此。


還是沒有人達到點子上啊=。=

因為瀏覽器有緩存機制,廣告一般都是絕對路徑。

比如說 http://ad.youku.com/ad1.mp4等等

而視頻為了省流量,防盜鏈等等,進行了動態加密處理,所以url是通過演算法算出來的(每次都不同,url也不同,可惜並沒有什麼卵用0v0),而且有鏈接有效期。這樣就會導致瀏覽器無法正確進行緩存,而且在多段視頻切割下,為了防止佔用過多內存,都有播放後自動從flash舞台unload的做法(所以如果沒被gc,還可以點回上一段看,gc了就得重新緩存了),當然分段也可以緩解較長視頻內存佔用過多的問題(尼瑪,你就說為了省寬頻吧,技術還不到家,flash直接掐斷stream不久行了 (@_@))

其次,廣告文件一般比較小,而且幾乎每時每刻都會被訪問,這樣,大部分 反向代理(cdn拉)根據熱點圖都不會flush掉這部分cache,而視頻就不一樣了0v0,冷門視頻由於cache size很快就會被flush掉,cdn的痛點就是回源,一旦回源,一般速度都會非常慢。

比如說lz之前發現百度盤可以自己構造key來指定cdn server。。結果就發現百度內部回源速度及其緩慢,只有1.8Mbps左右。這樣就不難理解為什麼廣告一般比視頻快很多啦0v0

(手機打的 排版見諒


反對 @喵嗚的觀點,優酷視頻播放廣告的時間大部分沒有載入視頻。如這張抓包圖所示:這是我在沒有緩存的情況下打開一個45秒廣告的優酷視頻。紅框中橫向為時間軸,綠條與藍條表示一次請求響應。較長的藍條對應耗時較久的視頻響應。圖中可以看出前15秒內只載入了幾段廣告。42秒以後才真正開始分段請求視頻,也就是用戶看廣告的大部分時間並沒有緩存視頻。

而題主說的廣告流暢是因為廣告因為畫面質量不高,所以相對比較小(圖中可以看出瀏覽器請求第一個廣告的用時大概在3秒左右)。而且瀏覽器會把廣告緩存在本地,下次用戶打開一個視頻,就會直接使用緩存在本地的廣告。至於看視頻時卡頓就與很多因素有關了:

最重要的就是用戶的帶寬,別想著用2M的小水管在線看720p的視頻一會兒嫌卡了就讓優酷背鍋。

視頻網站的網路負載,視頻請求策略,視頻的壓縮比對在線視頻播放質量影響也比較大。這就看該公司程序猿們的水平了,但就我了解的大部分視頻網站如YouTube 優酷 土豆 AcFun 在這一方面做的都還不錯。

用戶使用的運營商、視頻網站主機所在位置、視頻網站主機使用的運營商對播放視頻也有一定影響,譬如我有段時間使用長城寬頻就根本不能載入bilibili視頻。


猜想:

廣告視頻的碼率比較低,畢竟不需要超清廣告……

非熱門視頻在cdn節點上未必有熱數據,可能需要回源


優酷是在廣告結束3秒前開始載入視頻的。


有沒有優酷的人,我想問個問題,我20M電信,為什麼用優酷客戶端很卡,有些時候只能用標清,經常是緩存到一定時候就不自動緩存了,然後播放到那裡就卡了。我用騰訊視頻客戶端都是開的超清甚至原畫,現在基本不想打開優酷。。。或者用網頁版。。


補充一個昨天遇到的實例。

1、關閉Adblock

2、打開優酷,載入視頻,進入廣告

3、打開Adblock

4、刷新

5、在Adblock攔截的情況下優酷進入了廣告

這充分說明優酷的廣告不是在線請求來的而是提前緩存好的


前優酷運維部員工,2012-2014,一度負責運維資產和IDC建設(非採購),在職期間優土新增伺服器60%以上是經我手從上架到上線;也做CDN運維的工作。

看了排名第一 @Ovear 和第二 @gashero 的答案。我覺得主要還是緩存方面造成的差異,比如經常沒有正確的被緩存啊,比如廣告片很小,而且可以被緩存到本地啊。

而CDN造成的差異,第二的答案關於CDN的觀點沒什麼問題,但總感覺有些怪怪的,誇大了不同地域的CDN流暢度的差別,或者說用「大城市、小地方」來形容帶寬質量有點簡單化處理了……

優土CDN伺服器從硬體上講同一批次都是同樣配置,帶寬方面從地理位置上看,確實也有北上廣、二三線城市、四線以下城市之分,最多的是二三線城市,最少的是四線以下城市。但CDN節點的建立本身就是為了優化用戶體驗。離用戶越近的節點,服務對象的地域越明確,也應當更流暢,就像是深入基層。(甚至合作節點裡,比如XX寬頻的用戶訪問的都是XX寬頻專屬的優酷CDN伺服器,伺服器就放他們的機房,運營商走內網可以省大筆帶寬費,用戶看視頻也更流暢)。

每次採購新機房的帶寬的時候,我們都會提前測試和收集忙、閑時刻的延遲等數據,才決定是否採用,小節點的網路質量也沒那麼不堪啦。

即使廣告伺服器都放到省級核心節點上,對用戶來說,延遲誰更高點並不是一定的啊……所以我覺得更多還是第一的答案說的那些……


我沒記錯的話,廣告都是提前預緩存的到本地的。

﹉﹉﹉

所以其實看廣告是為了讓我們安靜的等要看的視頻緩存進度。

﹉﹉﹉

分割線以內已經被證實是錯誤的,廣告播放過程中沒有緩存視頻,請知悉。


大殺器 不說名字了

看視頻,沒見過廣告,直接點開就看的,客戶端不想下,是感覺跟踩了shi一樣,各種推送打包。


優酷廣告卡死了,難道只有我一個人嗎。。。


我們正在努力讓看視頻的體驗更好,比如在各個端加入p2p技術。

至於為什麼廣告不卡,因為整個站點就那麼幾個廣告,播放頻率很高,當然在各個地方緩存的就多啦。

廣告其實不是好的商業模式,等視頻行業完整生態系統建成,免去飽受詬病廣告也不是不可能。


你需要買個會員


我猜因為優酷對非會員限速了。家裡100M聯通,平時下載的速度在12M左右,有次看一個6分鐘的短視頻,半小時都沒緩存完。登了朋友的賬號,瞬間緩衝完成


為什麼大家都從技術角度分析,這種情況最大的可能性就是公司重視程度不一樣,它更重視廣告能不能播出來而不太在乎視頻內容播放體驗。一般廣告是放在與其它內容不同的伺服器上的,公司為了保證廣告能流暢播放會投入大量技術手段,比如將廣告內容分布到全國許多機房,用戶點播時選擇網路最通暢的機房提供廣告內容,或者給廣告相關伺服器配置性能最好的硬體設備、分配更多的網路帶寬。在給其它內容伺服器分配資源的時候就會更多地考慮性價比。總之技術根本不是問題,一切都是利益。


廣告一般是第三方的DSP公司在做,他們的網路一般不需要經受專門的視頻公司(比如優酷)那樣的網路鴨梨。


猜想:可能緩存在你電腦裡面;可能有專門的伺服器提供廣告


youku對廣告屏蔽插件動了手腳吧,如果是廣告播放不出來,就會讓視頻播放卡頓,馬上複製鏈接放到ie里無屏蔽,放完了廣告放視頻,從無卡頓緩衝情況.

其實廣告就算了,畢竟優酷也要賺錢,但是我非常非常非常討厭有聲音的廣告,無聲的我可以頁面放到一邊,正片出來的時候再看,有聲的就太噁心了,關閉廣告聲音的按鈕必須每個廣告開頭就點,加個記憶功能會死?不! 壓根就是故意不加的!

30秒的正片放一分半鐘的廣告有沒有這麼噁心的玩法?

連續看到優酷視頻,每次都要放個廣告,有沒有考慮用戶的感受?

賺錢第一,用戶是傻逼,是被強姦的對象,他們沒辦法反抗,只能躺著被強姦,這就是國內一些廠商的用戶體驗了.

其實優酷上並沒有多少含金量的視頻存在,只是很多網站當作了視頻播放平台而已,不少都是從youtube上轉來的,一般我都會直接去找源視頻來看,鏈接國外的伺服器播放不卡還高清,還沒廣告,有夠諷刺的.

現在優酷的視頻我都直接不看了,最終的選擇權還是在我手裡的,那些不考慮用戶體驗的公司早死早超生.


有時候看完一二分鐘的廣告,然後告訴你視頻播放不了。。。。


靠廣告吃飯呀


推薦閱讀:

知乎居然搜索不到關於「裡屋」的問題?幾年沒玩,請問一下「裡屋」近況,(提問時間2014年05月)?
雷軍做對了哪些節點使他發展這麼快?
如何理解賭徒謬誤和大數定律的關係?
請教:PE、PM、PD、PR是什麼崗位?|
在你所知的領域裡,你認為什麼是該領域談論的界限?這個界限能夠區分門外漢和研究者嗎?

TAG:互聯網 |