一種流媒體文件分發(fā)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種流媒體文件分發(fā)方法,包括:獲取流媒體文件的m3u8文件;確定對(duì)所述m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器;主動(dòng)將所述m3u8文件分發(fā)至所述邊緣服務(wù)器;本發(fā)明實(shí)施例還提供一種流媒體文件分發(fā)系統(tǒng);實(shí)現(xiàn)了服務(wù)器實(shí)時(shí)將獲得的m3u8文件下發(fā)至相應(yīng)的邊緣服務(wù)器,同時(shí)消除了丟片的可能性,大大提升了用戶的播放體驗(yàn)。
【專利說明】
一種流媒體文件分發(fā)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及流媒體技術(shù)領(lǐng)域,尤其涉及一種流媒體文件分發(fā)方法及系統(tǒng)。
【背景技術(shù)】
[0002]HLS(Http live streaming)協(xié)議是蘋果公司實(shí)現(xiàn)的基于超文本傳輸協(xié)議Http的流媒體傳輸協(xié)議,HLS協(xié)議將容量巨大的連續(xù)媒體數(shù)據(jù)進(jìn)行分段,分割為數(shù)量眾多的小文件進(jìn)行傳遞,迎合了網(wǎng)頁服務(wù)器的文件傳輸性,并采用一個(gè)不斷更新的輕量級(jí)索引文件來控制分割后小媒體文件的下載和播放,可以實(shí)現(xiàn)流媒體的直播和點(diǎn)播。HLS協(xié)議在優(yōu)先考慮流暢性的前提下支持碼率的自動(dòng)切換,目前被各大視頻網(wǎng)站廣泛使用。
[0003]通過HLS協(xié)議,視頻數(shù)據(jù)經(jīng)處理后分為視頻片段ts文件以及媒體數(shù)據(jù)索引m3u8文件,并存在于云服務(wù)器上。m3u8文件實(shí)際上只是一種文件組的組織形式,將視頻片段ts文件以播放列表的形式組織在一起以供多媒體播放器下載播放。m3u8文件中通常包括視頻片段的多個(gè)統(tǒng)一資源定位符URL。多媒體播放器獲取m3u8文件后,進(jìn)而按照其中的URL下載對(duì)應(yīng)的視頻片段并進(jìn)行播放。客戶端播放HLS內(nèi)容的過程,本質(zhì)上是分別下載索引文件和分片文件的過程。
[0004]在現(xiàn)有技術(shù)中,流媒體播放系統(tǒng)中一般包括中心服務(wù)器和多個(gè)邊緣服務(wù)器,客戶端需要根據(jù)從邊緣服務(wù)器端查詢最新的m3u8文件以獲取最新的播放信息。通常,需要中心服務(wù)器將m3u8文件下發(fā)至邊緣服務(wù)器,對(duì)于實(shí)現(xiàn)流媒體文件的下發(fā)主要如下幾個(gè)步驟:首先,制作m3u8文件及視頻片段ts文件,并存儲(chǔ)上述m3u8文件至中心服務(wù)器上;然后,邊緣服務(wù)器通過不斷地輪詢中心服務(wù)器獲取最新的m3u8文件及視頻片段ts文件;最后,客戶端輪詢邊緣服務(wù)器獲取最新的m3u8文件并播放流媒體視頻文件。
[0005]在上述現(xiàn)有技術(shù)中通過各個(gè)服務(wù)器之間的輪詢拉取m3u8文件以獲取流媒體文件的方法存在如下問題:
[0006]首先,由于邊緣服務(wù)器輪詢中心服務(wù)器下載更新m3u8文件存在輪詢間隔的問題,增大了邊緣服務(wù)器更新m3u8文件的延遲;再者,由于邊緣服務(wù)器不知道中心服務(wù)器的m3u8文件更新時(shí)間,盲目輪詢中心服務(wù)器造成了網(wǎng)絡(luò)帶寬資源的浪費(fèi);然后,當(dāng)邊緣服務(wù)器所接收的請(qǐng)求增多時(shí),邊緣服務(wù)器向中心服務(wù)器輪詢的次數(shù)也會(huì)增多致使中心服務(wù)器的壓力嚴(yán)重增大,此外由于邊緣服務(wù)器所接收的請(qǐng)求會(huì)越來越多,邊緣服務(wù)器單機(jī)部署的流也會(huì)相應(yīng)地增多,致使邊緣服務(wù)器的服務(wù)能力也大大受限;在一種情況下,當(dāng)中心服務(wù)器的m3u8文件的更新間隔小于邊緣服務(wù)器輪詢的間隔時(shí),邊緣服務(wù)器出現(xiàn)丟片的幾率就會(huì)大大增加。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例提供一種流媒體文件分發(fā)方法及系統(tǒng),用以解決上述現(xiàn)有技術(shù)中所闡述的至少一個(gè)技術(shù)問題。
[0008]本發(fā)明實(shí)施例提供一種流媒體文件分發(fā)方法,其特征在于,包括:
[0009]獲取流媒體文件的m3u8文件;
[0010]確定對(duì)所述m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器;
[0011 ]主動(dòng)將所述m3u8文件分發(fā)至所述邊緣服務(wù)器。
[0012]本發(fā)明實(shí)施例還提供一種流媒體文件分發(fā)系統(tǒng),其特征在于,包括:
[0013]流媒體獲取單元,用于獲取流媒體文件的m3u8文件;
[0014]目標(biāo)服務(wù)器確定單元,用于確定對(duì)所述m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器;
[0015]主動(dòng)分發(fā)單元,用于主動(dòng)將所述m3u8文件分發(fā)至所述邊緣服務(wù)器。
[0016]通過本發(fā)明實(shí)施例提供的流媒體文件分發(fā)方法及系統(tǒng),實(shí)現(xiàn)了將更新的m3u8文件下發(fā)至有需求的邊緣服務(wù)器;當(dāng)將本發(fā)明實(shí)施例應(yīng)用在中心服務(wù)器中時(shí),相比于現(xiàn)有技術(shù)中的服務(wù)器之間輪詢以獲取更新的m3u8文件,本發(fā)明實(shí)施例具有如下有益效果:
[0017]一方面,由于邊緣服務(wù)器不需要知道中心服務(wù)器的m3u8文件更新時(shí)間,邊緣服務(wù)器也不需要盲目輪詢中心服務(wù)器,大量節(jié)約了網(wǎng)絡(luò)帶寬資源的浪費(fèi);通過實(shí)際工作測(cè)試結(jié)果可知,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,假定中心服務(wù)器的更新的m3u8文件在1s后才生成,按照原有的服務(wù)器輪詢方案,下層服務(wù)器每間隔2s輪詢一次中心服務(wù)器,每次獲取三塊m3u8,則在1s內(nèi)需要傳輸15片m3u8,而在本實(shí)施例方法中只需要傳輸I片m3u8,則在這1s內(nèi)所節(jié)省的帶寬率高達(dá)(15-1)/15 = 93%;
[0018]另一方面,相比與現(xiàn)有技術(shù)中的邊緣服務(wù)器間隔輪詢中心服務(wù)器,理論上消除了丟片的可能性,大大提升了用戶的流媒體播放體驗(yàn)。
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1示出的是本發(fā)明一實(shí)施例的流媒體文件分發(fā)方法的流程圖;
[0021]圖2示出了圖1所示方法中的S12步驟的一種具體執(zhí)行方式的詳細(xì)執(zhí)行圖;
[0022]圖3示出的是本發(fā)明一實(shí)施例的流媒體文件分發(fā)系統(tǒng)的結(jié)構(gòu)示意圖;
[0023]圖4示出的是本發(fā)明另一實(shí)施例的流媒體文件分發(fā)系統(tǒng)的結(jié)構(gòu)示意圖;
[0024]圖5示出的是本發(fā)明還一實(shí)施例的流媒體文件分發(fā)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0025]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0026]參見圖1示出的是本發(fā)明一實(shí)施例的流媒體文件分發(fā)方法的流程圖,包括:
[0027]SI I:獲取流媒體文件的m3u8文件;
[0028]S12:確定對(duì)m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器;
[0029]S13:主動(dòng)將m3u8文件分發(fā)至邊緣服務(wù)器。
[0030]作為進(jìn)一步的優(yōu)化,在上述S13步驟之后還可以包括:上述邊緣服務(wù)器根據(jù)所接收的m3u8文件在目標(biāo)邊緣服務(wù)器本地緩存上述更新的m3u8文件及上述m3u8文件所對(duì)應(yīng)的ts文件。
[0031]通過本發(fā)明實(shí)施例提供的流媒體文件分發(fā)方法,實(shí)現(xiàn)了將更新的m3u8文件下發(fā)至有需求的邊緣服務(wù)器,當(dāng)將本發(fā)明實(shí)施例應(yīng)用在中心服務(wù)器中時(shí),相比于現(xiàn)有技術(shù)中的服務(wù)器之間輪詢以獲取更新的m3u8文件,本發(fā)明實(shí)施例具有如下有益效果:
[0032]一方面,由于邊緣服務(wù)器不需要知道中心服務(wù)器的m3u8文件更新時(shí)間,邊緣服務(wù)器也不需要盲目輪詢中心服務(wù)器,大量節(jié)約了網(wǎng)絡(luò)帶寬資源的浪費(fèi);通過實(shí)際工作測(cè)試結(jié)果可知,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,中層服務(wù)器和下層服務(wù)器對(duì)應(yīng)于本發(fā)明實(shí)施例方法中的邊緣服務(wù)器,假定中心服務(wù)器的更新的m3u8文件在1s后才生成,按照原有的服務(wù)器輪詢方案,下層服務(wù)器每間隔2s輪詢一次中心服務(wù)器,每次獲取三塊m3u8,則在1s內(nèi)需要傳輸15片m3u8,而在本實(shí)施例方法中只需要傳輸I片m3u8,則在這1s內(nèi)所節(jié)省的帶寬率高達(dá)(15-1)/15 = 93% ;
[0033]另一方面,相比與現(xiàn)有技術(shù)中的邊緣服務(wù)器間隔輪詢中心服務(wù)器,理論上消除了丟片的可能性,大大提升了用戶的流媒體播放體驗(yàn)。
[0034]作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,獲取流媒體文件的m3u8文件包括生成流媒體文件的m3u8文件或接收流媒體文件的m3u8文件。
[0035]關(guān)于本發(fā)明實(shí)施例方法的應(yīng)用,不限于中心服務(wù)器,同樣也可以是與上述邊緣服務(wù)器連接的邊緣服務(wù)器;當(dāng)將本發(fā)明實(shí)施例方法應(yīng)用在邊緣服務(wù)器時(shí),實(shí)現(xiàn)了多個(gè)邊緣服務(wù)器之間共享更新的m3u8文件,使得邊緣服務(wù)器無需訂閱中心服務(wù)器便可以獲取所需求的更新m3u8文件,減輕了對(duì)中心服務(wù)器的壓力,例如,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,中層服務(wù)器和下層服務(wù)器對(duì)應(yīng)于本發(fā)明實(shí)施例方法中的邊緣服務(wù)器,中心服務(wù)器只要向中層服務(wù)器傳送更新的m3u8文件,不需要向下層服務(wù)器傳送更新的m3u8文件;作為邊緣服務(wù)器的中層服務(wù)器和下層服務(wù)器之間共享更新的m3u8文件,相比于下層服務(wù)器直接查詢中心服務(wù)器降低了對(duì)中心服務(wù)器的壓力,同時(shí)也降低了下層服務(wù)器獲得更新的m3u8文件的延時(shí)。
[0036]作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,參見圖2,作為圖1所示實(shí)施例方法的進(jìn)一步優(yōu)化,關(guān)于圖1中的步驟S12的執(zhí)行,可以包括如下子步驟:
[0037]S121:根據(jù)m3u8文件的描述信息確定相應(yīng)的流媒體文件的節(jié)目信息;
[0038]S122:查詢至少包含節(jié)目信息和對(duì)應(yīng)的邊緣服務(wù)器ID的節(jié)目訂閱列表,基于確定的相應(yīng)的流媒體文件的節(jié)目信息,確定對(duì)m3u8文件有訂閱服務(wù)需求的相應(yīng)的邊緣服務(wù)器ID0
[0039]關(guān)于本發(fā)明實(shí)施例方法的應(yīng)用,不限于中心服務(wù)器,同樣也可以是與上述邊緣服務(wù)器連接的邊緣服務(wù)器;通過本優(yōu)選實(shí)施例方法,實(shí)現(xiàn)了當(dāng)存在多個(gè)邊緣服務(wù)器時(shí),m3u8文件在內(nèi)容分發(fā)網(wǎng)絡(luò)中的定向發(fā)送。
[0040]作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,關(guān)于圖2中的步驟S122的執(zhí)行,可以包括:
[0041]節(jié)目訂閱列表基于邊緣服務(wù)器的服務(wù)訂閱請(qǐng)求生成,服務(wù)訂閱請(qǐng)求中至少包含邊緣服務(wù)器ID和訂閱節(jié)目的節(jié)目信息。
[0042]作為一種優(yōu)化,在上述步驟節(jié)目訂閱列表基于邊緣服務(wù)器的服務(wù)訂閱請(qǐng)求生成之前還包括:中心服務(wù)器接收自邊緣服務(wù)器的服務(wù)訂閱請(qǐng)求。
[0043]當(dāng)將本發(fā)明實(shí)施例方法應(yīng)用在內(nèi)容分發(fā)網(wǎng)絡(luò)的中心服務(wù)器時(shí),邊緣服務(wù)器向中心服務(wù)器的訂閱相應(yīng)的流媒體文件,中心服務(wù)器將符合邊緣服務(wù)器訂閱請(qǐng)求的流媒體文件傳輸給邊緣服務(wù)器,實(shí)現(xiàn)了 m3u8文件在內(nèi)容分發(fā)網(wǎng)絡(luò)中的按需分配。
[0044]作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,以TCP長(zhǎng)連接的通信方式主動(dòng)將m3u8文件分發(fā)至邊緣服務(wù)器。
[0045]應(yīng)當(dāng)解釋的是,接收邊緣服務(wù)器所發(fā)送的服務(wù)訂閱請(qǐng)求與傳輸m3u8文件可以是兩個(gè)彼此獨(dú)立的通信單元分別執(zhí)行的,例如將本發(fā)明實(shí)施例方法應(yīng)用于中心服務(wù)器中,一方面中心服務(wù)器的長(zhǎng)連接通信單元專用于傳輸m3u8文件,另有一請(qǐng)求接收單元用于接收自邊緣服務(wù)器的服務(wù)訂閱請(qǐng)求;另一方面,接收服務(wù)訂閱請(qǐng)求與傳輸m3u8文件可以是由同一個(gè)通信單元分別執(zhí)行的,比如中心服務(wù)器的長(zhǎng)連接通信單元既可以用于接收m3u8文件也又可以用來接收邊緣服務(wù)器所發(fā)送的服務(wù)訂閱請(qǐng)求。
[0046]關(guān)于本發(fā)明實(shí)施例方法的應(yīng)用,不限于中心服務(wù)器,同樣也可以是與上述邊緣服務(wù)器連接的其他的邊緣服務(wù)器。通過本發(fā)明實(shí)施例方法實(shí)現(xiàn)了實(shí)時(shí)將m3u8文件下發(fā)至有需求的邊緣服務(wù)器,本發(fā)明實(shí)施例方法具有如下有益效果:
[0047]首先,由于中心服務(wù)器和中心服務(wù)器下的邊緣服務(wù)器之間的建立了 TCP長(zhǎng)連接,保障了中心服務(wù)器能夠?qū)崟r(shí)將已更新的m3u8文件下發(fā)至邊緣服務(wù)器,大大降低了邊緣服務(wù)器更新m3u8文件的延遲,通過實(shí)際工作測(cè)試結(jié)果可知,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,本發(fā)明實(shí)施例中的邊緣服務(wù)器包含了中層服務(wù)器和下層服務(wù)器,下層服務(wù)器獲取一片m3u8文件的理論最大分發(fā)延遲從6s變?yōu)槿龑覶CP連接的RTT(具體與服務(wù)器之間的鏈路有關(guān)),平均分發(fā)時(shí)延大小在Is之內(nèi),通信延遲時(shí)間降低了不小于83% ;
[0048]然后,由于中心服務(wù)器和邊緣服務(wù)器之間是通過TCP長(zhǎng)連接實(shí)時(shí)通信傳輸m3u8文件的,在邊緣服務(wù)器的本地所存儲(chǔ)的m3u8文件便是最新的m3u8文件,當(dāng)邊緣服務(wù)器接收到用戶訪問請(qǐng)求時(shí)也無需查詢中心服務(wù)器,大大減少了中心服務(wù)器的壓力,同時(shí)也減少了邊緣服務(wù)器單機(jī)部署的流,消除了現(xiàn)有的套接字性能瓶頸,大大提高了邊緣服務(wù)器的服務(wù)能力,通過實(shí)際工作測(cè)試測(cè)試結(jié)果可知,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,單臺(tái)下層服務(wù)器所能處理的訪問請(qǐng)求數(shù)量的上限提升了不小于10倍。
[0049]作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,關(guān)于圖2中的步驟S122的進(jìn)一步優(yōu)化,根據(jù)節(jié)目信息建立與節(jié)目訂閱列表相關(guān)聯(lián)的連接池以優(yōu)化節(jié)目訂閱列表的查詢響應(yīng)速度。
[0050]數(shù)據(jù)連接是影響數(shù)據(jù)查詢效率的重要性能指標(biāo)之一,連接池正是針對(duì)這個(gè)問題提出來的,連接池是對(duì)某一數(shù)據(jù)庫所有連接的“緩沖池”,連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫連接,而再不是重新建立一個(gè);釋放空閑時(shí)間超過最大空閑時(shí)間的數(shù)據(jù)庫連接來避免因?yàn)闆]有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏,故連接池技術(shù)能明顯提高對(duì)數(shù)據(jù)庫操作的性能。
[0051 ]關(guān)于本實(shí)施例更具體地,中心服務(wù)器根據(jù)節(jié)目訂閱請(qǐng)求中所包含的節(jié)目信息生成連接,并將上述連接保持到連接池中。作為進(jìn)一步地優(yōu)化,根據(jù)中心服務(wù)器的處理能力和節(jié)目訂閱信息的數(shù)量,設(shè)置上述連接池中的連接的上限值以充分發(fā)揮連接池的工作性能。
[0052]通過建立連接池優(yōu)化節(jié)目訂閱列表的查詢響應(yīng)速度,縮短了匹配目標(biāo)邊緣服務(wù)器所消耗的時(shí)間,降低了查詢節(jié)目訂閱列表時(shí)對(duì)中心服務(wù)器資源的占用,同時(shí)也提高了中心服務(wù)器處理眾多服務(wù)訂閱請(qǐng)求的能力。
[0053]作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,m3u8文件的描述信息為媒資ID。
[0054]作為進(jìn)一步的優(yōu)化,訂閱節(jié)目的節(jié)目信息可以是媒資ID的類型;流媒體運(yùn)營商在部署服務(wù)器內(nèi)容分發(fā)網(wǎng)絡(luò)時(shí),可以利用不同的邊緣服務(wù)器處理不同的類型的媒資ID所對(duì)應(yīng)的流媒體資源,例如:利用內(nèi)容分發(fā)網(wǎng)絡(luò)中的A邊緣服務(wù)器處理綜藝類節(jié)目,當(dāng)解析確定新生成的m3u8文件的媒資ID(如:“蒙面歌王”、“超級(jí)女聲”等)屬于綜藝類標(biāo)識(shí)時(shí),中心服務(wù)器則將新生成的m3u8文件分發(fā)至A邊緣服務(wù)器。
[0055]作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,邊緣服務(wù)器為更新的m3u8文件添加時(shí)間偏移信息,并將上述更新m3u8文件封裝為符合流媒體協(xié)議的直播m3u8文件。更優(yōu)選地,時(shí)間偏移信息小于I小時(shí)。通過本發(fā)明實(shí)施例方法執(zhí)行流媒體文件直播,在理論上消除了丟片的可能性,大大提高了直播時(shí)的用戶體驗(yàn)。
[0056]在本發(fā)明的一種【具體實(shí)施方式】中,網(wǎng)絡(luò)分發(fā)網(wǎng)絡(luò)部署有三層服務(wù)器架構(gòu)(中心服務(wù)器-中層服務(wù)器-下層服務(wù)器),將中心服務(wù)器布置在靠近流媒體服務(wù)運(yùn)營商的地區(qū),例如:北京;將中層服務(wù)器布置在各級(jí)省會(huì)城市,例如:湖北武漢;將下層服務(wù)器布置在省會(huì)城市下一級(jí)的各地級(jí)市,例如:湖北仙桃。關(guān)于流媒體分發(fā)方法具體的實(shí)施,可以包括如下幾個(gè)步驟:
[0057]中層服務(wù)器向中心服務(wù)器發(fā)出訂閱命令,中心服務(wù)器根據(jù)上述訂閱命令關(guān)注相應(yīng)的節(jié)目信息,同時(shí),中層服務(wù)器將邊緣服務(wù)器的ip信息也發(fā)送至中心服務(wù)器,中心服務(wù)器記錄中層服務(wù)器的ip信息和其所關(guān)注的節(jié)目信息之間的對(duì)應(yīng)關(guān)系并存儲(chǔ)至服務(wù)訂閱列表;
[0058]生成包含節(jié)目信息的連接,并將該連接保持到線程池中;中心服務(wù)器的m3u8生產(chǎn)模塊1118_(^631:01'/1]13118_1311;[1(161'生產(chǎn)出來新的1]13118后,通過消息隊(duì)列將切片丨8文件所對(duì)應(yīng)的m3u8文件實(shí)時(shí)轉(zhuǎn)發(fā)給中心服務(wù)器的Receptor模塊;將中心服務(wù)器和中層服務(wù)器之間建立專門用于傳輸m3u8文件的TCP長(zhǎng)連接;
[0059]中心服務(wù)器的Receptor模塊統(tǒng)一將接收到的m3u8文件實(shí)時(shí)發(fā)布到連接池,連接池通過將m3u8的關(guān)鍵詞與服務(wù)訂閱列表中的節(jié)目信息做匹配,并進(jìn)一步將新m3u8文件通過TCP長(zhǎng)連接實(shí)時(shí)發(fā)送給相匹配的中層服務(wù)器;
[0000]中層服務(wù)器的Packager模塊中維護(hù)了通過對(duì)每一個(gè)節(jié)目對(duì)應(yīng)的I小時(shí)的歷史m3u8信息,實(shí)時(shí)將m3u8轉(zhuǎn)儲(chǔ)為時(shí)移信息及符合his協(xié)議的直播m3u8。
[0061]進(jìn)一步地,中層服務(wù)器以相同方式將該直播m3u8文件分發(fā)至訂閱了上述中層服務(wù)器的下層服務(wù)器,故在此不加以贅述。
[0062]通過實(shí)際的工作測(cè)試結(jié)果可知:下層服務(wù)器從中心服務(wù)器獲取一片m3u8文件的理論最大分發(fā)延遲從6s變?yōu)槿龑覶CP連接的RTT(具體與服務(wù)器之間的鏈路有關(guān)),平均分發(fā)時(shí)延大小在Is之內(nèi),通信延遲時(shí)間降低了不小于83% ;假定中心服務(wù)器的更新的m3u8文件在1s后才生成,按照原有的服務(wù)器輪詢方案,下層服務(wù)器每間隔2s輪詢一次中心服務(wù)器,每次獲取三塊m3u8,則在1s內(nèi)需要傳輸15片m3u8,而在本實(shí)施例方法中只需要傳輸I片m3u8,則在這1s內(nèi)所節(jié)省的帶寬率高達(dá)(15-1)/15 = 93%;單臺(tái)下層服務(wù)器所能處理的訪問請(qǐng)求數(shù)量的上限提升了不小于10倍。
[0063]參見圖3示出的是本發(fā)明一實(shí)施例的一種流媒體文件分發(fā)系統(tǒng)的結(jié)構(gòu)示意圖,包括:
[0064]流媒體獲取單元,用于獲取流媒體文件的m3u8文件;
[0065]目標(biāo)服務(wù)器確定單元,用于確定對(duì)m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器;
[0066]主動(dòng)分發(fā)單元,用于主動(dòng)將m3u8文件分發(fā)至邊緣服務(wù)器。
[0067]通過本發(fā)明實(shí)施例提供的流媒體文件分發(fā)系統(tǒng),實(shí)現(xiàn)了將更新的m3u8文件下發(fā)至有需求的邊緣服務(wù)器,當(dāng)將本發(fā)明實(shí)施例應(yīng)用在中心服務(wù)器中時(shí),相比于現(xiàn)有技術(shù)中的服務(wù)器之間輪詢以獲取更新的m3u8文件,本發(fā)明實(shí)施例具有如下有益效果:
[0068]—方面,由于邊緣服務(wù)器不需要知道中心服務(wù)器的m3u8文件更新時(shí)間,邊緣服務(wù)器也不需要盲目輪詢中心服務(wù)器,大量節(jié)約了網(wǎng)絡(luò)帶寬資源的浪費(fèi);通過實(shí)際工作測(cè)試結(jié)果可知,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,中層服務(wù)器和下層服務(wù)器對(duì)應(yīng)于本發(fā)明實(shí)施例方法中的邊緣服務(wù)器,假定中心服務(wù)器的更新的m3u8文件在1s后才生成,按照原有的服務(wù)器輪詢方案,下層服務(wù)器每間隔2s輪詢一次中心服務(wù)器,每次獲取三塊m3u8,則在1s內(nèi)需要傳輸15片m3u8,而在本實(shí)施例方法中只需要傳輸I片m3u8,則在這1s內(nèi)所節(jié)省的帶寬率高達(dá)(15-1)/15 = 93% ;
[0069]另一方面,相比與現(xiàn)有技術(shù)中的邊緣服務(wù)器間隔輪詢中心服務(wù)器,理論上消除了丟片的可能性,大大提升了用戶的流媒體播放體驗(yàn)。
[0070]作為本發(fā)明實(shí)施例系統(tǒng)的一種優(yōu)選實(shí)施方式,作為本發(fā)明實(shí)施例方法的一種優(yōu)選實(shí)施方式,繼續(xù)參見圖4,作為圖3所示實(shí)施例系統(tǒng)的進(jìn)一步優(yōu)化,圖3中的流媒體獲取單元為用于生成流媒體文件的m3u8文件流媒體生成單元;繼續(xù)參見圖5,作為圖3所示實(shí)施例系統(tǒng)的進(jìn)一步優(yōu)化,圖3中的流媒體獲取單元為用于接收流媒體文件的m3u8文件流媒體接收單元。
[0071]關(guān)于本發(fā)明實(shí)施例系統(tǒng)的應(yīng)用,不限于包含流媒體生成單元的中心服務(wù)器,同樣也可以是與上述邊緣服務(wù)器連接的包含流媒體接收單元的邊緣服務(wù)器;當(dāng)將本發(fā)明實(shí)施例方法應(yīng)用在邊緣服務(wù)器時(shí),實(shí)現(xiàn)了多個(gè)邊緣服務(wù)器之間共享更新的m3u8文件,使得邊緣服務(wù)器無需訂閱中心服務(wù)器便可以獲取所需求的更新m3u8文件,減輕了對(duì)中心服務(wù)器的壓力,例如,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,中層服務(wù)器和下層服務(wù)器對(duì)應(yīng)于本發(fā)明實(shí)施例方法中的邊緣服務(wù)器,中心服務(wù)器只要向中層服務(wù)器傳送更新的m3u8文件,不需要向下層服務(wù)器傳送更新的m3u8文件;作為邊緣服務(wù)器的中層服務(wù)器和下層服務(wù)器之間共享更新的m3u8文件,相比于下層服務(wù)器直接查詢中心服務(wù)器降低了對(duì)中心服務(wù)器的壓力,同時(shí)也降低了下層服務(wù)器獲得更新的m3u8文件的延時(shí)。
[0072]作為本發(fā)明實(shí)施例系統(tǒng)的一種優(yōu)選實(shí)施方式,目標(biāo)服務(wù)器確定單元用于根據(jù)m3u8文件的描述信息確定相應(yīng)的流媒體文件的節(jié)目信息;查詢至少包含節(jié)目信息和對(duì)應(yīng)的邊緣服務(wù)器ID的節(jié)目訂閱列表,基于確定的相應(yīng)的流媒體文件的節(jié)目信息,確定對(duì)m3u8文件有訂閱服務(wù)需求的相應(yīng)的邊緣服務(wù)器ID。
[0073]關(guān)于本發(fā)明實(shí)施例方法的應(yīng)用,不限于中心服務(wù)器,同樣也可以是與上述邊緣服務(wù)器連接的邊緣服務(wù)器;通過本優(yōu)選實(shí)施例方法,實(shí)現(xiàn)了當(dāng)存在多個(gè)邊緣服務(wù)器時(shí),m3u8文件在內(nèi)容分發(fā)網(wǎng)絡(luò)中的定向發(fā)送。
[0074]作為本發(fā)明實(shí)施例系統(tǒng)的一種優(yōu)選實(shí)施方式,目標(biāo)服務(wù)器確定單元包括:
[0075]節(jié)目訂閱列表生成模塊,用于根據(jù)邊緣服務(wù)器的服務(wù)訂閱請(qǐng)求生成節(jié)目訂閱列表,服務(wù)訂閱請(qǐng)求至少包含邊緣服務(wù)器ID和訂閱節(jié)目的節(jié)目信息。
[0076]作為進(jìn)一步優(yōu)化,還包括與節(jié)目訂閱列表生成模塊連接的請(qǐng)求接收模塊,用于接收邊緣服務(wù)器所發(fā)送的服務(wù)訂閱請(qǐng)求;
[0077]當(dāng)將本發(fā)明實(shí)施例方法應(yīng)用在內(nèi)容分發(fā)網(wǎng)絡(luò)的中心服務(wù)器時(shí),邊緣服務(wù)器向中心服務(wù)器的訂閱相應(yīng)的流媒體文件,中心服務(wù)器將符合邊緣服務(wù)器訂閱請(qǐng)求的流媒體文件傳輸給邊緣服務(wù)器,實(shí)現(xiàn)了 m3u8文件在內(nèi)容分發(fā)網(wǎng)絡(luò)中的按需分配。
[0078]作為本發(fā)明實(shí)施例系統(tǒng)的一種優(yōu)選實(shí)施方式,還包括:主動(dòng)分發(fā)單元采用TCP長(zhǎng)連接的通信方式。
[0079]應(yīng)當(dāng)解釋的是,請(qǐng)求接收模塊與主動(dòng)分發(fā)單元可以是彼此獨(dú)立執(zhí)行通信連接,主動(dòng)分發(fā)單元專用于TCP長(zhǎng)連接傳輸m3u8文件,請(qǐng)求接收模塊用于接收自邊緣服務(wù)器所發(fā)送的服務(wù)訂閱請(qǐng)求;此外,請(qǐng)求接收模塊也可以包含于主動(dòng)分發(fā)單元,主動(dòng)分發(fā)單元既可以用來接收邊緣服務(wù)器所發(fā)送的服務(wù)訂閱請(qǐng)求也可以用于TCP長(zhǎng)連接傳輸m3u8文件。
[0080]關(guān)于本發(fā)明實(shí)施例系統(tǒng)的應(yīng)用,不限于中心服務(wù)器,同樣也可以是與上述邊緣服務(wù)器連接的邊緣服務(wù)器;通過本發(fā)明實(shí)施例方法實(shí)現(xiàn)了實(shí)時(shí)將m3u8文件下發(fā)至有需求的邊緣服務(wù)器,本發(fā)明實(shí)施例方法具有如下有益效果:
[0081]首先,由于中心服務(wù)器和中心服務(wù)器下的邊緣服務(wù)器之間的建立了 TCP長(zhǎng)連接,保障了中心服務(wù)器能夠?qū)崟r(shí)將已更新的m3u8文件下發(fā)至邊緣服務(wù)器,大大降低了邊緣服務(wù)器更新m3u8文件的延遲,通過實(shí)際工作測(cè)試結(jié)果可知,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,本發(fā)明實(shí)施例中的邊緣服務(wù)器包含了中層服務(wù)器和下層服務(wù)器,下層服務(wù)器從中心服務(wù)器獲取一片m3u8文件的理論最大分發(fā)延遲從6s變?yōu)槿龑覶CP連接的RTT(具體與服務(wù)器之間的鏈路有關(guān)),平均分發(fā)時(shí)延大小在Is之內(nèi),通信延遲時(shí)間降低了不小于83% ;
[0082]然后,由于中心服務(wù)器和邊緣服務(wù)器之間是通過TCP長(zhǎng)連接實(shí)時(shí)通信傳輸m3u8文件的,在邊緣服務(wù)器的本地所存儲(chǔ)的m3u8文件便是最新的m3u8文件,當(dāng)邊緣服務(wù)器接收到用戶訪問請(qǐng)求時(shí)也無需查詢中心服務(wù)器,大大減少了中心服務(wù)器的壓力,同時(shí)也減少了邊緣服務(wù)器單機(jī)部署的流,消除了現(xiàn)有的套接字性能瓶頸,大大提高了邊緣服務(wù)器的服務(wù)能力,通過實(shí)際工作測(cè)試測(cè)試結(jié)果可知,按照“中心服務(wù)器-中層服務(wù)器-下層服務(wù)器”的三層部署架構(gòu)下,單臺(tái)下層服務(wù)器所能處理的訪問請(qǐng)求數(shù)量的上限提升了不小于10倍。
[0083]作為本發(fā)明實(shí)施例系統(tǒng)的一種優(yōu)選實(shí)施方式,目標(biāo)服務(wù)器確定單元還包括:用于根據(jù)節(jié)目信息建立的連接池以優(yōu)化節(jié)目訂閱列表的查詢響應(yīng)速度。
[0084]通過建立連接池優(yōu)化節(jié)目訂閱列表的查詢響應(yīng)速度,縮短了匹配目標(biāo)邊緣服務(wù)器所消耗的時(shí)間,降低了查詢節(jié)目訂閱列表時(shí)對(duì)中心服務(wù)器資源的占用,同時(shí)也提高了中心服務(wù)器處理眾多服務(wù)訂閱請(qǐng)求的能力。
[0085]作為本發(fā)明實(shí)施例系統(tǒng)的一種優(yōu)選實(shí)施方式,m3u8文件的描述信息為媒資ID。
[0086]本發(fā)明實(shí)施例中可以通過硬件處理器來實(shí)現(xiàn)相關(guān)功能模塊和單元。
[0087]在本發(fā)明一方面的應(yīng)用上,本發(fā)明實(shí)施例系統(tǒng)適于應(yīng)用在流媒體內(nèi)容分發(fā)網(wǎng)絡(luò)的中心服務(wù)器和/或邊緣服務(wù)器中。從流媒體網(wǎng)站類型和運(yùn)營方向考慮,當(dāng)本發(fā)明實(shí)施例系統(tǒng)應(yīng)用在流媒體直播平臺(tái)或流媒體輪播平臺(tái)時(shí),能更顯著地提高直播或輪播時(shí)的響應(yīng)速度并優(yōu)化用戶體驗(yàn)。
[0088]以上所描述的裝置實(shí)施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
[0089]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0090]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種流媒體文件分發(fā)方法,其特征在于,包括: 獲取流媒體文件的m3u8文件; 確定對(duì)所述m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器; 主動(dòng)將所述m3u8文件分發(fā)至所述邊緣服務(wù)器。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取流媒體文件的m3u8文件包括生成流媒體文件的m3u8文件或接收流媒體文件的m3u8文件。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定對(duì)所述m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器包括: 根據(jù)所述m3u8文件的描述信息確定相應(yīng)于流媒體文件的節(jié)目信息; 查詢至少包含節(jié)目信息和對(duì)應(yīng)的邊緣服務(wù)器ID的節(jié)目訂閱列表,基于確定的所述相應(yīng)于流媒體文件的節(jié)目信息,確定對(duì)所述m3u8文件有訂閱服務(wù)需求的相應(yīng)的邊緣服務(wù)器ID。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述節(jié)目訂閱列表基于所述邊緣服務(wù)器的服務(wù)訂閱請(qǐng)求生成,所述服務(wù)訂閱請(qǐng)求中至少包含邊緣服務(wù)器ID和訂閱節(jié)目的節(jié)目信息。5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述主動(dòng)將所述m3u8文件分發(fā)至所述邊緣服務(wù)器包括: 以TCP長(zhǎng)連接的通信方式主動(dòng)將所述m3u8文件分發(fā)至所述邊緣服務(wù)器。6.一種流媒體文件分發(fā)系統(tǒng),其特征在于,包括: 流媒體獲取單元,用于獲取流媒體文件的m3u8文件; 目標(biāo)服務(wù)器確定單元,用于確定對(duì)所述m3u8文件有訂閱服務(wù)需求的邊緣服務(wù)器; 主動(dòng)分發(fā)單元,用于主動(dòng)將所述m3u8文件分發(fā)至所述邊緣服務(wù)器。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述流媒體獲取單元為用于生成流媒體文件的m3u8文件流媒體生成單元,或用于接收流媒體文件的m3u8文件流媒體接收單元。8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述目標(biāo)服務(wù)器確定單元用于根據(jù)所述m3u8文件的描述信息確定相應(yīng)于流媒體文件的節(jié)目信息;查詢至少包含節(jié)目信息和對(duì)應(yīng)的邊緣服務(wù)器ID的節(jié)目訂閱列表,基于確定的所述相應(yīng)于流媒體文件的節(jié)目信息,確定對(duì)所述m3u8文件有訂閱服務(wù)需求的相應(yīng)的邊緣服務(wù)器ID。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述目標(biāo)服務(wù)器確定單元包括: 節(jié)目訂閱列表生成模塊,用于根據(jù)所述邊緣服務(wù)器的服務(wù)訂閱請(qǐng)求生成節(jié)目訂閱列表,所述服務(wù)訂閱請(qǐng)求至少包含邊緣服務(wù)器ID和訂閱節(jié)目的節(jié)目信息。10.根據(jù)權(quán)利要求6-9任一項(xiàng)所述的系統(tǒng),其特征在于,所述主動(dòng)分發(fā)單元采用TCP長(zhǎng)連接的通信方式。
【文檔編號(hào)】H04N21/238GK105872856SQ201610162594
【公開日】2016年8月17日
【申請(qǐng)日】2016年3月21日
【發(fā)明人】劉斌
【申請(qǐng)人】樂視云計(jì)算有限公司