阿里云如何实现海量短视频的极速分发?答案在这里!
推廣:數十款阿里云產品限時折扣中,趕緊點擊這里,領劵開始云上實踐吧!
本場視頻回顧鏈接:海量短視頻的極速分發(fā)
?
演講嘉賓簡介:
周哲,花名士豪,阿里云高級技術專家 。
?
以下內容根據演講嘉賓視頻分享以及PPT整理而成。
?
本次的分享主要分為三部分:
一、短視頻應用場景:該部分主要介紹一些短視頻相關的業(yè)務應用 。
二、阿里云短視頻解決方案:?該部分主要介紹針對短視頻的業(yè)務應用場景,阿里云所提供的一些整體的解決方案和技術產品。
三、阿里云對短視頻媒體體驗優(yōu)化:該部分主要介紹阿里云針對短視頻的業(yè)務場景之下所做的用戶體驗優(yōu)化措施。
?
?
一、短視頻應用場景
?
本次主題的第一部分是短視頻的應用場景有哪些,短視頻比圖片和文字要包含更多的信息,在目前移動互聯網非常普及的時代,短視頻的應用場景非常廣泛,首先在社區(qū)視頻內容分享場景中,我們可以看到用戶可以在本地錄制視頻,然后進行編輯,比如說做一些特效處理,然后再上傳到服務器,最后通過社區(qū)分享的方式分享給好友。那么在電商場景中,商家可以通過快速拍攝、制作商品短片,然后把商品的介紹視頻發(fā)送給消費者,這樣可以有效的提升購買的轉化率。短視頻還有一些其他的應用場景,比如說聊天場景、新媒體的場景,
?
二、阿里云短視頻解決方案
?
第二部分,我們針對上面介紹的短視頻應用場景介紹一下阿里云短視頻的解決方案。阿里云針對短視頻的各種應用場景提供了一整套解決方案,首先我們可以看到在用戶的主播段提供自動SDK、短視頻上傳的SDK,在視頻播放端提供視頻播放的SDK,然后在視頻的播放端提供視頻的點播服務、OSS存儲服務和CDN加速服務。
?
接下來大概介紹一下阿里云短視頻解決方案提供的使用流程:首先對于開發(fā)者來說可以在主播端使用短視頻的SDK對短視頻進行錄制,然后對錄制好的視頻通過做一些特效處理,然后通過短視頻的上傳SDK上傳到服務器端,然后在服務器端可以先通過點播服務來進行轉碼,以及做一些視頻的處理,然后把處理好的視頻通過OSS存儲服務存儲到OSS中進行持久化的保存,然后開發(fā)者可以在觀眾端集成視頻播放的SDK,然后通過視頻播放的SDK訪問CDN進行加速,CDN如果會有這些資源的話,它會對視頻資源進行緩存,然后把緩存的內容發(fā)給視頻播放端,那CDN沒有這部分資源的話,它會去OSS中去拉取并進行保存。開發(fā)者就可以基于這些基礎的技術組件來快速的開發(fā)自己的短視頻業(yè)務平臺。
?
?
接下來介紹一下視頻SDK包含的具體功能,視頻SDK主要有以下三個部分功能組成:短視頻SDK、上傳SDK和播放器SDK。
1. ?第一個功能是短視頻SDK,短視頻SDK主要是提供短視頻的錄制以及一些特效處理,如人臉貼圖、高級美顏。這樣在短視頻錄制之后先做一個本地美顏,然后再進行上傳;然后短視頻SDK同時還提供專業(yè)濾鏡以及MV特效功能;再有就是裁剪壓縮和背景音樂等相關的功能
2. 第二個功能是上傳SDK,上傳SDK通過快速通道可以把視頻傳輸到服務器端,上傳SDK支持斷點續(xù)傳、后臺上傳以及多文件管理等和多平臺支持
3.?第三個功能是播放器SDK,播放器SDK支持多個平臺,包括安卓、ios、flash和html5,播放器SDK支持倍數播放、加密播放、安全下載、視頻截圖、傾斜度切換、邊播放邊緩存和多平臺支持。
?
?
下面介紹一下剛才講到的點播和存儲服務。
1.?點播服務提供視頻管理相關的一些服務,比如說視頻轉碼,視頻轉碼支持窄帶高清,窄帶高清可以使得用戶在相同的光感體驗下視頻播放的帶寬降低百分之三十,第二個功能是云剪輯的功能,云剪輯指的是在線的對視頻進行剪輯的功能,同時點播服務提供豐富的數據統計功能,開發(fā)者可以使用阿里云提供的API訪問一些與視頻統計相關的數據。
2.?同時阿里云對視頻內容開放視頻AI的技術服務,其中內容審核服務是可以利用阿里云提供內容審核服務來對視頻內容進行審核,從而規(guī)避視頻違規(guī)的風險;智能封面功能是通過分析視頻數據來做結構化的處理,通過結合圖像美顏功能和計算視頻幀來選取視頻的封面;標簽預測功能是通過AI技術來識別視頻中的文字、圖像以及聲音等信息, 對這些信息進行輸出,然后自動生成視頻的標簽。
3.?為了應對海量的視頻數據,阿里云提供了海量數據存儲服務,來提供高可靠、強安全并且低成本的視頻存儲服務。
?
?
?
為了應對短視頻大規(guī)模的自動場景的需求,阿里云CDN建設了大量的基礎設施,首先,阿里云CDN在全球有超過1200個CDN節(jié)點,這些節(jié)點分布在全球各個國家和地區(qū)的大中小城市,這些節(jié)點貼近用戶部署,能夠使得用戶更加快速的訪問視頻內容,用戶體驗更好;同時為了面對業(yè)務的突發(fā)流量,阿里云提供80TB的帶寬儲備,為持續(xù)增長的業(yè)務保駕護航;并且有單機緩存容量超過PB級別的緩存節(jié)點,通過提供更大的緩存來提升緩存利用率,從而有效提升用戶的訪問速度。
?
?
?
三、阿里云短視頻優(yōu)化
?
介紹完阿里云針對短視頻提供的解決方案之后,接下來介紹一下阿里云針對短視頻做的一些優(yōu)化的技術。
短視頻關鍵的指標有首屏時間,播放卡頓和播放錯誤。
1)首屏時間是用戶點擊播放的時候,當用戶看到視頻開始播放的時間與用戶點擊播放的時間間隔。首屏時間越長,越容易導致用戶提前結束播放。
2) 播放卡頓指的是視頻播放是否流暢,播放過程中出現卡頓會很大地影響用戶體驗。
3)?播放錯誤指的是用戶在視頻播放過程中沒有成功播放,或者出現一些異常導致視頻播放提前中斷。
?
?
為了解決這些問題,我們對整個用戶體驗優(yōu)化架構進行了剖析。首先看一下阿里云CDN和相關的一些服務對于用戶在對短視頻播放場景的整個過程。終端用戶首先通過阿里云提供的視頻SDK來請求調度服務器,調度服務器返回對應的CDN節(jié)點IP,然后播放器根據返回的CDN節(jié)點IP來請求資源,CDN資源節(jié)點即我們所謂的一級節(jié)點,它如果有緩存的話就會從本地緩存把視頻發(fā)送給播放器,如果沒有緩存會訪問二級節(jié)點,如果二級節(jié)點同時也沒有緩存,則會去OSS或用戶原站拉取原本的數據。
二級節(jié)點的處理和一級節(jié)點處理邏輯是相似的,阿里云使用兩級節(jié)點的架構,二級節(jié)點的作用主要是首先可以對資源進行匯聚,因為有很多的邊緣節(jié)點,如果每個邊緣節(jié)點都去原站進行資源獲取,那么會造成原站的帶寬壓力特別大,而二級節(jié)點通過對資源進行匯聚,然后再去原站請求資源,這樣會大大減少原站的帶寬壓力;其次二級節(jié)點更貼近一級節(jié)點,使得一級節(jié)點有更快的下載速度。
同時我們對整個播放過程進行針對用戶體驗相關的數據打點,針對這些數據打點來進行分析,分析之后得到相關的優(yōu)化點。
第一點優(yōu)化是針對播放器,播放器有沒有針對視頻體驗做一些相關的優(yōu)化很影響視頻訪問的質量。阿里云對播放器SDK做了很多相關的優(yōu)化,比如說針對首屏時間通過減少首屏緩存時間來降低首屏時間;針對卡頓率通過提供動態(tài)緩存大小的方式,能夠在出現網絡抖動的時候可以動態(tài)的增加緩存大小,對數據進行預加載,通過這種方式來應對網絡抖動導致的播放卡頓;針對播放錯誤,播放器SDK內部實現了網絡從適功能來提高播放成功率。
第二點優(yōu)化是針對調度,用戶在訪問節(jié)點的時候,訪問調度服務器,調度服務器返回的IP地址是不是用戶訪問最優(yōu)的網絡鏈路,它很大程度上影響用戶的視頻下載速度。針對這個問題,阿里云做了很多優(yōu)化,開發(fā)了智能調度系統,調度系統會選擇用戶到邊緣節(jié)點的最優(yōu)鏈路來返回給客戶端。
第三點優(yōu)化是阿里云目前提供更多的節(jié)點覆蓋,使得這些節(jié)點更貼近用戶,來提高用戶的下載速度。
第四點優(yōu)化是用戶向CDN服務器傳輸數據時,當出現網絡抖動的時候,會造成下載速速降低的情況,為了解決這個問題,阿里云CDN針對TCP協議棧做了很多優(yōu)化,通過更高效的協議棧算法來提升下載速度。
第五點優(yōu)化是阿里云提供更高效的窄帶高清功能來降低播放視頻的帶寬。
第六點優(yōu)化是針對緩存服務器的性能。用戶在訪問邊緣節(jié)點的時候,如果資源不存在會回原,如果用戶的請求資源在邊緣節(jié)點命中的時候,用戶的下載速度和緩存服務器處理性能將會有很大的關聯性,阿里云針對緩存服務器的性能做了很多優(yōu)化,如通過增大邊緣節(jié)點的存儲空間以及I/O性能的優(yōu)化,來提升用戶的視頻訪問速度。
第七點優(yōu)化是阿里云采用全鏈路監(jiān)控的方式來保證整個播放鏈路中的用戶體驗,能夠提早的發(fā)現體驗相關的問題,以便提前做一些性能優(yōu)化。
?
下面詳細介紹一下阿里云針對智能調度所做的一些優(yōu)化,針對智能調度系統,做了以下五個方面的優(yōu)化:
1. 提供精準的IP庫數據,對IP庫數據進行持續(xù)更新,同時會基于一些第三方IP庫數據、淘寶用戶在訪問CDN時所在的一些經緯度信息,以及對IP庫所做的主動的數據探測所得到的數據等這些維度的數據進行計算,生成IP庫的具體位置。IP庫數據的準確度為調度系統的精準調度提供數據支撐。
2. 提供高性能的httpdns服務。httpdns指的是通過http請求的方式來查詢域名對應的服務器IP地址。它解決的問題是當使用local dns來進行查詢調度服務器的時候,第一個問題是會出現用戶IP地址和dns服務器所在的區(qū)域不一致,那么會導致調度服務器看到的用戶IP的地址和真實的用戶訪問的IP地址不一致的問題,繼而導致調度出現偏差;第二個問題是在用戶查詢dns的時候,會出現dns被篡改的情況,在dns被篡改之后就會導致此時服務器的IP地址不一定是CDN的IP地址。為了解決這兩個問題,可以使用阿里云提供的httpdns服務。
3.?提供基于用戶體驗的自動化調度,基于用戶的客戶端IP以及用戶到每個節(jié)點的網絡數據情況來進行計算,計算還包含當前的各個節(jié)點的狀態(tài),通過一些機器學習的方式來進行預測用戶到哪個節(jié)點的網絡鏈路是最優(yōu)的。通過這種方式來提供給調度系統對用戶的IP地址來返回最優(yōu)的網絡鏈路結果,來提升網絡鏈路的質量。
4. 通過大數據分析來選擇最優(yōu)的節(jié)點。會對當前節(jié)點覆蓋情況以及用戶訪問流量的趨勢做一個數據預測,來去選擇在哪里建點,并計算這些節(jié)點覆蓋的哪些網絡鏈路是最優(yōu)的,為調度系統提供調度數據支撐。
5. 使用內容調度提升命中率。通過使用302的調度方式進行內容粒度的調度,從而提高命中率。
?
?
阿里云CDN針對緩存系統做了很多優(yōu)化。阿里云緩存系統通過資源的緩存系統開發(fā)基于裸盤的文件系統,使用內存、SSD加SATA的三級緩存架構,會把最熱的資源存儲到內存中,把次熱的資源存儲到SSD中,然后把冷的資源存儲到SATA盤中;通過熱點遷移的方式將SATA盤中熱的資源遷移到SSD和內存中,然后通過淘汰算法對內存和SSD中的冷的資源淘汰到SATA盤中,內存和SSD中熱的資源仍然保存在內存和SSD中,通過這種方式來提升內存和SSD中的命中率,降低SATA盤中I/O讀寫的情況,通過SATA存儲冷的資源來提高邊緣節(jié)點的命中率。同時文件系統對IO做了很多優(yōu)化,比如說合并IO對齊寫入的功能來避免磁盤碎片的產生,磁盤碎片會導致IO性能嚴重下降;然后對大文件進行切片存儲,把每個大文件切成很多分片,每個分片存儲到不同的磁盤中,這樣可以避免單個文件過熱,導致磁盤IO性能下降的問題。通過以上這些優(yōu)化,可以實現緩存的平均命中率達到95%以上,首字節(jié)時間低于10ms。
?
?
接下來介紹一下基于用戶體驗的TCP協議棧優(yōu)化。針對TCP協議做了以下優(yōu)化:
1. 基于時間序的丟包發(fā)現機制,主要是在TCP協議棧中分析TCP發(fā)包的時間序列,識別出哪些包在發(fā)送過程中丟失。通過這種方式能夠發(fā)現丟包,然后進行快速重傳.
2. 主動丟包發(fā)現機制,主要是在發(fā)送包的時候增加主動探測的機制,通過主動探測的方式來對丟包更提早的發(fā)現,避免通過超時發(fā)現丟包,減少丟包的發(fā)現時間,通過這種方式提早進行丟包重傳。
3. 自適應初始窗口,會根據不同業(yè)務場景使用不同的初始化窗口大小。
4. 更激進的擁塞避免算法,針對網絡不好的情況,會在協議棧中識別網絡不好的狀態(tài),針對網絡不好的狀態(tài)使用更激進的發(fā)包策略,通過這種方式來解決由于網絡不好導致的下載速度慢的問題。
5. 更小的連接超時時間,通過設置更小的連接超時時間使得發(fā)現丟包的實際更短。
?
基于以上的這些優(yōu)化,在某個短視頻的業(yè)務場景下,對于一個1.2M數據文件的下載,和其他的視頻廠商進行對比,可以發(fā)現使用阿里云的下載時間可以加快2%到6%。
?
本文由云棲志愿小組李杉杉整理。
?
總結
以上是生活随笔為你收集整理的阿里云如何实现海量短视频的极速分发?答案在这里!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能教程007:创建一个卷积神经网络
- 下一篇: Dubbo源码解析之Zookeeper连