本發(fā)明涉及互聯(lián)網(wǎng)直播技術(shù)領(lǐng)域,尤其涉及一種內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換方法與裝置。
背景技術(shù):
網(wǎng)絡(luò)直播系統(tǒng)是一種將主播用戶的直播視頻流廣播至多個觀眾用戶進行觀看的互聯(lián)網(wǎng)系統(tǒng)。
目前,市場上存在多家cdn服務(wù)提供商,例如:藍汛、網(wǎng)宿、阿里云、騰訊云等。為了緩解網(wǎng)絡(luò)擁堵的狀況,很多大型網(wǎng)絡(luò)直播平臺都采用內(nèi)容分發(fā)網(wǎng)絡(luò)(contentdeliverynetwork,簡稱cdn)技術(shù)。在現(xiàn)有的直播網(wǎng)絡(luò)系統(tǒng)中,會為一個主播間綁定一家cdn服務(wù)提供商,即該直播間只能通過該家cdn服務(wù)器提供商提供的cdn服務(wù)器來推直播視頻流??梢?,直播間的直播效果完全取決于綁定的該cdn的好壞,并且一旦這家cdn服務(wù)提供商的cdn出現(xiàn)問題,只能等待這家cdn自行恢復(fù),直播風(fēng)險大,影響用戶體驗。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換方法與裝置,提高直播系統(tǒng)抵御風(fēng)險能力,降低cdn故障對直播的影響。
為了解決上述技術(shù)問題,本發(fā)明提供了一種內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換方法,該方法包括:
獲取通過同一內(nèi)容分發(fā)網(wǎng)絡(luò)cdn節(jié)點接入同一直播間的至少一個觀眾端上傳的視頻卡頓信息以及通過同一所述cdn節(jié)點接入所述直播間的各觀眾端與所述cdn節(jié)點之間的鏈路質(zhì)量信息;
根據(jù)通過所述cdn節(jié)點接入所述直播間的各觀眾端上傳的彈幕信息,評估所述直播間的視頻播放流暢度;
根據(jù)所述視頻卡頓信息、所述鏈路質(zhì)量信息以及評估的所述視頻播放流暢度,確定所述cdn節(jié)點是否異常;
若異常,則將通過所述cdn節(jié)點接入所述直播間的所有觀眾端切換至第一備選cdn節(jié)點,以使所述觀眾端通過所述第一備選cdn節(jié)點獲取所述直播間的視頻流;
其中,所述cdn節(jié)點與所述第一備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
可選地,所述根據(jù)通過所述cdn節(jié)點接入所述直播間的各觀眾端上傳的彈幕信息,評估所述直播間的視頻播放流暢度,包括:
統(tǒng)計所述各觀眾端上傳的彈幕信息中出現(xiàn)與預(yù)設(shè)詞庫中至少一個詞項詞義相同或相近的信息項的出現(xiàn)率;
若所述出現(xiàn)率大于第一閾值,評估所述直播間的視頻播放流暢度為低流暢度。
可選地,所述視頻卡頓信息中包括卡頓率;所述鏈路質(zhì)量信息中包括丟包率和帶寬信息;
相應(yīng)地,所述根據(jù)所述視頻卡頓信息、所述鏈路質(zhì)量信息以及評估的所述視頻播放流暢度,確定所述cdn節(jié)點是否異常,包括:
根據(jù)通過所述cdn節(jié)點接入所述直播間的所有觀眾端的視頻卡頓信息中的卡頓率,計算出現(xiàn)卡頓率大于第二閾值的觀眾端占所有觀眾端的比例,以得到卡頓比;
根據(jù)通過所述cdn節(jié)點接入所述直播間的所有觀眾端的鏈路質(zhì)量信息中包含的丟包率及帶寬信息,計算出現(xiàn)丟包率大于第三閾值和/或帶寬小于第四閾值的觀眾端占所有觀眾端的比例,以得到鏈路異常比;
若所述卡頓比、所述鏈路異常比或所述播放流暢度滿足異常判定指標,則判定所述cdn節(jié)點為異常節(jié)點。
可選地,在所述將通過所述cdn節(jié)點接入所述直播間的所有觀眾端切換至第一備選cdn節(jié)點的步驟之前,還包括:
根據(jù)多個備選cdn服務(wù)提供方的畫像數(shù)據(jù),從所述多個備選cdn服務(wù)提供方中選出一個與所述cdn節(jié)點所屬同一地域和/或所屬同一網(wǎng)絡(luò)服務(wù)商的cdn節(jié)點作為所述第一備選cdn節(jié)點。
可選地,所述方法,還包括:
獲取所述直播間的主播端與接收所述直播間視頻流的cdn節(jié)點之間的鏈路質(zhì)量信息;
根據(jù)所述鏈路質(zhì)量信息,判斷是否需要將接收所述直播間視頻流的cdn節(jié)點切換至第二備選cdn節(jié)點,以使所述第二備選cdn節(jié)點接收所述直播間視頻流;
其中,所述接收所述直播間視頻流的cdn節(jié)點與所述第二備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
為了解決上述技術(shù)問題,本發(fā)明提供了一種內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換裝置,包括:
獲取模塊,用于獲取通過同一內(nèi)容分發(fā)網(wǎng)絡(luò)cdn節(jié)點接入同一直播間的至少一個觀眾端上傳的視頻卡頓信息以及通過同一所述cdn節(jié)點接入所述直播間的各觀眾端與所述cdn節(jié)點之間的鏈路質(zhì)量信息;
評估模塊,用于根據(jù)通過所述cdn節(jié)點接入所述直播間的各觀眾端上傳的彈幕信息,評估所述直播間的視頻播放流暢度;
確定模塊,用于根據(jù)所述視頻卡頓信息、所述鏈路質(zhì)量信息以及評估的所述視頻播放流暢度,確定所述cdn節(jié)點是否異常;
切換模塊,用于若異常,則將通過所述cdn節(jié)點接入所述直播間的所有觀眾端切換至第一備選cdn節(jié)點,以使所述觀眾端通過所述第一備選cdn節(jié)點獲取所述直播間的視頻流;其中,所述cdn節(jié)點與所述第一備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
本發(fā)明實施例提供的技術(shù)方案中,綜合觀眾端上傳來的視頻卡頓信息、觀眾端與cdn節(jié)點之間的鏈路質(zhì)量信息以及基于彈幕信息分析得到的視頻播放流暢度等多個方面,可準確判斷出cdn節(jié)點是否異常。一旦cdn節(jié)點出現(xiàn)異常,將連接在異常cdn節(jié)點上的觀眾端自動切換至其他cdn提供商的cdn節(jié)點上,可見,本發(fā)明并不是為某個直播間綁定某一家cdn,而是事先為直播間配置多家cdn,這樣,在某家cdn出現(xiàn)問題時,自動切換至其他家cdn,降低了cdn故障對直播的影響。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實施例提供的內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換方法的流程示意圖;
圖2為本發(fā)明又一實施例提供的內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換方法的流程示意圖;
圖3為本發(fā)明一實施例提供的內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
在本發(fā)明實施例中使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義,“多種”一般包含至少兩種,但是不排除包含至少一種的情況。
應(yīng)當理解,本文中使用的術(shù)語“和/或”僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
應(yīng)當理解,盡管在本發(fā)明實施例中可能采用術(shù)語第一、第二、第三等來描述xxx,但這些xxx不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將xxx彼此區(qū)分開。例如,在不脫離本發(fā)明實施例范圍的情況下,第一xxx也可以被稱為第二xxx,類似地,第二xxx也可以被稱為第一xxx。
取決于語境,如在此所使用的詞語“如果”、“若”可以被解釋成為“在……時”或“當……時”或“響應(yīng)于確定”或“響應(yīng)于監(jiān)測”。類似地,取決于語境,短語“如果確定”或“如果監(jiān)測(陳述的條件或事件)”可以被解釋成為“當確定時”或“響應(yīng)于確定”或“當監(jiān)測(陳述的條件或事件)時”或“響應(yīng)于監(jiān)測(陳述的條件或事件)”。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的商品或者系統(tǒng)中還存在另外的相同要素。
圖1為本發(fā)明一實施例提供的內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換方法的流程示意圖。如圖1所示,該方法包括:
101、獲取通過同一內(nèi)容分發(fā)網(wǎng)絡(luò)cdn節(jié)點接入同一直播間的至少一個觀眾端上傳的視頻卡頓信息以及通過同一所述cdn節(jié)點接入所述直播間的各觀眾端與所述cdn節(jié)點之間的鏈路質(zhì)量信息。
102、根據(jù)通過所述cdn節(jié)點接入所述直播間的各觀眾端上傳的彈幕信息,評估所述直播間的視頻播放流暢度。
103、根據(jù)所述視頻卡頓信息、所述鏈路質(zhì)量信息以及評估的所述視頻播放流暢度,確定所述cdn節(jié)點是否異常。
104、若異常,則將通過所述cdn節(jié)點接入所述直播間的所有觀眾端切換至第一備選cdn節(jié)點,以使所述觀眾端通過所述第一備選cdn節(jié)點獲取所述直播間的視頻流;其中,所述cdn節(jié)點與所述第一備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
在直播系統(tǒng)中,主播端與cdn中的第一cdn節(jié)點建立連接,并將視頻流推至所述第一cdn節(jié)點上,所述第一cdn節(jié)點將接收到的視頻流發(fā)送給cdn中心節(jié)點以進行轉(zhuǎn)碼處理,所述cdn中心節(jié)點將轉(zhuǎn)碼處理后的視頻流分發(fā)至至少一個第二cdn節(jié)點,以供觀眾端獲取視頻流進行觀看,其中,所述第一cdn節(jié)點可以是所述至少一個第二cdn節(jié)點中的一個??梢姡^眾端需通過一cdn節(jié)點接入直播間,以進行視頻觀看。
上述步驟101中,觀眾端通過一cdn節(jié)點接入一直播間觀看視頻的過程中,觀眾端可每隔第一預(yù)設(shè)時間間隔檢測視頻播放的卡頓率,或者,觀眾端響應(yīng)于用戶對播放卡頓率的檢測操作,檢測視頻播放的卡頓率;根據(jù)檢測到的視頻播放卡頓率生成視頻卡頓信息并上傳至服務(wù)端。所述卡頓信息包括卡頓率以及觀眾端信息。所述觀眾端信息中可包括觀眾用戶id。例如,所述第一預(yù)設(shè)時間間隔為1s。
其中,所述鏈路質(zhì)量信息中包括丟包率和帶寬信息。所述鏈路質(zhì)量信息可以由觀眾端檢測得到并上傳至服務(wù)端。在一種可實現(xiàn)的方案中,在觀眾端觀看直播間視頻的過程中,觀眾端可每隔第二預(yù)設(shè)時間間隔向為其提供所述直播間視頻流的cdn節(jié)點發(fā)送空數(shù)據(jù)包,統(tǒng)計所述cdn節(jié)點返回的響應(yīng)包,即可得到丟包率,例如,在某一時間段內(nèi),觀眾端向所述cdn節(jié)點發(fā)送了100個數(shù)據(jù)包,所述觀眾端接收到95個所述cdn節(jié)點返回的響應(yīng)包,即丟包率為5%;以及,觀眾端還可每隔第三預(yù)設(shè)時間間隔或響應(yīng)于用戶對帶寬的檢測操作,檢測其與為其提供所述直播間視頻流的cdn節(jié)點之間的帶寬信息。觀眾端根據(jù)檢測得到的丟包率和帶寬信息生成鏈路質(zhì)量信息并上傳至服務(wù)端。作為可選地,觀眾端將鏈路質(zhì)量信息上傳至服務(wù)端時,還可在所述鏈路質(zhì)量信息中攜帶上觀眾端信息。
作為可選地,服務(wù)端可將觀眾端上傳的視頻卡頓信息以及鏈路質(zhì)量信息存儲在其對應(yīng)的數(shù)據(jù)庫中。在服務(wù)端接收到同一觀眾端上傳來的新的視頻卡頓信息或鏈路質(zhì)量信息時,以新的視頻卡頓信息或新的鏈路質(zhì)量信息替代掉服務(wù)端數(shù)據(jù)庫中舊的視頻卡頓信息或舊的鏈路質(zhì)量信息。用于判定cdn節(jié)點是否異常的后臺服務(wù)器可實時從所述數(shù)據(jù)庫中獲取視頻卡頓信息和鏈路質(zhì)量信息。
上述步驟102中,首先獲取通過所述cdn節(jié)點接入所述直播間的各個觀眾端上傳的彈幕信息,所述彈幕信息中包括:觀眾端信息、直播間信息、彈幕內(nèi)容以及時間戳。
所述彈幕信息可以是所述直播間此次開播時間點后的彈幕信息,例如,當前時刻為2017年6月13日13點52分,直播間a正在直播,直播間a此次開播時間為2017年6月13日12點50分,獲取通過cdn節(jié)點1接入直播間a的各個觀眾端上傳的時間戳在2017年6月13日12點50分之后的彈幕信息。
所述彈幕信息也可以是當前時刻前一預(yù)設(shè)周期內(nèi)的彈幕信息。例如,預(yù)設(shè)周期為10分鐘,當前時刻為2017年6月13日13點52分,直播間a正在直播,直播間a此次開播時間為2017年6月13日12點50分,獲取通過cdn節(jié)點1接入直播間a的各個觀眾端上傳的時間戳在2017年6月13日13點42分之后的彈幕信息。
獲取到通過所述cdn節(jié)點接入所述直播間的各個觀眾端上傳的彈幕信息之后,可對彈幕信息進行語義分析,例如:對各個觀眾端上傳的彈幕信息中彈幕內(nèi)容進行語義分析,確定各個觀眾用戶是否針對直播間的視頻播放的流暢度或是清晰度進行過投訴,根據(jù)語義分析結(jié)果,可統(tǒng)計出觀眾用戶的投訴比,根據(jù)投訴比即可評估所述直播間的視頻播放流暢度。
在一種可實現(xiàn)的方案中,統(tǒng)計所述各觀眾端上傳的彈幕信息中出現(xiàn)與預(yù)設(shè)詞庫中至少一個詞項詞義相同或相近的信息項的出現(xiàn)率;若所述出現(xiàn)率大于第一閾值,評估所述直播間的視頻播放流暢度為低流暢度。即事先設(shè)置一預(yù)設(shè)詞庫,在所述預(yù)設(shè)詞庫中收集了若干個觀眾用戶輸入的有關(guān)視頻播放流暢度的投訴詞,例如:卡頓、分辨率低、畫面模糊、不流暢、清晰度差等。所述第一閾值可按照實際情況進行相應(yīng)調(diào)整,本發(fā)明對此不作任何限定。
在實際應(yīng)用中,同一個用戶發(fā)向同一直播間的多條彈幕信息中會多次出現(xiàn)與預(yù)設(shè)詞庫中的詞項詞義相同或相近的信息項,作為可選地,在統(tǒng)計出現(xiàn)率時,針對該用戶,只統(tǒng)計一次。例如,通過所述cdn節(jié)點接入所述直播間的有100個觀眾端,其中,有30個觀眾端上傳的彈幕信息中出現(xiàn)了與預(yù)設(shè)詞庫中的一個或多個詞項詞義相同或相近的信息項,則出現(xiàn)率為30%,若預(yù)設(shè)設(shè)置的第一閾值為10%,那么,可將該直播間的視頻播放流暢度評估為低流暢度。
作為可選的,在觀眾端與cdn節(jié)點建立連接去觀看某一直播間視頻時,可在服務(wù)端建立所述觀眾端信息、所述直播間信息以及所述cdn節(jié)點信息三者之間關(guān)聯(lián)關(guān)系。根據(jù)所述關(guān)聯(lián)關(guān)系,即可確定出通過同一cdn節(jié)點接入同一直播間的至少一個觀眾端信息。根據(jù)所述至少一個觀眾端信息中的各個觀眾端信息從所述服務(wù)端的數(shù)據(jù)庫中獲取各個觀眾端信息對應(yīng)的視頻卡頓信息以及鏈路質(zhì)量信息,以及根據(jù)所述至少一個觀眾端信息中的各個觀眾端信息從彈幕庫中獲取各個觀眾端信息對應(yīng)的彈幕信息。其中,所述關(guān)聯(lián)關(guān)系可實時更新,例如,有一個觀眾端退出一直播間,則可將所述觀眾端對應(yīng)的關(guān)聯(lián)關(guān)系進行刪除。
上述步驟103中,根據(jù)所述視頻卡頓信息、所述鏈路質(zhì)量信息以及評估的所述視頻播放流暢度,來確定所述cdn節(jié)點是否異常。
在一種可實現(xiàn)的方案中,根據(jù)通過所述cdn節(jié)點接入所述直播間的所有觀眾端的視頻卡頓信息中的卡頓率,計算出現(xiàn)卡頓率大于第二閾值的觀眾端占所有觀眾端的比例,以得到卡頓比;根據(jù)通過所述cdn節(jié)點接入所述直播間的所有觀眾端的鏈路質(zhì)量信息中包含的丟包率及帶寬信息,計算出現(xiàn)丟包率大于第三閾值和/或帶寬小于第四閾值的觀眾端占所有觀眾端的比例,以得到鏈路異常比;若所述卡頓比、所述鏈路異常比或所述播放流暢度滿足異常判定指標,則判定所述cdn節(jié)點為異常節(jié)點。
在確定鏈路異常比時,可將丟包率大于第三閾值且?guī)捫∮诘谒拈撝档挠^眾端占所有觀眾端的比例作為鏈路異常比;或者,可將丟包率大于第三閾值或帶寬小于第四閾值的觀眾端占所有觀眾端的比例作為鏈路異常比。
所述異常判定指標中可包括預(yù)先為卡頓比、鏈路異常比分別設(shè)置的第五閾值和第六閾值。所述若所述卡頓比、所述鏈路異常比或所述播放流暢度滿足異常判定指標,則判定所述cdn節(jié)點為異常節(jié)點,具體地,若所述卡頓比超過第五閾值、所述鏈路異常比超過第六閾值,或播放流暢度顯示不流暢,則判定所述cdn節(jié)點為異常節(jié)點。
上述步驟104中,所述cdn節(jié)點與所述第一備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。若判定出所述cdn異常,則將所述第一備選cdn節(jié)點的ip地址發(fā)送給通過所述cdn節(jié)點接入所述直播間的所有觀眾端,所述觀眾端在接收到所述ip地址之后,根據(jù)所述ip地址,向所述第一備選cdn節(jié)點發(fā)送建立連接請求,以實現(xiàn)與所述第一備選cdn節(jié)點的連接。這樣,所述觀眾端即可通過所述第一備選cdn節(jié)點獲取所述直播間的視頻流。
若事先為所述直播間只配置了兩家cdn,當其中一家cdn節(jié)點出現(xiàn)異常時,則只能選擇另一家cdn提供的cdn節(jié)點作為第一備選cdn節(jié)點。若事先為所述直播間配置了n家cdn(n>2),當其中一家cdn節(jié)點出現(xiàn)異常,則可從剩下的多家cdn中選擇隨意選擇一家cdn或是選擇一家服務(wù)質(zhì)量最好的cdn提供的cdn節(jié)點作為第一備選cdn節(jié)點。
在一種可實現(xiàn)的方案中,根據(jù)多個備選cdn服務(wù)提供方的畫像數(shù)據(jù),從所述多個備選cdn服務(wù)提供方中選出一個與所述cdn節(jié)點所屬同一地域和/或所屬同一網(wǎng)絡(luò)服務(wù)商的cdn節(jié)點作為所述第一備選cdn節(jié)點。
所述備選cdn服務(wù)提供方的畫像數(shù)據(jù)包括:通過對所述備選cdn服務(wù)提供方的各個cdn節(jié)點相關(guān)的卡頓比、鏈路質(zhì)量異常比以及播放流暢度進行統(tǒng)計分析得到的各個cdn節(jié)點的畫像數(shù)據(jù),其中,所述卡頓比、鏈路質(zhì)量異常比以及播放流暢度可按照上述方法統(tǒng)計獲得。通常,cdn服務(wù)提供商會針對不同地域和/或不同網(wǎng)絡(luò)服務(wù)商設(shè)置不同的cdn節(jié)點,例如:針對北京地區(qū)的中國電信,設(shè)置cdn節(jié)點1;針對北京地區(qū)的中國移動,設(shè)置cdn節(jié)點2;針對新疆地區(qū)設(shè)置cdn節(jié)點3。也就是說,各個cdn節(jié)點的畫像數(shù)據(jù)也即是所述備選cdn服務(wù)提供方在各個地域和/或各個網(wǎng)絡(luò)服務(wù)商下的畫像數(shù)據(jù)。通過所述備選cdn服務(wù)提供方的畫像數(shù)據(jù)可確定出所述備選cdn服務(wù)提供方在各個地域和/或各個網(wǎng)絡(luò)服務(wù)商下的服務(wù)質(zhì)量。其中,所屬畫像數(shù)據(jù)也是實時更新的。
需要說明的是,由于每家cdn服務(wù)提供商提供的cdn具有內(nèi)部調(diào)度機制,因此,在根據(jù)各個備選cdn服務(wù)提供商的畫像數(shù)據(jù),確定出在所述異常節(jié)點所屬地域和/或所屬網(wǎng)絡(luò)服務(wù)商下服務(wù)質(zhì)量最好的備選cdn服務(wù)提供方之后,可將所述備選cdn服務(wù)提供方的cdn中心節(jié)點的ip地址發(fā)送給通過所述異常cdn節(jié)點接入所述直播間的所有觀眾端,所述觀眾端在接收到所述ip地址之后,根據(jù)所述ip地址,向所述cdn中心節(jié)點發(fā)送直播間視頻流的獲取請求,所述cdn節(jié)點中心節(jié)點在接收到所述獲取請求后,根據(jù)所述獲取請求中攜帶的觀眾端所屬地域和/或所屬網(wǎng)絡(luò)服務(wù)商將其cdn網(wǎng)絡(luò)中與所述地域和/或網(wǎng)絡(luò)服務(wù)商對應(yīng)的第一備選cdn節(jié)點的地址發(fā)送給通過所述異常cdn節(jié)點接入所述直播間的所有觀眾端,以使所有觀眾端能夠獲取到直播間視頻流。通常,所述異常cdn節(jié)點所屬地域和/或所屬網(wǎng)絡(luò)運營商與連接所述異常cdn節(jié)點的觀眾端所屬地域和/或所屬網(wǎng)絡(luò)運營商是一一對應(yīng)的。
獲取異常cdn節(jié)點所屬地域和/或所屬網(wǎng)絡(luò)服務(wù)商,根據(jù)多個備選cdn服務(wù)提供方的畫像數(shù)據(jù),確定在所述地域和/或所述網(wǎng)絡(luò)服務(wù)商下服務(wù)質(zhì)量最好的備選cdn服務(wù)提供方,并將所述服務(wù)質(zhì)量最好的備選cdn服務(wù)提供方提供的與所述cdn節(jié)點所屬同一地域和/或所屬同一網(wǎng)絡(luò)服務(wù)商的cdn節(jié)點作為所述第一備選cdn節(jié)點。
本發(fā)明實施例提供的技術(shù)方案中,綜合觀眾端上傳來的視頻卡頓信息、觀眾端與cdn節(jié)點之間的鏈路質(zhì)量信息以及基于彈幕信息分析得到的視頻播放流暢度等多個方面可準確判斷出cdn節(jié)點是否異常。一旦cdn節(jié)點出現(xiàn)異常,將連接在異常cdn節(jié)點上的觀眾端自動切換至其他cdn提供商的cdn節(jié)點上,可見,本發(fā)明并不是為某個直播間綁定某一家cdn,而是事先為直播間配置多家cdn,這樣,在某家cdn出現(xiàn)問題時,切換至其他家cdn,降低了cdn故障對直播的影響。
圖2為本發(fā)明又一實施例提供的內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換方法的流程示意圖。如圖2所示,該方法包括:
201、獲取所述直播間的主播端與接收所述直播間視頻流的cdn節(jié)點之間的鏈路質(zhì)量信息。
202、根據(jù)所述鏈路質(zhì)量信息,判斷是否需要將接收所述直播間視頻流的cdn節(jié)點切換至第二備選cdn節(jié)點,以使所述第二備選cdn節(jié)點接收所述直播間視頻流;其中,所述接收所述直播間視頻流的cdn節(jié)點與所述第二備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
在實際應(yīng)用中,主播端與接收所述直播間視頻流的cdn節(jié)點之間的鏈路質(zhì)量也會影響觀眾端的觀看體驗。因此,在本實施例中,還會監(jiān)控主播端與接收所述直播間視頻流的cdn節(jié)點之間的鏈路質(zhì)量狀況。
所述鏈路質(zhì)量信息中包括丟包率和帶寬信息,所述鏈路質(zhì)量信息可以由主播端檢測得到并上傳至服務(wù)端。
在一種可實現(xiàn)的方案中,在主播端直播過程中,主播端可每隔第四預(yù)設(shè)時間間隔向接收其視頻流的cdn節(jié)點發(fā)送數(shù)據(jù)包,統(tǒng)計所述cdn節(jié)點返回的響應(yīng)包,即可得到丟包率,例如,在一預(yù)設(shè)時間段內(nèi),主播端向所述cdn節(jié)點發(fā)送了100個數(shù)據(jù)包,所述主播端接收到95個所述cdn節(jié)點返回的響應(yīng)包,即丟包率為5%;以及,主播端還可每隔第五預(yù)設(shè)時間間隔或響應(yīng)于主播用戶對帶寬的檢測操作,檢測其與接收其視頻流的cdn節(jié)點之間的帶寬大小。主播端根據(jù)檢測得到的丟包率和帶寬大小生成鏈路質(zhì)量信息并上傳至服務(wù)端。作為可選地,主播端將鏈路質(zhì)量信息上傳至服務(wù)端時,還可在所述鏈路質(zhì)量信息中攜帶上主播端信息以及cdn節(jié)點信息。
服務(wù)端可將主播端上傳的鏈路質(zhì)量信息存儲在其對應(yīng)的數(shù)據(jù)庫中。在服務(wù)端接收到同一主播端上傳來的新的鏈路質(zhì)量信息時,以新的鏈路質(zhì)量信息替代掉服務(wù)端數(shù)據(jù)庫中舊的鏈路質(zhì)量信息。用于判定cdn節(jié)點是否異常的后臺服務(wù)器可實時從所述數(shù)據(jù)庫中獲取主播端上傳的鏈路質(zhì)量信息。
在上述步驟202中,若所述鏈路質(zhì)量信息中的丟包率大于第七閾值和/或所述帶寬大小小于第八閾值,則可判斷出所述cdn節(jié)點需要切換至第二備選cdn節(jié)點,以使所述第二備選cdn節(jié)點接收所述直播間視頻流;其中,所述接收所述直播間視頻流的cdn節(jié)點與所述第二備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
若事先為所述直播間只配置了兩家cdn,當其中一家cdn節(jié)點出現(xiàn)異常時,則只能選擇另一家cdn提供的cdn節(jié)點作為第一備選cdn節(jié)點。若事先為所述直播間配置了n家cdn(n>2),當其中一家cdn節(jié)點出現(xiàn)異常,則可從剩下的多家cdn中隨意選擇一家cdn或是選擇一家服務(wù)質(zhì)量最好的cdn提供的cdn節(jié)點作為第二備選cdn節(jié)點。
本發(fā)明實施例提供的技術(shù)方案中,綜合觀眾端上傳來的視頻卡頓信息、觀眾端與cdn節(jié)點之間的鏈路質(zhì)量信息以及基于彈幕信息分析得到的視頻播放流暢度等多個方面可準確判斷出cdn節(jié)點是否異常。一旦cdn節(jié)點出現(xiàn)異常,將連接在異常cdn節(jié)點上的觀眾端自動切換至其他cdn提供商的cdn節(jié)點上,可見,本發(fā)明并不是為某個直播間綁定某一家cdn,而是事先為直播間配置多家cdn,這樣,在某家cdn出現(xiàn)問題時,切換至其他家cdn,降低了cdn故障對直播的影響。
圖3為本發(fā)明一實施例提供的一實施例提供的內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點切換裝置的結(jié)構(gòu)示意圖。該裝置包括:獲取模塊301、評估模塊302、確定模塊303以及切換模塊304。
獲取模塊301,用于獲取通過同一內(nèi)容分發(fā)網(wǎng)絡(luò)cdn節(jié)點接入同一直播間的至少一個觀眾端上傳的視頻卡頓信息以及通過同一所述cdn節(jié)點接入所述直播間的各觀眾端與所述cdn節(jié)點之間的鏈路質(zhì)量信息。
評估模塊302,用于根據(jù)通過所述cdn節(jié)點接入所述直播間的各觀眾端上傳的彈幕信息,評估所述直播間的視頻播放流暢度。
確定模塊303,用于根據(jù)所述視頻卡頓信息、所述鏈路質(zhì)量信息以及評估的所述視頻播放流暢度,確定所述cdn節(jié)點是否異常。
切換模塊304,用于若異常,則將通過所述cdn節(jié)點接入所述直播間的所有觀眾端切換至第一備選cdn節(jié)點,以使所述觀眾端通過所述第一備選cdn節(jié)點獲取所述直播間的視頻流;其中,所述cdn節(jié)點與所述第一備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
可選地,所述評估模塊302,包括:
統(tǒng)計單元,用于統(tǒng)計所述各觀眾端上傳的彈幕信息中出現(xiàn)與預(yù)設(shè)詞庫中至少一個詞項詞義相同或相近的信息項的出現(xiàn)率。
評估單元,用于若所述出現(xiàn)率大于第一閾值,評估所述直播間的視頻播放流暢度為低流暢度。
可選地,所述視頻卡頓信息中包括卡頓率;所述鏈路質(zhì)量信息中包括丟包率和帶寬信息。
相應(yīng)地,所述確定模塊303,包括:
第一計算單元,用于根據(jù)通過所述cdn節(jié)點接入所述直播間的所有觀眾端的視頻卡頓信息中的卡頓率,計算出現(xiàn)卡頓率大于第二閾值的觀眾端占所有觀眾端的比例,以得到卡頓比。
第二計算單元,用于根據(jù)通過所述cdn節(jié)點接入所述直播間的所有觀眾端的鏈路質(zhì)量信息中包含的丟包率及帶寬信息,計算出現(xiàn)丟包率大于第三閾值和/或帶寬小于第四閾值的觀眾端占所有觀眾端的比例,以得到鏈路異常比。
判定單元,用于若所述卡頓比、所述鏈路異常比或所述播放流暢度滿足異常判定指標,則判定所述cdn節(jié)點為異常節(jié)點。
可選地,所述裝置,還包括:
選擇模塊,用于根據(jù)多個備選cdn服務(wù)提供方的畫像數(shù)據(jù),從所述多個備選cdn服務(wù)提供方中選出一個與所述cdn節(jié)點所屬同一地域和/或所屬同一網(wǎng)絡(luò)服務(wù)商的cdn節(jié)點作為所述第一備選cdn節(jié)點。
可選地,所述裝置,還包括:
所述獲取模塊,用于獲取所述直播間的主播端與接收所述直播間視頻流的cdn節(jié)點之間的鏈路質(zhì)量信息。
判斷模塊,用于根據(jù)所述鏈路質(zhì)量信息,判斷是否需要將接收所述直播間視頻流的cdn節(jié)點切換至第二備選cdn節(jié)點,以使所述第二備選cdn節(jié)點接收所述直播間視頻流;其中,所述接收所述直播間視頻流的cdn節(jié)點與所述第二備選cdn節(jié)點屬于不同cdn服務(wù)提供方提供的兩個cdn節(jié)點。
所述裝置與前述的方法流程描述對應(yīng),不足之處參考上述方法流程的敘述,不再一一贅述。
本發(fā)明實施例提供的技術(shù)方案中,綜合觀眾端上傳來的視頻卡頓信息、觀眾端與cdn節(jié)點之間的鏈路質(zhì)量信息以及基于彈幕信息分析得到的視頻播放流暢度等多個方面可準確判斷出cdn節(jié)點是否異常。一旦cdn節(jié)點出現(xiàn)異常,將連接在異常cdn節(jié)點上的觀眾端自動切換至其他cdn提供商的cdn節(jié)點上,可見,本發(fā)明并不是為某個直播間綁定某一家cdn,而是事先為直播間配置多家cdn,這樣,在某家cdn出現(xiàn)問題時,切換至其他家cdn,降低了cdn故障對直播的影響。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。