程 喬,王映華,韋 亮
(中國(guó)聯(lián)通廣西分公司,廣西南寧530028)
隨著智能手機(jī)的普及,云計(jì)算的應(yīng)用推廣,技術(shù)壁壘的打破,直播業(yè)務(wù)得到了迅速發(fā)展。隨著眾多影視明星、體育明星、大佬為直播的推廣,還有電商、社交平臺(tái)、新聞等的加入,直播參與人群迅速擴(kuò)大,對(duì)網(wǎng)絡(luò)性能速率和時(shí)延敏感,對(duì)感知要求提高。并且直播業(yè)務(wù)的用戶(hù)ARPU值貢獻(xiàn)較高,具有較強(qiáng)的消費(fèi)能力和較高的流量貢獻(xiàn)。
視頻直播采用RTMP協(xié)議,實(shí)時(shí)傳輸性較強(qiáng),與傳統(tǒng)視頻點(diǎn)播業(yè)務(wù)存在差異,采用普通的點(diǎn)播視頻的評(píng)估方式,無(wú)法對(duì)直播業(yè)務(wù)進(jìn)行有效的性能評(píng)估。迫切需要針對(duì)直播業(yè)務(wù)進(jìn)行相應(yīng)的研究分析,分析直播業(yè)務(wù)特性和DPI深度識(shí)別,研究直播速率和直播過(guò)程中的卡頓評(píng)估方法,為直播業(yè)務(wù)熱點(diǎn)場(chǎng)景進(jìn)行保障。
直播這種社交泛娛樂(lè)方式早在2005年左右就已經(jīng)出現(xiàn),但真正將直播帶入大眾視線(xiàn)的還是在移動(dòng)互聯(lián)網(wǎng)時(shí)代下的移動(dòng)直播。
a)技術(shù)壁壘打破。云計(jì)算技術(shù)應(yīng)用使很多技術(shù)可以通過(guò)云端和第三方來(lái)實(shí)現(xiàn)。
b)智能手機(jī)攝像發(fā)展。高清智能手機(jī)攝像技術(shù)被大量應(yīng)用。
c)智能手機(jī)普及。高性能智能手機(jī)的普及。
這3個(gè)方面的發(fā)展使2016年直播真正成為了“全民直播”,有統(tǒng)計(jì)數(shù)據(jù)顯示存在200個(gè)左右的直播平臺(tái),因此2016被稱(chēng)為直播元年。
按照直播設(shè)備的不同,直播分為PC端的秀場(chǎng)直播以及移動(dòng)直播;而按照內(nèi)容來(lái)分,直播可以分為泛娛樂(lè)類(lèi)直播、游戲類(lèi)直播、體育賽事直播、泛生活類(lèi)等直播,基本可以涵蓋個(gè)人生活的大部分內(nèi)容(見(jiàn)圖1)。
圖1 直播分類(lèi)內(nèi)容及特點(diǎn)
直播業(yè)務(wù)和點(diǎn)播業(yè)務(wù)有很大差異,包括行為方式、性能側(cè)重點(diǎn)要求和采用網(wǎng)絡(luò)協(xié)議等幾個(gè)方面。
a)行為方式不同。直播業(yè)務(wù)為包含主播和觀(guān)看2個(gè)方面,視頻主播是指利用PC或者移動(dòng)終端實(shí)時(shí)上傳體育、游戲和各種生活節(jié)目的行為,這種行為稱(chēng)之為“Publish”,這些實(shí)時(shí)畫(huà)面經(jīng)過(guò)視頻和音頻設(shè)備采集、編碼等處理后,上傳到各個(gè)OTT平臺(tái)服務(wù)器,再經(jīng)過(guò)轉(zhuǎn)碼、內(nèi)容分發(fā),供粉絲們實(shí)時(shí)觀(guān)看。因此主播主要為上行方向流量,對(duì)網(wǎng)絡(luò)帶寬、速率和時(shí)延等網(wǎng)絡(luò)性能要求較高。觀(guān)看直播,稱(chēng)之為“Play”,觀(guān)看行為很簡(jiǎn)單,用戶(hù)在眾多直播頻道中找到感興趣的頻道,點(diǎn)擊播放即可,在播放過(guò)程中可以與主播進(jìn)行互動(dòng)。觀(guān)看主要為下行方向流量,對(duì)下行網(wǎng)絡(luò)帶寬、速率和時(shí)延等網(wǎng)絡(luò)性能要求較高。點(diǎn)播業(yè)務(wù)只有下行流量,對(duì)網(wǎng)絡(luò)帶寬、速率和時(shí)延等網(wǎng)絡(luò)性能要求也較高。
b)性能側(cè)重點(diǎn)要求不同。直播業(yè)務(wù)對(duì)延時(shí)、卡頓、清晰度、美顏、推拉流、高分辨率等都有更高要求。對(duì)實(shí)時(shí)性要求很高的同時(shí),首屏?xí)r延和畫(huà)面追趕等,都非常影響用戶(hù)體驗(yàn)感知。視頻點(diǎn)播主要側(cè)重于高質(zhì)量(高碼率)、流暢(低卡頓)和初始緩沖時(shí)長(zhǎng)(即加載時(shí)間)。
c)使用協(xié)議的不同。直播業(yè)務(wù)中主播主要使用RTMP協(xié)議和私有協(xié)議,觀(guān)看主要使用HLS協(xié)議和RTMP協(xié)議,其中HLS協(xié)議比RTMP協(xié)議時(shí)延長(zhǎng)約2 s。點(diǎn)播業(yè)務(wù)主要使用HTTP漸近下載HPD(HTTP Progressive Download)、HTTP流 媒 體 直 播Apple HLS(HTTP Live Streaming)和HTTP動(dòng)態(tài)自適應(yīng)流媒體MPEG DASH(Dynamic Adaptive Streaming over HTTP),其中HLS和DASH均支持自適應(yīng)碼流技術(shù)。
直播業(yè)務(wù)中的觀(guān)看和點(diǎn)播業(yè)務(wù)都使用HLS協(xié)議,但是直播業(yè)務(wù)和點(diǎn)播業(yè)務(wù)的HLS存在較大差異。
點(diǎn)播中使用HLS(多次請(qǐng)求多次下載)方式下,媒體組織格式為MPEG2-TS,媒體流和metadata信息合并保存。每一個(gè)視頻分段作為獨(dú)立單位進(jìn)行請(qǐng)求,視頻分段時(shí)長(zhǎng)2~10 s,每一個(gè)分段對(duì)應(yīng)一個(gè)URL,在第1個(gè)視頻分段請(qǐng)求前需先請(qǐng)求分段索引文件m3u8。
在直播中使用HLS是以點(diǎn)播的技術(shù)方式來(lái)實(shí)現(xiàn)直播。但是直播客戶(hù)端獲取到的,并不是一個(gè)完整的數(shù)據(jù)流。HLS協(xié)議在服務(wù)器端將直播數(shù)據(jù)流存儲(chǔ)為連續(xù)的、很短時(shí)長(zhǎng)的媒體文件(MPEG-TS格式),而客戶(hù)端則不斷地下載并播放這些小文件,因?yàn)榉?wù)器端總是會(huì)將最新的直播數(shù)據(jù)生成新的小文件,這樣客戶(hù)端只要不停地按順序播放從服務(wù)器獲取到的文件,就實(shí)現(xiàn)了直播。
表1給出了直播平臺(tái)推流、拉流列表。
表1 各直播平臺(tái)推流、拉流列表
一個(gè)完整的視頻直播系統(tǒng),大致可以分為采集、前處理、編碼、傳輸、解碼、渲染6個(gè)環(huán)節(jié)(見(jiàn)圖2)。
圖2 視頻直播流程圖
在主播側(cè),通過(guò)手機(jī)或者電腦的攝像頭對(duì)圖像進(jìn)行采集;在前處理階段對(duì)采集到畫(huà)面進(jìn)行美顏、模糊效果、水印等視頻處理;經(jīng)過(guò)前處理階段處理后,進(jìn)行分辨率、幀率、碼率等編碼。終端轉(zhuǎn)碼后通過(guò)互聯(lián)網(wǎng)到服務(wù)器集群中的推流服務(wù)器、轉(zhuǎn)碼服務(wù)器、存儲(chǔ)服務(wù)器、分析服務(wù)器等等,最后通過(guò)分發(fā)CDN到觀(guān)看節(jié)點(diǎn)。在觀(guān)眾側(cè),終端通過(guò)解碼,對(duì)畫(huà)面進(jìn)行渲染后進(jìn)行觀(guān)看(見(jiàn)圖3)。
圖3 直播業(yè)務(wù)架構(gòu)
直播業(yè)務(wù)主要使用實(shí)時(shí)消息傳送協(xié)議(RTMP),此協(xié)議是Adobe Systems公司為Flash播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開(kāi)發(fā)的開(kāi)放協(xié)議。也有部分平臺(tái)采用私有協(xié)議,如YY直播和虎牙直播等。
RTMP協(xié)議是應(yīng)用層協(xié)議,要靠底層可靠的傳輸層協(xié)議(TCP)來(lái)保證信息傳輸?shù)目煽啃裕J(rèn)使用端口1935。在基于傳輸層協(xié)議的鏈接建立完成后,RTMP協(xié)議也要客戶(hù)端和服務(wù)器通過(guò)“握手”來(lái)建立基于傳輸層鏈接之上的RTMPConnection鏈接,在Connection鏈接上會(huì)傳輸一些控制信息。其中CreateStream命令會(huì)創(chuàng)建一個(gè)Stream鏈接,用于傳輸具體的音視頻數(shù)據(jù)和控制這些信息傳輸?shù)拿钚畔ⅰ?/p>
握手過(guò)程如圖4所示。客戶(hù)端發(fā)送的消息塊被指定為C0、C1、C2,被服務(wù)器端發(fā)送的消息被指定為S0、S1、S2。
圖4 握手過(guò)程
客戶(hù)端發(fā)送C0和C1消息塊位開(kāi)始,客戶(hù)端必須等到S1到達(dá)再發(fā)送C2,等到S2接收到才可以發(fā)送其他的數(shù)據(jù);服務(wù)端必須等到C0到達(dá)才發(fā)送S0和S1,在C1之后也會(huì)等待,等到C1到達(dá)才發(fā)送S2,等到C2到達(dá)后才發(fā)送其他數(shù)據(jù)。
以斗魚(yú)直播為例,分析信令流程。建立斗魚(yú)直播房間,開(kāi)始視頻直播時(shí),主播流程如下。
a)DNS查詢(xún),返回服務(wù)器地址。
b)TCP三步握手。
c)RTMP的握手。
d)建立成功,傳輸視頻和音頻數(shù)據(jù)。
3.1.1 直播業(yè)務(wù)類(lèi)型識(shí)別
視頻直播業(yè)務(wù)主要采用RTMP協(xié)議,和部分私有協(xié)議,在信令交互過(guò)程中,現(xiàn)有的DPI無(wú)法進(jìn)行解析,需要編輯新的視頻規(guī)則進(jìn)行識(shí)別。
通過(guò)RTMP協(xié)議的推流服務(wù)器地址,識(shí)別推流的“Property”關(guān)鍵字中的“tcurl”值,并進(jìn)行判斷解析,可知道視頻直播業(yè)務(wù)類(lèi)型。如圖5所示,Property‘tcurl’String‘RTMP://send3.douyu.com:1935/Live’,通過(guò)識(shí)別tcurl的值,可知其為斗魚(yú)直播業(yè)務(wù)。
圖5 直播業(yè)務(wù)類(lèi)型識(shí)別示意圖
3.1.2 直播業(yè)務(wù)參數(shù)識(shí)別
在主播流程建立完成后,開(kāi)始進(jìn)行直播時(shí),在RTMP協(xié)議的message消息中,可以看到直播終端視頻中的畫(huà)面分辨率、碼率和視頻協(xié)議等,音頻中的碼率和采樣率等,直播軟件的名稱(chēng)和版本號(hào),直播終端的型號(hào)和系統(tǒng)版本號(hào)等信息。
直播業(yè)務(wù)采用RTMP協(xié)議應(yīng)用在TCP協(xié)議層上,結(jié)合直播業(yè)務(wù)的特性,在全端采集到主播的畫(huà)面和語(yǔ)音,迅速上傳到服務(wù)器集群,分發(fā)給不同地方的觀(guān)眾觀(guān)看。因此主播上傳視頻依賴(lài)于上行帶寬,當(dāng)主播網(wǎng)絡(luò)環(huán)境差或者上行帶寬不足,會(huì)出現(xiàn)數(shù)據(jù)上傳問(wèn)題,此時(shí)客戶(hù)端APP并無(wú)提示,主播無(wú)感知。由于主播方數(shù)據(jù)上傳出現(xiàn)問(wèn)題時(shí),觀(guān)看方視頻會(huì)出現(xiàn)停滯和卡頓等情況,觀(guān)眾體驗(yàn)較差。
以斗魚(yú)直播為例,使用2臺(tái)測(cè)試手機(jī),其中一臺(tái)作為主播,另外一臺(tái)作為觀(guān)眾,標(biāo)清模式下測(cè)試。通過(guò)測(cè)試得出的結(jié)論為:主播上行速率的最小速率門(mén)限值為1 Mbit/s。當(dāng)速率低于1 Mbit/s時(shí),重傳率急劇增加到10%以上,導(dǎo)致大量重傳,觀(guān)眾觀(guān)看主播畫(huà)面卡頓嚴(yán)重。因此,主播業(yè)務(wù)的理想速率在1.5 Mbit/s,主播上行速率門(mén)限值在1 Mbit/s,重傳率在10%以下(見(jiàn)圖6)。
圖6 實(shí)測(cè)主播業(yè)務(wù)卡頓門(mén)限制對(duì)比
通過(guò)現(xiàn)場(chǎng)測(cè)試,總結(jié)影響直播的主要因素為上行速率和上行重傳率。但是由于直播采用RTMP協(xié)議,屬于長(zhǎng)連接,在整個(gè)直播過(guò)程中,僅有從直播開(kāi)始到直播結(jié)束建立的一個(gè)鏈接,在某一個(gè)時(shí)刻或者幾個(gè)時(shí)刻存在重傳率過(guò)高導(dǎo)致速率下降,觀(guān)眾視頻畫(huà)面出現(xiàn)卡頓問(wèn)題,但整個(gè)長(zhǎng)時(shí)間的TCP流中,指標(biāo)上并不能表現(xiàn)出來(lái),需要一種新的方法方式能在重傳率突發(fā)時(shí)及時(shí)發(fā)現(xiàn),并發(fā)出預(yù)警。
因此設(shè)計(jì)了TCP流時(shí)間分片算法,按照一定時(shí)長(zhǎng)把TCP流進(jìn)行分段,把一次直播過(guò)程按照一定時(shí)間(如5 s,可以根據(jù)業(yè)務(wù)的不同,可以按需求調(diào)整),分成n個(gè)段,從t0到tn,這樣可以分析每一段的速率和重傳率是否滿(mǎn)足直播要求。如果在tx段滿(mǎn)足重傳率超過(guò)10%或者上行速率低于1 Mbit/s條件,那么可以判斷tx出現(xiàn)視頻卡頓現(xiàn)象,卡頓次數(shù)置1,那么整個(gè)直播過(guò)程中如果有a個(gè)段出現(xiàn)了卡頓現(xiàn)象,那么整個(gè)直播過(guò)程的卡頓率=a/n。如圖7所示,直播時(shí)間為120 s,按照5 s一個(gè)段,那么可以分為n=24段,其中有t6和t21出現(xiàn)重傳率高速率低問(wèn)題,有卡頓現(xiàn)象,因此卡頓數(shù)a=2,那么這段直播的卡頓率=a/n=2/24=8.33%。
圖7 時(shí)間分片累計(jì)算法分片原理
按照視頻直播業(yè)務(wù)信令流程中的各個(gè)節(jié)點(diǎn)和各個(gè)功能對(duì)直播業(yè)務(wù)的信令流程性能的影響,建立評(píng)估直播業(yè)務(wù)的用戶(hù)感知的KPI指標(biāo)(見(jiàn)表2)。
表2 各指標(biāo)計(jì)算方式表
基于斗魚(yú)直播進(jìn)行測(cè)試,使用2臺(tái)測(cè)試手機(jī),其中一臺(tái)作為主播,另外一臺(tái)作為觀(guān)眾,標(biāo)清模式下測(cè)試。當(dāng)觀(guān)看主播出現(xiàn)畫(huà)面卡頓時(shí)并進(jìn)行記錄,通過(guò)測(cè)試一共記錄了9次卡頓現(xiàn)象。對(duì)本次測(cè)試的主播關(guān)鍵指標(biāo)進(jìn)行統(tǒng)計(jì),其整體指標(biāo)良好,上行平均速率為1 201.17 kbit/s,上行重傳率為6.62%,整體指標(biāo)未達(dá)到卡頓門(mén)限值,但實(shí)際上觀(guān)眾觀(guān)看時(shí)出現(xiàn)了卡頓現(xiàn)象(見(jiàn)表3)。
表3 主播測(cè)試各指標(biāo)KPI值
通過(guò)對(duì)主播測(cè)試用戶(hù)信令回放,發(fā)現(xiàn)其中部分時(shí)段出現(xiàn)了大量的重傳包,由于重傳包較為集中,短時(shí)間內(nèi)突發(fā)大量的重傳包,導(dǎo)致觀(guān)眾畫(huà)面停滯,畫(huà)面模糊等現(xiàn)象。把主播測(cè)試用戶(hù)觀(guān)看直播的過(guò)程,按照時(shí)間分片積累算法,由于此業(yè)務(wù)為直播業(yè)務(wù)中的主播,對(duì)實(shí)時(shí)性要求較高,因此把時(shí)間按照秒為單位分段,計(jì)算每一個(gè)時(shí)間分段的速率和重傳率,是否滿(mǎn)足直播對(duì)速率和重傳的要求。
本次主播測(cè)試用戶(hù)直播時(shí)長(zhǎng)為903.71 s,按照5 s一個(gè)分段,共分成了180個(gè)段,其中上行速率小于1 000 kbit/s的有8個(gè)(見(jiàn)表4),速率無(wú)法滿(mǎn)足要求,觀(guān)眾出現(xiàn)視頻卡頓的現(xiàn)象,所以卡頓率=8/180=4.44%。
截取重傳率導(dǎo)致視頻卡頓的58、59段分析,看到有連續(xù)的上行RTMP重傳,導(dǎo)致流量急劇下降至0,出現(xiàn)直播視頻畫(huà)面停滯現(xiàn)象,持續(xù)了約8 s后才恢復(fù)正常。
表4 速率低分段情況
對(duì)比統(tǒng)計(jì)卡頓次數(shù)與實(shí)際測(cè)試記錄中的卡頓次數(shù)發(fā)現(xiàn),統(tǒng)計(jì)卡頓次數(shù)與比實(shí)際測(cè)試記錄少了1次,統(tǒng)計(jì)卡頓次數(shù)準(zhǔn)確率為8/9=88.89%,說(shuō)明本文的視頻直播感知評(píng)估方法是可行的。
2017年5 月廣西聯(lián)通開(kāi)展直播業(yè)務(wù)感知質(zhì)量提升專(zhuān)項(xiàng),基于直播業(yè)務(wù)感知評(píng)估方法,對(duì)斗魚(yú)直播、虎牙直播、熊貓直播、映客直播等主流直播平臺(tái)的用戶(hù)感知質(zhì)量進(jìn)分析優(yōu)化,共分析排查了3個(gè)服務(wù)器IP和120個(gè)視頻直播質(zhì)差小區(qū),平均速率提升10.53%,卡頓率改善1.28%,用戶(hù)感知提升顯著。
應(yīng)用案例:基于直播業(yè)務(wù)感知評(píng)估方法,對(duì)南寧校園區(qū)域的移動(dòng)視頻直播用戶(hù)感知質(zhì)量進(jìn)行分析,經(jīng)統(tǒng)計(jì)發(fā)現(xiàn)30466_6969021(GX南寧廣西工商學(xué)校_FLTE基站_F_1)小區(qū)下的移動(dòng)視頻直播用戶(hù)存在上行速率過(guò)低、卡頓率過(guò)高等問(wèn)題,嚴(yán)重影響了觀(guān)眾用戶(hù)感知(見(jiàn)表5)。
經(jīng)排查,30466_6969021小區(qū)存在干擾,導(dǎo)致用戶(hù)在該小區(qū)上網(wǎng)時(shí),感知較差。對(duì)30466_6969021小區(qū)進(jìn)行優(yōu)化后,干擾消除。優(yōu)化后,該小區(qū)下的移動(dòng)視頻直播用戶(hù)沒(méi)有出現(xiàn)上行速率低、卡頓率高的情況,用戶(hù)感知得到有效的改善(見(jiàn)表6)。
表5 優(yōu)化前視頻直播流量TOP 5用戶(hù)感知指標(biāo)
表6 優(yōu)化后視頻直播流量TOP 5用戶(hù)感知指標(biāo)
2016年開(kāi)始直播業(yè)務(wù)得到迅速發(fā)展,視頻直播融入了各行各業(yè)。直播不同于傳統(tǒng)的視頻點(diǎn)播業(yè)務(wù),對(duì)實(shí)時(shí)性要求較高,流量緩沖較小,容易產(chǎn)生卡頓,且采用RTMP協(xié)議。通過(guò)對(duì)視頻業(yè)務(wù)的研究,總結(jié)出視頻直播平臺(tái)的識(shí)別信令特征,有助于識(shí)別用戶(hù)使用的視頻直播平臺(tái)?;谝曨l直播的TCP長(zhǎng)連接,無(wú)法準(zhǔn)確分析整個(gè)過(guò)程中是否有卡頓現(xiàn)象,通過(guò)時(shí)間流分片積累算法,可分析直播過(guò)程中產(chǎn)生的卡頓現(xiàn)象,有效地評(píng)估視頻直播過(guò)程中的真實(shí)感知情況。