以一只音視頻百寶箱,應(yīng)對「千行千面」。
CloudImagine
大家好,今天我分享的主題是MediaBox——行業(yè)音視頻數(shù)字化再加速。 根據(jù)權(quán)威數(shù)據(jù)表明,65%的行業(yè)數(shù)字化信息來自視頻,基于此,音視頻技術(shù)對于行業(yè)數(shù)字化來說是至關(guān)重要的。今天我想借此機(jī)會(huì)向大家介紹一個(gè)重量級(jí)的客戶端產(chǎn)品——MediaBox,它將致力于實(shí)現(xiàn)行業(yè)音視頻數(shù)字化再加速。 MediaBox,顧名思義,是一個(gè)包羅萬象的音視頻魔盒。在這里,多種音視頻能力的SDK可供任意選擇、自由組合、多端適配,一次性滿足多種音視頻需求。
接下來我將從MediaBox初識(shí)與全景、音視頻終端SDK的架構(gòu)設(shè)計(jì)和演進(jìn)、音視頻低代碼開發(fā)的場景建設(shè)與實(shí)踐和生態(tài)合作及未來展望四個(gè)方面進(jìn)行分享。
01
MediaBox初識(shí)與全景
從需求側(cè)來看,傳統(tǒng)音視頻技術(shù)已發(fā)展多年,在行業(yè)化的過程中被廣泛應(yīng)用于互娛行業(yè)。同時(shí),也在逐漸向教育、醫(yī)療和零售等傳統(tǒng)行業(yè)滲透,刺激了傳統(tǒng)行業(yè)需求的旺盛增長。 從研發(fā)側(cè)來看,音視頻的復(fù)雜度使得行業(yè)客戶也面臨許多挑戰(zhàn),例如開發(fā)門檻高、接入復(fù)雜度高、性能挑戰(zhàn)大等等。 基于這些行業(yè)趨勢和挑戰(zhàn),企業(yè)的音視頻訴求可總結(jié)為:高易用、高性能、場景化、多端化的多SDK組合及方案。阿里云視頻云“MediaBox音視頻終端一體化套件”就給出了這些問題的最優(yōu)解,通過極致的自我進(jìn)化,加速行業(yè)音視頻數(shù)字化落地。 這里分享一個(gè)大家比較熟悉的互娛場景:直播PK。在開播端需要RTC技術(shù)支持直播推流和旁路直播;在PK時(shí)需要借助IM信令完成交互、RTC完成音視頻流傳輸以及進(jìn)行混流布局。這樣的場景就需要多個(gè)SDK和云產(chǎn)品組合完成,那么相比音視頻SDK,我們更需要場景化的解決方案。
通過MediaBox全景圖,可以看到,MediaBox由音視頻終端SDK、音視頻低代碼AUI Kits兩大部分組成,并基于行業(yè)生態(tài)合作構(gòu)建音視頻場景方案。 MediaBox音視頻終端SDK全面覆蓋實(shí)時(shí)音視頻、直播、超低延遲直播、播放器、短視頻、美顏特效等,通過自由組合出包,形成一系列不同能力的SDK,為客戶提供靈活、易用、高效的接入體驗(yàn)。 MediaBox AUI Kits通過對MediaBox SDKs單點(diǎn)能力做場景化的封裝,方便客戶將某個(gè)視頻場景化的能力快速集成到自己的應(yīng)用中。客戶不需要理解音視頻SDK中API的具體用法,只需關(guān)心自己的業(yè)務(wù)實(shí)現(xiàn),即可實(shí)現(xiàn)場景化的音視頻能力,從而大大加快業(yè)務(wù)開發(fā)進(jìn)程。
MediaBox的優(yōu)勢可以總結(jié)為“一體、三高、多場景”。 首先是一體化:主要是SDK一體化和云端一體化?;赟DK一體化的底座,既可以方便地進(jìn)行SDK開發(fā),也可以進(jìn)行SDK組合,滿足不同的業(yè)務(wù)需求;云端一體化,比如特效引擎實(shí)現(xiàn)端云體驗(yàn)一體化,智能緩存、調(diào)度優(yōu)化等實(shí)現(xiàn)端云一體化。 三高,指的是高易用、高性能、高智能?;谝惑w化SDK,我們可以實(shí)現(xiàn)SDK的靈活組合,并且結(jié)合AUI方案實(shí)現(xiàn)低代碼接入以保證易用性;另外,SDK的穩(wěn)定和高性能是重中之重;同時(shí),SDK的智能化可以很好地服務(wù)各種場景需求。 最后是場景化,場景化方案要解決易用和好用的問題。舉個(gè)簡單的例子,長視頻和短視頻場景,在起播buffer的設(shè)置、緩沖區(qū)大小、本地緩存的設(shè)置上是有很大差異的,而客戶需要的是可以依據(jù)具體需求,開箱即用的場景化方案。
02
MediaBox音視頻終端SDK的
架構(gòu)設(shè)計(jì)和演進(jìn)
接下來介紹MediaBox音視頻終端SDK的架構(gòu)設(shè)計(jì)。 在此之前,給大家分享兩則小故事。大家知道國產(chǎn)大飛機(jī)C919上有多少個(gè)零件嗎?據(jù)相關(guān)報(bào)道,C919上一共有250萬個(gè)零件,如此多的零件需要經(jīng)過完整的系統(tǒng)工程組裝起來,并且其中的每個(gè)零件都非常重要。 如果我們把MediaBox比作一架飛機(jī)的話,那么其中的各個(gè)子模塊就相當(dāng)于零件,如何進(jìn)行有序組裝、并完整實(shí)現(xiàn)整體功能就成為了一個(gè)巨大的挑戰(zhàn)。 另外一個(gè)分享是關(guān)于汽車制造平臺(tái)。我們知道,不同車型可以在同一個(gè)制造平臺(tái)上生產(chǎn),共用整車設(shè)計(jì),尤其是底盤設(shè)計(jì)和車輛結(jié)構(gòu)。同樣的,MediaBox基于一體化的底座,可以快速迭代和開發(fā)SDK產(chǎn)品。 上圖是MediaBox一體化SDK的總體架構(gòu)。它是一個(gè)分層的架構(gòu),SDK的Crash捕獲和License認(rèn)證都是作為通用能力服務(wù)于整個(gè)SDK,在SDK之外還有很多研發(fā)支撐工具,來保障SDK研發(fā)的效率和穩(wěn)定性。
在SDK的發(fā)展初期,各個(gè)業(yè)務(wù)為了滿足需求,會(huì)各自進(jìn)行SDK的迭代。隨著客戶業(yè)務(wù)的發(fā)展,會(huì)需要使用多個(gè)SDK來完成功能需求,如果強(qiáng)行把這些SDK融合在一起,在包大小方面也不是最優(yōu)的,而且可能會(huì)產(chǎn)生包沖突。 于是我們針對幾個(gè)主要原子SDK的功能模塊做了分析。如圖所示,各個(gè)SDK之間有很多可以共用的模塊,通過SDK模塊,可以更好地進(jìn)行模塊復(fù)用,同時(shí)實(shí)現(xiàn)包大小的降低,另外也可以實(shí)現(xiàn)更多的性能優(yōu)化和兼容性提升。
這些組件抽離后,如何將它們組合到一起呢?可以通過pipeline機(jī)制來串聯(lián)從采集到渲染的整個(gè)流程。而音視頻pipeline的構(gòu)造、運(yùn)行、銷毀等全生命周期管理,則需要由微內(nèi)核來實(shí)現(xiàn),它具備高效、靈活的特點(diǎn),同時(shí)因?yàn)橐肓瞬寮芾恚梢詫?shí)現(xiàn)插件的插拔,提升SDK的擴(kuò)展能力。
接下來通過一個(gè)示例展示插件設(shè)計(jì)。 某位客戶希望引入智能降噪的功能模塊,一般情況下智能降噪模塊是基于深度學(xué)習(xí)網(wǎng)絡(luò)實(shí)現(xiàn)的,所以其SDK包相對很大。如果我們直接把該模塊引入SDK,會(huì)導(dǎo)致整個(gè)SDK的size過大。 通過前文介紹,pipeline機(jī)制可以很好地串聯(lián)內(nèi)部組件,那么對于外部組件是否有好的解決之法?我們在微內(nèi)核中通過插件占位實(shí)現(xiàn)了插件的熱插拔,真正實(shí)現(xiàn)一套插件代碼、一次打包,同時(shí)滿足兩種客戶的訴求。
前面介紹了一些架構(gòu)設(shè)計(jì)的思考,接下來就涉及到一些實(shí)際落地的困難和挑戰(zhàn)。 第一個(gè)問題,是重寫SDK,還是基于現(xiàn)有的SDK進(jìn)行演進(jìn)?在業(yè)務(wù)需求的推動(dòng)下,只能選擇后者,但這相當(dāng)于開著飛機(jī)換引擎,對于整體穩(wěn)定性的考驗(yàn)非常之大。 第二個(gè)問題,對于一臺(tái)零件眾多的龐大機(jī)器,如何讓它順暢地運(yùn)行起來?多團(tuán)隊(duì)如何協(xié)作?版本如何管理? 一體化工程涉及到多個(gè)組件,各個(gè)組件的版本管理、依賴關(guān)系也相當(dāng)復(fù)雜,組件也很難獨(dú)立被引用。因此我們設(shè)計(jì)了一個(gè)靈活組件管理工具:ACPM(Aliyun C++ Package Manager)。它由兩個(gè)主要的模塊組成: 1、依賴模塊:負(fù)責(zé)根據(jù)描述分析依賴關(guān)系、下載對應(yīng)組件、生成cmake工程需要的編譯文件; 2、發(fā)布模塊:負(fù)責(zé)托管組件靜態(tài)庫(在MTL上),并記錄發(fā)布時(shí)的具體信息,以供依賴時(shí)分析。 通過這樣的方式,我們可以更好地管理各個(gè)組件。舉一個(gè)實(shí)際應(yīng)用的例子,短視頻、直播、RTC都使用到了視頻采集模塊。如果針對此模塊做融合,直接重寫一份模塊進(jìn)行共用,在實(shí)際運(yùn)行過程中可能會(huì)遇到一些挑戰(zhàn)。 我們采用的方式是ACPM化,在一個(gè)相對業(yè)務(wù)量較小的業(yè)務(wù)(如短視頻)內(nèi),將其SDK中的視頻采集模塊ACPM化,另外兩個(gè)業(yè)務(wù)仍使用原有的模塊。在前者的ACPM化模塊逐漸穩(wěn)定后,再將后兩者的模塊進(jìn)行ACPM化,就可達(dá)到整體組件使用和工程效率上的融合。
ACPM化也可以應(yīng)用在公共組件、音視頻算法等當(dāng)中。在跨平臺(tái)上,我們不僅支持了Android/iOS/Win/Mac多端,還支持了Web端,可以輸出成Web Assembly代碼,這樣一些Native客戶端的能力可以快速無縫轉(zhuǎn)到Web平臺(tái),實(shí)現(xiàn)多端體驗(yàn)的一致性。 比如美顏特效SDK,可以通過ACPM編譯成Web Assembly代碼來供Web平臺(tái)使用,由于底層代碼是同一套,在體驗(yàn)上也最大程度地保證了一致性。
接下來以一個(gè)高性能算法特效執(zhí)行引擎在Web端的實(shí)踐為例,介紹如何用一體化的框架落地。 如圖中的特效引擎,有其pipeline以及數(shù)據(jù)輸入組件和圖像處理組件,它可以打包成Android/iOS/Win/Mac以及服務(wù)端的版本,在Web端通過WASM的方式支撐相關(guān)業(yè)務(wù)。 Web上會(huì)有性能差和功能受限的問題,我們通過Profile工具生成火焰圖,分析耗時(shí)函數(shù),并將其進(jìn)行SIMD替換。另外,通過在Web上開啟多線程,可以提升整體運(yùn)行效率。
云端一體可以實(shí)現(xiàn)更極致的優(yōu)化,是競爭力的體現(xiàn)。 我們實(shí)現(xiàn)了一張網(wǎng)一個(gè)SDK,并覆蓋常見的音視頻相關(guān)場景。一體化SDK和一體化網(wǎng)絡(luò)MediaUni的配合,可以實(shí)現(xiàn)端云一體化的體驗(yàn),通過對接客戶端SDK,即可便捷地使用云上的服務(wù)。 比如端云協(xié)同,可以實(shí)現(xiàn)智能調(diào)度,通過云端聯(lián)動(dòng),智能控制播放緩存大小,以此降低成本。與媒體服務(wù)協(xié)同,可以實(shí)現(xiàn)智能按需轉(zhuǎn)碼,當(dāng)發(fā)現(xiàn)某個(gè)熱門視頻時(shí),可以智能啟動(dòng)轉(zhuǎn)碼,提升播放體驗(yàn)的同時(shí),也節(jié)約了客戶的成本。
通過前面的方案,可以說飛機(jī)已經(jīng)造出來了,但還需要保障其穩(wěn)定性。 首先是一體化對客,所有SDK共用一份License,進(jìn)行統(tǒng)一授權(quán)認(rèn)證、統(tǒng)一入口和引導(dǎo); 其次是高可用穩(wěn)定性體系,通過Crash的收集、問題的智能歸因,可以快速識(shí)別出問題的影響范圍; 然后是高可用數(shù)據(jù)體系,基于數(shù)據(jù)指標(biāo)做埋點(diǎn)優(yōu)化,針對異常指標(biāo)進(jìn)行監(jiān)控; 最后是建設(shè)完善的自動(dòng)化測試體系,來完整保障SDK的質(zhì)量和穩(wěn)定性。
MediaBox在場景化實(shí)踐中,同樣基于端智能技術(shù)不斷創(chuàng)新突破。 例如,在端側(cè)超分上,需要針對算法進(jìn)行調(diào)優(yōu),并考慮端側(cè)算力的兼容性;另外,智能預(yù)加載會(huì)利用智能算法,基于當(dāng)前網(wǎng)絡(luò)狀況、用戶滑動(dòng)行為、歷史播放行為等信息,動(dòng)態(tài)控制預(yù)加載緩存。 在遠(yuǎn)程教學(xué)一對多場景中,學(xué)生專注度下降導(dǎo)致教學(xué)效果差是遠(yuǎn)程教學(xué)一直以來的痛點(diǎn),而場景智能為業(yè)務(wù)賦能帶來了更多可能性。音視頻終端套件,不止是單純的開發(fā)工具,更是行業(yè)的創(chuàng)新型端口,以最輕量的方式,賦予場景全新的數(shù)智化能力。
03
MediaBox音視頻低代碼開發(fā)的
場景建設(shè)與實(shí)踐
我們接觸到的很多客戶都不是專業(yè)做音視頻開發(fā)的,因此他們都有一個(gè)共同的訴求,即希望能提供一攬子解決方案,而自己只需要專注業(yè)務(wù)開發(fā)即可。 在這里,有幾個(gè)值得探討的問題:到底要實(shí)現(xiàn)什么樣的組件,組件要實(shí)現(xiàn)到什么樣的粒度,組件要不要開放? 基于這個(gè)邏輯,我們開發(fā)了很多音視頻的低代碼基礎(chǔ)組件,這些基礎(chǔ)組件又可以組合成場景化組件。
AUI Kits的組件設(shè)計(jì)遵循統(tǒng)一規(guī)范、多端統(tǒng)一、簡單易用這三個(gè)原則,實(shí)現(xiàn)了多端一致的UI風(fēng)格。當(dāng)然,我們也提供了一些易用的工具,方便客戶使用腳本實(shí)現(xiàn)一鍵引入,這樣可以極大提升客戶的集成效率。
AUI Kits方案不只有UI控件,也包含與服務(wù)端緊密配合的場景化組件,其靈活的架構(gòu)設(shè)計(jì)可以讓客戶方便地進(jìn)行組件組裝,另外核心組件的代碼也是開源的。 以接入的某電商直播客戶為例,基于場景化的解決方案,客戶快速接入音視頻能力并跑通業(yè)務(wù),同時(shí)根據(jù)需求自定義開發(fā),定制化修改了其UI。
以下將以圖中的例子說明,場景化方案是如何來設(shè)計(jì)的。 場景化方案一般由App、AUI Kits以及App Server配合云服務(wù)來完成。為了方便客戶一站式集成,App Server當(dāng)前已經(jīng)對接了常用的直播審核、錄制等阿里云PaaS層功能,客戶可以基于源碼進(jìn)行二次開發(fā)部署,或者直接使用容器化的方式完成服務(wù)部署??蛻舳说慕M件會(huì)與服務(wù)端進(jìn)行交互,完成場景化的業(yè)務(wù)功能。
面向娛樂直播、電商直播、企業(yè)直播,我們開發(fā)了互動(dòng)直播AUI Kit場景解決方案,將常見的功能抽成組件實(shí)現(xiàn)。 在集團(tuán)內(nèi)部客戶的某App電商直播場景,通過使用AUI Kit的直播播放、彈幕和櫥窗等組件,實(shí)現(xiàn)了業(yè)務(wù)的快速落地。此外,某新能源汽車公司快速集成了AUI Kit方案,完成新車發(fā)布會(huì)的企業(yè)直播。
面向公開課、大班課、企業(yè)內(nèi)訓(xùn)等場景,我們開發(fā)了互動(dòng)課堂AUI Kit場景化方案,并在此場景下,完善了互動(dòng)白板、智能專注度監(jiān)測等功能。 針對遠(yuǎn)程監(jiān)考場景,音視頻技術(shù)可以很好地賦能教育行業(yè)。 中國每年有很多藝術(shù)考試,在傳統(tǒng)的方式中,藝術(shù)生都需要去現(xiàn)場考試。而遠(yuǎn)程監(jiān)考場景具有很多難點(diǎn),首先傳統(tǒng)的RTC會(huì)議方式是所有考生都在一個(gè)會(huì)議里,某位考生和老師之間要實(shí)現(xiàn)單獨(dú)通話,且其他考生聽不到的需求是難以滿足的;除此之外,藝考模式是大量學(xué)生同時(shí)在線,高并發(fā)的流量對于RTC系統(tǒng)也是非常大的挑戰(zhàn)。 針對痛點(diǎn),遠(yuǎn)程監(jiān)考AUI Kit方案憑借MediaUni網(wǎng)絡(luò),實(shí)現(xiàn)一對一通信,并支持萬人場景下的高并發(fā)推流。 基于低代碼方案,企業(yè)可以快速完成方案集成,大大降低開發(fā)門檻。另外,遠(yuǎn)程監(jiān)考方案覆蓋了Android/iOS原生應(yīng)用,微信/釘釘小程序以及Web等多端,保障了考試場景下的“高易用”。 同時(shí),基于全球3200+節(jié)點(diǎn)的底層網(wǎng)絡(luò),遠(yuǎn)程監(jiān)考AUI Kit方案能承載10萬+考生同時(shí)在線,實(shí)現(xiàn)監(jiān)考端視頻延時(shí)1秒內(nèi)、1對1通話延時(shí)300ms內(nèi),全方位滿足高可靠、高并發(fā)、低延時(shí)、高清晰度的“極致好用”。
04
MediaBox生態(tài)合作及未來展望
MediaBox的場景化解決方案,可以降低開發(fā)門檻、提升集成效率,因此我們將不斷開發(fā)出更多場景化方案,為行業(yè)音視頻數(shù)字化助力。
此外,云端一體可以實(shí)現(xiàn)更極致的優(yōu)化和更好的體驗(yàn),這里面可挖掘的空間巨大,我們還將結(jié)合場景深耕技術(shù),讓端云結(jié)合發(fā)揮更大價(jià)值。
在端智能方面,我們已經(jīng)實(shí)現(xiàn)了智能的預(yù)加載,能根據(jù)當(dāng)前的網(wǎng)絡(luò)情況、當(dāng)前用戶的行為等信息進(jìn)行模型計(jì)算,給出決策。在行業(yè)音視頻數(shù)字化過程中,場景方案中還會(huì)對端側(cè)智能提出更多需求。端云結(jié)合的智能化、大模型加持下的智能化,都是非常有想象空間的方向。
最后,我們在近期啟動(dòng)了MediaBox生態(tài)合作伙伴計(jì)劃,招募戰(zhàn)略伙伴以及重點(diǎn)伙伴,并在銷售、營銷、技術(shù)、賦能等方面給予支持,為伙伴提供更廣闊的發(fā)展平臺(tái)。期待與合作伙伴一起,強(qiáng)強(qiáng)聯(lián)合,為行業(yè)客戶提供簡單、易用、高質(zhì)量的視頻云服務(wù)。
-
音視頻
+關(guān)注
關(guān)注
4文章
481瀏覽量
29918 -
數(shù)字化
+關(guān)注
關(guān)注
8文章
8816瀏覽量
61983 -
SDK
+關(guān)注
關(guān)注
3文章
1044瀏覽量
46084
原文標(biāo)題:MediaBox,行業(yè)音視頻數(shù)字化再加速
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論