□ 丁成剛
目前,虛擬現(xiàn)實(shí)技術(shù)VR和VR直播發(fā)展火爆,特別是VR直播成為2017年VR行業(yè)的熱點(diǎn)。VR技術(shù)催生了全新的用戶體驗(yàn)與商業(yè)模式。移動(dòng)直播的強(qiáng)“自媒體”屬性,與VR全景技術(shù)帶來的真實(shí)臨場(chǎng)感,使得移動(dòng)VR直播在體驗(yàn)上遠(yuǎn)遠(yuǎn)超過任何一種直播模式。移動(dòng)VR直播將顛覆互聯(lián)網(wǎng)社交模式,無論是草根網(wǎng)紅的個(gè)人秀場(chǎng),還是大牌明星的實(shí)景互動(dòng),都不可避免成為新互聯(lián)網(wǎng)時(shí)代的巨型流量入口。
直播被定義為視頻行業(yè)從單向傳輸?shù)綄?shí)時(shí)互動(dòng)的一場(chǎng)革命。在1.0時(shí)代,PC/平板、手機(jī)是重要的載體,用戶參與互動(dòng)方式主要通過禮物、打字獲得短暫的和主播互動(dòng)的機(jī)會(huì),臨場(chǎng)感的缺乏和交互方式的單一是最大的不足。而VR直播所帶來的沉浸式的體驗(yàn)直接把直播從1.0時(shí)代推向了2.0時(shí)代。
一個(gè)完整的VR直播解決方案一般涉及采集端、云端、用戶端里的多個(gè)環(huán)節(jié),如圖所示,這些環(huán)節(jié)環(huán)環(huán)相扣,我們基于云端資源和現(xiàn)有的設(shè)備資源,探索了采集、處理與分發(fā)三大架構(gòu),涵蓋從采集端到云端和用戶端的業(yè)務(wù)流程,實(shí)踐了VR直播一整套的解決方案。
采集主要包括視頻拍攝、數(shù)據(jù)采集與輸出。采集設(shè)備一般分為電影級(jí)和廣播級(jí)。信號(hào)源可以是多種,VR直播一般由4-16個(gè)攝像信號(hào)構(gòu)成,全方位360°全景信號(hào)。采用高清信號(hào)輸出,構(gòu)建成4k信號(hào)。虛擬的信號(hào)設(shè)備可以使用HDMI、SDI、AV、VGA、File、IP 流等信號(hào)。
1.電影級(jí)采集設(shè)備
電影級(jí)采集設(shè)備目前主要有HeadcaseVR、HypeVR、NextVR、J2VR等。2016年,全新移動(dòng)VR拍攝方案的提供商HeadcaseVR團(tuán)隊(duì)正式亮相。采用2/3英寸的CCD傳感器,單分辨率1920×1080。幀率表現(xiàn)為60FPS。J2VR是中國的團(tuán)隊(duì),是國內(nèi)最早進(jìn)入全景視覺領(lǐng)域發(fā)展的創(chuàng)新型公司。J2VR也是經(jīng)過幾代更新的電影及VR解決方案提供商。采用4臺(tái)RedDragon分別對(duì)四個(gè)方向進(jìn)行拍攝采集,最終達(dá)到24K錄制100FPS的標(biāo)準(zhǔn)。
2.廣播級(jí)采集設(shè)備
XONE一體化全景攝像機(jī)支持機(jī)內(nèi)實(shí)時(shí)拼接,支持雙組360°全景視頻同步拍攝,采用SONY 1/1.8英寸CMOS,全景錄制6K/全景直播4K。支持通過RTMP協(xié)議進(jìn)行串流推送,支持通過PC客戶端或APP客戶端進(jìn)行預(yù)覽、編碼,支持H264/.H265 HEVC高壓縮比編碼,幀率為1-30fps。
3.民用級(jí)
國內(nèi)民用級(jí)的全景攝像機(jī)較多,例如暴風(fēng)魔眼、Insta 360、Theta、Wipet、360fly 等,在拼接畸變、流暢性、色彩還原、矯正等多個(gè)方面還不成熟,適合在自拍旅游等場(chǎng)景使用。
4.核心算法
VR直播采集設(shè)備完成的不止是采集內(nèi)容這一步。設(shè)備里面一般會(huì)配套搭載的軟件和算法,這才是核心技術(shù)。在VR直播中,所有的拼接都是直接即刻完成的,例如縫合、映射、美顏、編碼、特效(白平衡、曝光等),即將多鏡頭拍攝的畫面進(jìn)行亮度色彩調(diào)整、對(duì)齊、畸變矯正、投影到球面等一系列處理后,基于圖像特征control points(控制點(diǎn)),合成為一幅完整畫面的過程。
核心圖像處理算法,直接影響系統(tǒng)資源占有率,直接影響碼流、帶寬和存儲(chǔ)。核心算法的好壞直接影響圖像邊緣彎曲的矯正、場(chǎng)景的分割以及虛擬PTZ、轉(zhuǎn)動(dòng)、放大,這些都是由核心算法帶動(dòng)的。
現(xiàn)在業(yè)內(nèi)的產(chǎn)品,針對(duì)圖像矯正有兩種處理方式,一種是前端攝像機(jī)內(nèi)置軟件處理,另一種是后端軟件處理,它們都是對(duì)圖像邊緣像素和水平展開進(jìn)行矯正,圖像矯正的關(guān)鍵在于圖像邊緣像素的還原完整度如何。前種方法節(jié)省了后端和網(wǎng)絡(luò)資源,避免了帶寬和存儲(chǔ)的壓力,即在前端就完成了對(duì)圖像進(jìn)行矯正處理壓縮,最終將一個(gè)水平展開的圖像傳輸?shù)胶蠖似脚_(tái),使用者可根據(jù)需求選擇全景畫面或四畫面顯示,圖像很具實(shí)時(shí)性。而后一種將圖像矯正做到后端電腦上,其優(yōu)勢(shì)是借助電腦硬件快速的處理能力和軟件的完備性,完美地實(shí)現(xiàn)全景圖像展開和四畫面顯示。從處理能力來說,無疑后端機(jī)更具突出表現(xiàn),效果會(huì)更好一些,但缺乏實(shí)時(shí)性。
圖像矯正算法被嵌入到攝像機(jī)內(nèi)是當(dāng)前技術(shù)市場(chǎng)的主流,其更符合用戶即插即用的使用習(xí)慣,借助PC機(jī)的產(chǎn)品功能雖然很完美但未必會(huì)被用戶接受。
VR云端處理包括視頻數(shù)據(jù)處理、實(shí)時(shí)同步、視頻編輯、合成、數(shù)據(jù)推送、云存儲(chǔ)與云端轉(zhuǎn)碼等。我們利用現(xiàn)有的推流設(shè)備以及阿里視頻云資源實(shí)現(xiàn)了上述功能。
1.推流
對(duì)于從VR采集的視頻流,我們使用NSCaster推送至云端服務(wù)器。NSCaster整機(jī)采用便攜化設(shè)計(jì),設(shè)備高度集成化,含內(nèi)置主機(jī)、17.3寸全高清顯示屏、PC鍵盤、鼠標(biāo)觸摸板、導(dǎo)播操作鍵盤、攝像機(jī)云臺(tái)操作桿、視頻輸入輸出接口封裝、專業(yè)音頻輸入輸出、調(diào)音臺(tái)、藍(lán)牙無線通話、TALLY輸出、熱插拔數(shù)據(jù)硬盤、DVD刻錄機(jī)等。支持總共12路輸入,包括四路SDI/HD-SDI/3G-SDI攝像機(jī)輸入、一路全接口(SDI/HDMI/DVI/VGA/分量)輸入、一路網(wǎng)絡(luò)輸入、兩路DDR(視頻素材)輸入、四路虛擬場(chǎng)景輸入。
網(wǎng)絡(luò)輸入可用于通過網(wǎng)絡(luò)接入電腦桌面、Android設(shè)備、iOS設(shè)備;也可以接入網(wǎng)絡(luò)流信號(hào),支持RTMP/RTSP/MMS/VJVGA/VJTeacher/HTTP TS/UDP TS協(xié)議,支持IP攝像機(jī)輸入;也可以用于遠(yuǎn)程訪談連線。
兩路DDR,用于播放本地視音頻和圖片素材,支持絕大部分常用視音頻和圖片文件;支持單文件播放和列表播放,支持循環(huán)播放;支持播放進(jìn)度調(diào)整,支持播放倍率調(diào)整,支持播放時(shí)間倒數(shù);支持與切換配合自動(dòng)播放;支持MMS推流/拉流、FLASH/RTMP推流、UDP TS單播/組播網(wǎng)絡(luò)直播。
2.視頻云處理平臺(tái)比較
視頻云處理平臺(tái)具備快速部署視頻服務(wù)、順暢運(yùn)營(yíng)、集成方便、開發(fā)快速上線,并且運(yùn)維簡(jiǎn)單等產(chǎn)品特性。我們重點(diǎn)對(duì)國內(nèi)主要的四家視頻云服務(wù)商進(jìn)行了比較和分析,詳見表1。
騰訊云視頻互動(dòng)直播方案比較成熟,與騰訊云通信(IM)結(jié)合緊密,業(yè)務(wù)集成度較高,目前臺(tái)內(nèi)新麥?zhǔn)呛芎玫陌咐F吲V辈ピ蒲匾u七牛云的精品路線,側(cè)重于直播,開放云端API實(shí)現(xiàn)透明播控管理,CDN節(jié)點(diǎn)相對(duì)要少一些。金山視頻云提供了點(diǎn)播數(shù)據(jù)挖掘、H.265編碼其特色(當(dāng)然H.265需要視頻源高清而且終端性能強(qiáng)勁才有明顯效果),客戶端SDK集中在移動(dòng)端,直播還支持OTT播放盒、超級(jí)電視等多屏播放,在VR直播方面已經(jīng)在GITHUB開放了部分SDK。網(wǎng)易視頻云功能相對(duì)完善,同時(shí)支持實(shí)時(shí)互動(dòng)直播,而且具有各種場(chǎng)景的完整解決方案,擁有千萬級(jí)并發(fā)量,SDK也非常全面。接入方便,新手也只需一天就可以為APP接入音視頻功能。
(1)穩(wěn)定性比較
近期云計(jì)算的宕機(jī)現(xiàn)象再次發(fā)生,云服務(wù)的穩(wěn)定性成為影響用戶抉擇的重要因素之一。當(dāng)然,對(duì)于視頻云服務(wù)來說,穩(wěn)定性不止于數(shù)據(jù)中心層,更需要考慮視頻流鏈路的穩(wěn)定,包括對(duì)弱網(wǎng)環(huán)境的處理,對(duì)卡頓、延遲現(xiàn)象有極大的容忍度。如表2:
表2 關(guān)于視頻云平臺(tái)穩(wěn)定性比較
從一定程度上說,自建機(jī)房意味著具備專業(yè)的運(yùn)維團(tuán)隊(duì)、更強(qiáng)的突發(fā)事件應(yīng)對(duì)能力、更高效的突發(fā)事件響應(yīng)速度,而這些因素恰恰是提供穩(wěn)定服務(wù)的關(guān)鍵。此外,傳輸機(jī)制保證了數(shù)據(jù)的安全性,網(wǎng)絡(luò)QoS策略則能夠保障復(fù)雜網(wǎng)絡(luò)下的流暢直播體驗(yàn)。而服務(wù)模式?jīng)Q定了是否能夠快速響應(yīng)客戶的技術(shù)、服務(wù)訴求。
(2)技術(shù)服務(wù)
企業(yè)級(jí)云服務(wù)和消費(fèi)級(jí)產(chǎn)品最大的不同就是對(duì)技術(shù)服務(wù)的需求更甚于對(duì)資費(fèi)的敏感,剛剛發(fā)展起來的云服務(wù)尤其如此。對(duì)于視頻云服務(wù),因?yàn)閺?fù)雜的場(chǎng)景、冗長(zhǎng)的鏈路背后是復(fù)雜的技術(shù),而視頻服務(wù)商還需要快速為自己的用戶解決問題,最終使用戶滿意,所以技術(shù)支持必不可少。如表3:
表3 關(guān)于視頻云平臺(tái)技術(shù)服務(wù)比較
3.金山云的優(yōu)勢(shì)
云平臺(tái)VR具體技術(shù)參數(shù)與一般的視頻并無區(qū)別,比較大的亮點(diǎn)就是各家H.265的技術(shù)。例如金山公司的H.265生態(tài)鏈打通后,H.265和VR結(jié)合具備了畫質(zhì)和帶寬的優(yōu)勢(shì)。
限制VR直播的問題在于碼流。因?yàn)閂R視頻內(nèi)容在映射后,肉眼可視的分辨率會(huì)下降很多。所以對(duì)原始視頻的畫質(zhì)要求就比較高,一般都要求是4K或者8K,在4K分辨率下,碼流接近20M。如果H.265能夠在采集端得到大范圍的推廣,可以大幅降低此處的帶寬壓力。華為公司擁有最多的核心專利,是標(biāo)準(zhǔn)的主導(dǎo)者,但是H.265受限于專利費(fèi),目前看來大幅應(yīng)用于采集端還有很長(zhǎng)的路要走。
具體優(yōu)勢(shì)體現(xiàn)為上行碼率自適應(yīng)、窄帶高清轉(zhuǎn)碼、截圖、錄制、時(shí)移等功能和服務(wù);具備較低帶寬直播時(shí)延,能保證直播的實(shí)時(shí)交互;千萬級(jí)直播并發(fā)能力,具備可動(dòng)態(tài)擴(kuò)展的直播技術(shù)架構(gòu)。提供URL加密、視頻加密、防盜鏈多種安全防護(hù),減少盜播、錄播風(fēng)險(xiǎn)。
用戶端主要包括全平臺(tái)播放器部署,同時(shí)支持PC、手機(jī)、VR頭顯方式呈現(xiàn)。
全平臺(tái)播放器部署采用了KSYMediaPlayer SDK的SDK包進(jìn)行開發(fā),重點(diǎn)實(shí)踐了APP端的體驗(yàn)。KSYMediaPlayer SDK是金山云播放內(nèi)核官方推出的在iOS和Android平臺(tái)上使用的軟件開發(fā)工具包(SDK),為iOS和Android開發(fā)者提供簡(jiǎn)單、快捷的接口,幫助開發(fā)者實(shí)現(xiàn)iOS和Android平臺(tái)上的多媒體播放應(yīng)用。
1.KSYMediaPlayer SDK的快速集成
金山云播放內(nèi)核涵蓋Android、iOS、Flash和瀏覽器插件四個(gè)平臺(tái),基于FFmpeg自主研發(fā)音視頻媒體播放內(nèi)核,作為一款全平臺(tái)兼容的軟件播放方案,金山云播放內(nèi)核提供了跨終端平臺(tái)的播放器SDK,以及開放的音視頻播放、控制接口和完整的開源調(diào)用示例,不僅極大地降低了開發(fā)門檻,同時(shí)支持客戶快速在多個(gè)平臺(tái)發(fā)布產(chǎn)品。
(1)KSYMediaPlayer SDK功能
與系統(tǒng)播放器MPMoviePlayerController接口一致,可以無縫快速切換至KSYMediaPlayer;本地全媒體格式支持, 并對(duì)主流的媒體格式(mp4、avi、wmv、flv、mkv、mov、rmvb等)進(jìn)行優(yōu)化;支持廣泛的流式視頻格式,HLS、RTMP、HTTP Rseudo-Streaming等;低延時(shí)直播體驗(yàn),配合金山云推流sdk,可以達(dá)到全程直播穩(wěn)定的4秒內(nèi)延時(shí);實(shí)現(xiàn)快速滿屏播放,為用戶帶來更快捷優(yōu)質(zhì)的播放體驗(yàn);支持畫面旋轉(zhuǎn)、音量調(diào)節(jié)等各種功能;版本適配支持iOS 7.0以上版本;業(yè)內(nèi)一流的H.265解碼;2M大小的超輕量級(jí)直播sdk;支持bitcode,提供了支持直播和點(diǎn)播兩個(gè)靜態(tài)庫。相比直播,點(diǎn)播支持了更豐富的封裝格式和音視頻編解碼格式,二者支持的具體功能如表4:
表4 點(diǎn)播和直播支持協(xié)議
(2)運(yùn)行環(huán)境
KSY MediaPlayer iOS SDK可運(yùn)行于iPhone/iPod Touch/iPad,支持iOS7.0及以上版本;支持armv7/arm64以及虛擬機(jī)運(yùn)行。
(3)快速集成
Step1集成framework
將金山云SDK解壓后,將framework目錄下KSYMediaPlayer.framework復(fù)制到項(xiàng)目下,選擇需要集成的target,在target->BuildPhases->LinkBinaryWithLibraries下,將 KSYMediaPlayer.framework添加進(jìn)去,然后添加另外四個(gè)系統(tǒng)庫:
VideoToolbox.framework
libstdc++.6.tbd或者libstdc++.6.dylib
libbz2.tbd或者libbz2.dylib
libz.tbd或者libz.dylib
Step2調(diào)用
打開需要集成播放視頻功能的視圖源碼,把如下代碼復(fù)制并粘貼到將要播放視頻的位置,列入到播放/停止按鈕的方法中。
1.導(dǎo)入頭文件
#import
2.初始化player
準(zhǔn)備需要視頻播放的UIView;
新建 player;
設(shè)置 url;
調(diào)用prepareToPlay開始播放。由于已經(jīng)設(shè)置shouldAutoplay為TRUE,則prepare完成后立即開始播放。
通過上述的采集、處理、分發(fā)、播放等集成一體的VR直播解決方案,達(dá)到了穩(wěn)定輸出的效果,可以通過APP和VR眼鏡進(jìn)行觀看直播。
隨著直播的不斷演化發(fā)展,直播對(duì)于各行各業(yè)的影響也在日益深入,并逐漸開始從個(gè)人走向企業(yè),已經(jīng)成為一個(gè)標(biāo)配,成為大家傳遞信息的一種新方式。VR將是信息傳遞的重要方式。VR直播將扮演非常重要的角色。它會(huì)深入到生活的方方面面,深入到各個(gè)行業(yè)中。未來3到5年,VR直播行業(yè)將會(huì)有較大的發(fā)展,會(huì)成為人們?nèi)粘I钪蝎@取知識(shí)并與親朋好友交流的一種重要方式。