「作時代奮進者的高效充電站」,做爲一個致力於用互聯網推進實用技能教育的團隊,網易雲課堂的宏願無疑是美好的。然而,在技術人才緊缺、網絡環境迥異、終端設備複雜的背景下,如何在快速擴張的同時保障全網海量用戶都能有最佳的學習體驗,始終是網易雲課堂沒法迴避的挑戰。幸運的是,網易雲課堂團隊找到了屬於他們的輔助利器——先進的視頻雲技術。
藉助網易視頻雲的專業技術,網易雲課堂在視頻上傳、編解碼、存儲、播放、防下載、鏈路檢測等核心功能的實現,都再也不須要團隊本身研發,既保證了服務質量以及新業務的上線速度,又節省了大量的開發人力和維護成本,讓網易雲課堂可以專一於業務的發展。
在線教育的技術需求
網易雲課堂是網易旗下的在線實用技能學習平臺,於2012年12月底正式上線,目前擁有MOOC(慕課)、K十二、企業雲等產品線,積累的課程數量達到1.3萬+,課時總數超33萬,課程視頻數量100萬+,涵蓋實用軟件、IT與互聯網、職場技能等20多個教學領域,服務覆蓋Web端、Android端和iOS端,吸引了3,300萬學習用戶。
網易雲課堂極快的成長速度,在很大程度上得益於互聯網業務全局擴張的特色,但網易雲課堂團隊的另外一個感覺是,搭建一個在線課堂的系統,一樣須要在技術、人力、精力上有很大的投入,而且隨着業務的擴張和規模的增加,在線服務質量保障的難度也是幾何級地增長。從業務需求的角度,網易雲課堂技術負責人方金德介紹了網易雲課堂的核心技術訴求。
視頻轉碼
視頻編解碼對於視頻業務很是重要,要把大量講師經過千差萬別的設備錄製上傳的格式各異的視頻轉碼、壓縮,轉換成幾種通用格式,以便快速輸出到用戶的播放終端,如MP四、FLV和蘋果上專用的M3U8,這是一項技術含量很高的任務,須要專業的人才來研發出可行的方案,並構建視頻編碼集羣來支持。
視頻上傳和存儲
全國各地不一樣講師的視頻課程上傳到網易雲課堂服務器,首先網絡通訊方面要可以保證視頻文件的上傳速度,須要針對不一樣鏈路的優先隊列的功能;其次視頻文件一般都是大文件,而且講師開課、上傳視頻的時間是不固定的,常常會有不少老師忽然開課,這就忽然須要很大的存儲空間,然而臨時採購和部署存儲是很不方便的,因此須要提早作好容量規劃,須要一整套的技術來保證視頻文件的上傳和存儲。
視頻的全網播放
網易雲課堂的3300萬用戶分佈在全國各地,其中包括不少海外的用戶,這些用戶的網絡環境差別很大,須要大量的CDN節點來加速視頻流的傳輸,保證用戶能夠流暢地播放視頻課程。固然,CDN服務也須要和存儲平臺進行很好的整合。
視頻監控和追蹤診斷
CDN節點不是無限的,爲了保證全網播放質量,還須要一套可以快速幫助用戶解決問題的監控和診斷體系,一是總體情況的監控統計,包括各個地區不一樣的用戶、不一樣的課程視頻,其播放質量如何;二是追蹤,當某個用戶反饋存在播放問題時,但願有一個相似探針的服務,可以追蹤整個鏈路,不須要讓用戶幫忙作不少的操做,就能夠快速定位出問題的癥結所在,從而可以及時給出解決辦法。
視頻保護
在版權意識模糊的中國環境下,網易雲課堂還須要防止用戶非法使用視頻文件,包括URL防盜鏈、防下載等。
最開始,網易雲課堂研發團隊曾經嘗試搭建視頻系統來支撐整個業務的,包括轉碼、存儲、加密等環節,CDN則是外採一家傳統CDN服務。細提及來,這個過程也算是一部「血淚史」。
針對視頻轉碼,研發團隊須要花大量的時間來爲用戶處理編解碼過程當中的各類奇怪的錯誤。例如,由於用戶視頻有很是多的格式,部分視頻可能會存在音頻流失的情況,這很容易致使轉碼失敗。即使只是少許視頻存在問題,團隊要幫助用戶從每個視頻中找到問題所在,並切換處理方式直至轉碼成功,也是很是耗時的工做。
據方金德介紹,網易雲課堂視頻轉碼技術從無到有,大概花了4我的月——這對於當前互聯網業務迭代速度而言,無疑是比較慢的。然而,由於網易雲課堂缺乏專業的視頻人才(整個行業都呈現專業人才稀缺的情況),開發過程當中還須要學習各類資料,不得不付出這樣的代價。而有了編解碼技術以後,團隊在短時間以內也沒有能力再持續作協議的深度優化,只能作一些簡單的視頻分析,解決簡單的問題,一旦出現真正複雜的問題,仍是解決不了。
在視頻播放方面,有臺灣地區、美國的講師在網易雲課堂上開課時,就反饋了視頻上傳、視頻播放方面存在問題,然而云課堂採用的CDN在海外節點方面仍亟待完善,並無辦法根除這個問題。
在監控方面,研發團隊此前採用業內經常使用的技術,很難經過監控當即查明播放端出現問題的緣由,更不用說幫助用戶以最快的速度解決問題了。並且,原有技術也無法實現智能化的鏈路選擇。對於講師,採用的優先隊列方式,是列出可能的節點,由用戶來手動選擇不一樣的上傳通道,並不能實現最靈活的資源調配。
對於所期待的細粒度監控,方金德透露,研發團隊曾經深刻討論分析了自研的可行性,最終認爲技術難度很高,要達到初步預期的功能,保守估計也須要好幾我的月的投入。具體而言,這須要解決播放端和後臺兩方面的難題:播放端的信息傳遞須要開發不少的工具,後臺還要作不少統計分析的工做。
網易雲課堂的視頻保護,最開始是經過CDN防止下載,可是隻能防一些小白用戶,好比面對錄屏的狀況就只能徒呼奈何了。畢竟要作成加密SDK,須要瞭解底層的協議,技術難度很高。
除了加密以外,播放端的技術需求主要是緩衝,這方面卻是相對輕鬆,由於有一些很好的開源工具能夠利用來實現。
網易視頻雲之美
恰逢其時,網易杭州研究院(簡稱「杭研」)專門爲網易互聯網業務提供技術支撐的私有云改造已經輕車熟路,而且杭研已經準備着手解決網易雲課堂、網易雲音樂等各業務團隊面臨的視頻技術挑戰,讓這些團隊專一於業務自己的研發。因而,網易雲課堂和杭研的合做瓜熟蒂落地開始了。畢竟網易雲課堂業務線仍在不斷擴張,還須要不少的研發人力。
首先是底層基礎的視頻存儲服務。杭研基於其研發的網易對象存儲系統(Netease Object Storage,NOS)來實現對視頻數據的存儲服務。NOS是一個分佈式的Key-Value存儲系統,Value的容量上限爲1TB,並提供多租戶流量隔離,因此基於NOS的視頻存儲能夠較爲輕鬆地應對網易雲課堂的存儲容量和高可用的壓力。同時,NOS提供的大文件分塊上傳功能,對於視頻上傳而言可謂雪中送炭。此外,結合網易CDN服務,網易雲課堂可以面向不一樣地區的用戶實現一站式的視頻上傳、存儲、分發服務。
與NOS相結合,杭研視頻團隊還打造了一個分佈式視頻處理平臺NTS,用以支撐網易雲課堂的視頻任務處理,支持包含錄製、轉碼、視頻合成、截圖等經常使用的視頻處理技術。NTS經過如圖六大模塊和子系統,對用戶管理、任務調度、任務追蹤、事件回調和文件存儲等核心功能需求,同時實現了調度子系統的考可用和水平擴展。NTS視頻處理輸入輸出基原本自NOS(錄製或截圖任務的輸入視頻流除外),簡化了NTS服務的使用。
視頻編解碼方面,杭研對底層音視頻算法進行了深度優化,相同畫質節省10%~30%流量帶寬,而且針對互聯網傳輸的特性進行碼率平滑優化,避免突發的視頻碼率上升形成用戶播放卡頓。
視頻保護方面,網易雲課堂也採用了杭研提供的視頻加密技術,是一個底層的跨平臺SDK工具,加密方式是在播放文件中增長了一些用戶信息的標記,用以防止用戶錄屏(用戶錄屏時會被發現),同時不影響服務的穩定性和流暢性。
在解決NOS、NTS、加密等問題以後,網易雲課堂也但願將這些功能服務化,用於解決內部產品的需求。事實上,網易雲課堂此前也有過一些相關的嘗試,不過,通用設計沒有那麼完全,好比在數據隔離、帳號分配等方面,由於業務快速擴張背景下研發人力緊缺的緣由,並無實現理想的精細化的效果。
杭研視頻團隊在知足網易內部需求的同時,更加意識到了視頻業務的需求,已經將視頻轉碼、加密、容量伸縮、高可用、CDN等能力都集成在一塊兒,造成了網易視頻雲公有云解決方案,提供全平臺SDK,徹底實現了PC、iOS、Android、Web SDK的無縫對接,具備接入方便,二次開發量小等特色,同時還提供配套的全天候專業技術服務。
如今,有視頻雲以後,網易雲課堂就能夠從這些工做中解脫,專一於業務。而網易視頻雲來作這些事情,則能夠作得更加專業。例如,公有云的NTS相比之下提供了更爲細緻的任務統計、資源監控功能用於容量規劃,能夠解決海量用戶、資源超售的挑戰。
在網易雲課堂看來,由於以前與杭研視頻團隊合做的歷史背景,技術同源,在數據結構等方面已經作過不少的適配,徹底遷移到新的網易視頻雲平臺沒有任何障礙。不過,出於在線訪問數據的考慮,數據同步是一件值得注意的事情,雖然底層都是NOS,對象管理可能略有差別。
而生來就徹底在網易視頻雲上搭建的,是網易雲課堂2016年1月上線的K12產品,由於這是一個新業務。方金德介紹,K12系統的搭建,由先後端各一個工程師,用不到兩天時間就初步完成,因爲NTS、NOS、CDN、加密等服務,已經把最核心的痛點都解決了,只有接口的訪問以及一些小的需求點,還須要視頻雲團隊的支持,但這些不是本質上的需求。再通過雙方一週時間的無死角聯合調試、迭代,K12運營人員使用起來已經很順暢。相比以前的產品線須要研發團隊花費大量的時間去踩坑,K12產品線快速接入視頻雲並完成磨合,只花了很短的時間,大大縮短了新業務上線的時間。
後續技術規劃
播放質量監控、定位問題的探針,這是網易雲課堂更高級的追求。如今的監控,只是一個鏈路選擇,把靠近用戶可能的鏈路列出,人肉切換嘗試尋找最優鏈路,還無法作成一個智能的方案讓用戶直接定位到最好的節點上。同時,網易雲課堂也但願看到全國不一樣地區的視頻播放質量,包括失敗、延遲、卡頓等狀況。方金德表示,這兩個方面是網易雲課堂與網易視頻雲下一步合做的方向。
小結
在教育資源不平衡的今天,基於視頻技術創新的在線教育提供了填補差距的平臺。網易雲課堂的實踐代表,在線教育雖然纔剛剛開始,網易這樣的公司積累的專業視頻雲解決方案,已經能夠支撐基於網絡視頻開展的新業務,好比網易視頻雲還支持了青果、雲音樂、Bobo、寶寶樹、東家守藝人等業務。在視頻雲和視頻業務團隊的合做之下,針對不一樣的應用場景的視頻雲產品由於獲得不斷打磨而成熟、完善,必將反過來推進在線視頻業務的增加。
算法