直播流傳輸方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)視頻技術(shù)領(lǐng)域,尤其涉及一種直播流傳輸方法和裝置。
【背景技術(shù)】
[0002]當(dāng)前各大視頻網(wǎng)站都在大力發(fā)展直播,業(yè)務(wù)范圍非常廣泛,用戶需求也更加多樣化。直播系統(tǒng)中用戶觀看體驗是最為關(guān)鍵的因素,而“流暢率”則是衡量用戶觀看體驗的重要指標(biāo)。流暢率表征播放的流暢度,其根據(jù)應(yīng)用場景不同可有不同的定義。例如,流暢率一般可以指所關(guān)注的播放總時長T減去期間發(fā)生卡頓(即播放停滯)的總時長Td所得的差與總時長T的比值。
[0003]不同于點播業(yè)務(wù),由于具備極高的實時性和短時效,直播業(yè)務(wù)通?!皶抑粫背霈F(xiàn)短時間請求驟增的情況,造成內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)服務(wù)器超負(fù)載而無法及時響應(yīng),使得客戶端播放出現(xiàn)“卡頓”現(xiàn)象,導(dǎo)致流暢率下降。
[0004]目前解決該問題有幾種方案。一種是為CDN擴(kuò)容,加大帶寬以保證質(zhì)量。然而這種方案將閑置大量的服務(wù)器和帶寬資源。例如直播系統(tǒng)中最高在線人數(shù)峰值可為平時最高在線人數(shù)的數(shù)百倍。然而出現(xiàn)峰值的概率較低,使用該方案卻需為直播系統(tǒng)持續(xù)提供滿足峰值的服務(wù)器和帶寬。對于帶寬成本占比較高的視頻網(wǎng)站而言,這種方案所帶來的冗余量過大的服務(wù)器和帶寬同樣難以承擔(dān)。
[0005]另一種方案是使用點對點數(shù)據(jù)傳輸(S卩P2P)算法來減輕CDN負(fù)載,節(jié)省帶寬。P2P算法,就是在觀看該直播節(jié)目的客戶端中,選擇具有一定上傳能力的客戶端Ll(數(shù)據(jù)提供方,或稱為上傳方),為其他客戶端L2(數(shù)據(jù)接收方,或稱為下載方)傳送數(shù)據(jù),從而使大量客戶端L2減少向CDN請求數(shù)據(jù),降低CDN負(fù)載及帶寬壓力。換言之,傳統(tǒng)CDN模式中,所有客戶端都直接從⑶N節(jié)點獲取直播數(shù)據(jù),而這種方案采用“⑶N+P2P”模式,根據(jù)傳輸算法的不同,客戶端L2有一定比例的數(shù)據(jù)來自客戶端LI,如圖1所示。
[0006]這種“CDN+P2P”模式具體來說,就是先對直播流碼率進(jìn)行判斷,在碼率較低的情況下(例如標(biāo)清直播流,碼率約400?600bps),采用P2P模式(即客戶端L2有一定比例的數(shù)據(jù)來自客戶端LI),對于碼率較高的情況下(例如高清或超清直播流,碼率約1000bps以上),采用全⑶N模式,如圖2所示。
[0007]上述方案在碼率相對較低的標(biāo)清直播下利用P2P算法可節(jié)省約80%的服務(wù)器和帶寬成本(即有總量約80%的直播流在終端之間互相傳輸),并有效提高了流暢率。然而,由于P2P算法針對高碼率直播流不僅節(jié)省帶寬成本較少,反而導(dǎo)致流暢率急劇下降,因此在高碼率直播場景中只能放棄使用P2P模式,而采用CDN模式。因此,在高清直播頻次增加或在線人數(shù)急劇增長時,這種方案仍然會選擇幾乎全部從CDN下載數(shù)據(jù),原有直播系統(tǒng)出現(xiàn)較為嚴(yán)重的帶寬負(fù)荷過高、CDN無法響應(yīng)等問題,同樣影響用戶正常觀看。
[0008]此外,當(dāng)某一場直播同時存在多種清晰度的流,或同一直播流因需要必須實時調(diào)整碼率時,支持單一低碼率的P2P算法就更加無法使用,因此這種方案已逐步無法適用于碼率多樣化的直播業(yè)務(wù)需求。
【發(fā)明內(nèi)容】
[0009]有鑒于此,本發(fā)明提出了一種直播流傳輸方法和裝置,其根據(jù)直播流碼率和客戶端狀態(tài)調(diào)整客戶端傳輸策略,在節(jié)省服務(wù)器和帶寬資源的同時保證了直播流暢度,克服了現(xiàn)有技術(shù)中的上述問題。
[0010]—方面,提出了一種直播流傳輸方法,該方法包括:獲取客戶端當(dāng)前狀態(tài);基于所獲取的客戶端當(dāng)前狀態(tài),統(tǒng)計處于卡頓狀態(tài)的客戶端數(shù)占客戶端總數(shù)的比率;在所述比率超過第一閾值的情況下,獲取直播流當(dāng)前碼率;以及在當(dāng)前碼率高于預(yù)定的碼率閾值情況下,通知客戶端調(diào)整傳輸策略以提高傳輸能力,并提高客戶端從內(nèi)容分發(fā)網(wǎng)絡(luò)CDN服務(wù)器獲取的直播流數(shù)據(jù)相對于以點對點數(shù)據(jù)傳輸P2P模式獲取的直播流數(shù)據(jù)的比例。
[0011]在一個示例中,該方法還包括:在所述比率超過第二閾值且低于第一閾值的情況下,重新選擇傳輸能力相對于其他客戶端更強(qiáng)的客戶端作為點對點數(shù)據(jù)傳輸中的數(shù)據(jù)提供方。
[0012]在一個示例中,該方法還包括:在所述比率超過第二閾值且低于第一閾值的情況下,為狀態(tài)為卡頓的客戶端分配更多的作為點對點數(shù)據(jù)傳輸P2P中的數(shù)據(jù)提供方的客戶端。
[0013]在一個示例中,客戶端當(dāng)前狀態(tài)包括:P2P上傳、P2P下載和卡頓其中之一。
[0014]在一個示例中,所述客戶端當(dāng)前狀態(tài)是客戶端根據(jù)其當(dāng)前傳輸方式、下載數(shù)據(jù)源、網(wǎng)絡(luò)狀況、與其他節(jié)點的連接狀況及播放狀況中的一個或多個來確定的。
[0015]另一方面,提出了一種直播流傳輸方法,該方法包括:發(fā)送客戶端當(dāng)前狀態(tài);接收基于所獲取的客戶端當(dāng)前狀態(tài)和直播流當(dāng)前碼率所生成的通知;以及在所述通知指示處于卡頓狀態(tài)的客戶端數(shù)占客戶端總數(shù)的比率超過第一閾值,且當(dāng)前碼率高于預(yù)定的碼率閾值情況下,調(diào)整客戶端傳輸策略以提高傳輸能力,并提高客戶端從內(nèi)容分發(fā)網(wǎng)絡(luò)CDN服務(wù)器獲取的直播流數(shù)據(jù)相對于以點對點數(shù)據(jù)傳輸P2P模式獲取的直播流數(shù)據(jù)的比例。
[0016]在一個示例中,客戶端當(dāng)前狀態(tài)包括:P2P上傳、P2P下載和卡頓其中之一。
[0017]在一個示例中,所述客戶端當(dāng)前狀態(tài)是客戶端根據(jù)其當(dāng)前傳輸方式、下載數(shù)據(jù)源、網(wǎng)絡(luò)狀況、與其他節(jié)點的連接狀況及播放狀況中的一個或多個來確定的。
[0018]另一方面,提出了一種直播流傳輸裝置,該裝置包括:用于獲取客戶端當(dāng)前狀態(tài)的部件;用于基于所獲取的客戶端當(dāng)前狀態(tài),統(tǒng)計處于卡頓狀態(tài)的客戶端數(shù)占客戶端總數(shù)的比率的部件;用于在所述比率超過第一閾值的情況下,獲取直播流當(dāng)前碼率的部件;以及用于在當(dāng)前碼率高于預(yù)定的碼率閾值情況下,通知客戶端調(diào)整傳輸策略以提高傳輸能力,并提高客戶端從內(nèi)容分發(fā)網(wǎng)絡(luò)CDN服務(wù)器獲取的直播流數(shù)據(jù)相對于以點對點數(shù)據(jù)傳輸P2P模式獲取的直播流數(shù)據(jù)的比例的部件。
[0019]在一個示例中,該裝置還包括:用于在所述比率超過第二閾值且低于第一閾值的情況下,重新選擇傳輸能力相對于其他客戶端更強(qiáng)的客戶端作為點對點數(shù)據(jù)傳輸中的數(shù)據(jù)提供方的部件。
[0020]在一個示例中,該裝置還包括:用于在所述比率超過第二閾值且低于第一閾值的情況下,為狀態(tài)為卡頓的客戶端分配更多的作為點對點數(shù)據(jù)傳輸P2P中的數(shù)據(jù)提供方的客戶端的部件。
[0021 ]在一個示例中,客戶端當(dāng)前狀態(tài)包括:P2P上傳、P2P下載和卡頓其中之一。
[0022]在一個示例中,所述客戶端當(dāng)前狀態(tài)是客戶端根據(jù)其當(dāng)前傳輸方式、下載數(shù)據(jù)源、網(wǎng)絡(luò)狀況、與其他節(jié)點的連接狀況及播放狀況中的一個或多個來確定的。
[0023]另一方面,提出了一種直播流傳輸裝置,該裝置包括:用于發(fā)送客戶端當(dāng)前狀態(tài)的部件;用于接收基于所獲取的客戶端當(dāng)前狀態(tài)和直播流當(dāng)前碼率所生成的通知的部件;以及用于在所述通知指示處于卡頓狀態(tài)的客戶端數(shù)占客戶端總數(shù)的比率超過第一閾值,且當(dāng)前碼率高于預(yù)定的碼率閾值情況下,調(diào)整客戶端傳輸策略以提高傳輸能力,并提高客戶端從內(nèi)容分發(fā)網(wǎng)絡(luò)CDN服務(wù)器獲取的直播流數(shù)據(jù)相對于以點對點數(shù)據(jù)傳輸P2P模式獲取的直播流數(shù)據(jù)的比例的部件。
[0024]在一個示例中,客戶端當(dāng)前狀態(tài)包括:P2P上傳、P2P下載和卡頓其中之一。
[0025]在一個示例中,所述客戶端當(dāng)前狀態(tài)是客戶端根據(jù)其當(dāng)前傳輸方式、下載數(shù)據(jù)源、網(wǎng)絡(luò)狀況、與其他節(jié)點的連接狀況及播放狀況中的一個或多個來確定的。
[0026]以上各方面是基于“CDN+P2P”的混合模式,但與現(xiàn)有技術(shù)不同的是,以上各方面并非簡單地根據(jù)碼率在CDN模式和P2P模式之間切換,也不是僅利用P2P模式進(jìn)行單一的低碼率直播流的傳輸。以上各方面根據(jù)客戶端的當(dāng)前狀態(tài)和直播流的當(dāng)前碼率來調(diào)整客戶端的傳輸策略,并且調(diào)整利用⑶N模式和P2P模式的傳輸比例,使得既可以使用P2P算法減輕⑶N負(fù)載,減少直播帶寬壓力,又能夠適用多種碼率的直播,保證直播流暢度。相對于現(xiàn)有方案,該實施例可以支持更多的碼率,提供更好的播放體驗,減輕CDN負(fù)載和帶寬壓力。直播開始時可以最大化地減輕服務(wù)器負(fù)載,保障用戶流暢播放,而當(dāng)某次直播流碼率臨時變化時,能快速調(diào)整參數(shù)、改變傳輸策略,在維持穩(wěn)定播放的前提下繼續(xù)節(jié)省帶寬成本。
[0027]根據(jù)下面參考附圖對示例性實施例的詳細(xì)說明,本發(fā)明的其它特征及方面將變得清楚。
【附圖說明】
[0028]包含在說明書中并且構(gòu)成說明書的一部分的附圖與說明書一起示出了本發(fā)明的示例性實施例、特征和方面,并且用于解釋本發(fā)明的原理。
[0029]圖1示出了⑶N+P2P模式的示意圖。
[0030]圖2示出了現(xiàn)有技術(shù)中直播流傳輸方法的流程圖。
[0031 ]圖3示出了根據(jù)本發(fā)明一實施例的直播流傳輸方法的流程圖。
[0032]圖4示出了根據(jù)本發(fā)明一實施例的直播流傳輸方法的流程圖。
[0033]圖5示出了根據(jù)本發(fā)明一實施例的直播流傳輸裝置的結(jié)構(gòu)框圖。
[0034]圖6示出了根據(jù)本發(fā)明一實施例的直播流傳輸裝置的結(jié)構(gòu)框圖。
[0035]圖7示出了根據(jù)本發(fā)明一實施例的直播流傳輸設(shè)備的結(jié)構(gòu)框圖。