一種分布式網(wǎng)絡(luò)電視直播方法、裝置、視頻網(wǎng)關(guān)及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及對(duì)媒體傳輸技術(shù)領(lǐng)域,具體涉及一種分布式網(wǎng)絡(luò)電視直播方法、裝置、視頻網(wǎng)關(guān)及系統(tǒng)。
【背景技術(shù)】
[0002]目前,大規(guī)模使用的網(wǎng)絡(luò)直播電視系統(tǒng)的實(shí)現(xiàn)方法主要有三種,第一種是由直播節(jié)目采集服務(wù)器將直播節(jié)目采集轉(zhuǎn)換成互聯(lián)網(wǎng)IP視頻流,再通過流媒體分發(fā)服務(wù)器集群構(gòu)成的內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)發(fā)送到接收終端。第二種是由電信運(yùn)營(yíng)商普遍采用的基于IP組播的直播電視,直播節(jié)目源通過若干支持組播協(xié)議的網(wǎng)絡(luò)裝置(包括路由器、交換機(jī)、寬帶接入裝置等),通過組播路由和組播復(fù)制功能分發(fā)到對(duì)應(yīng)的接收終端。第三種是采用P2P對(duì)等網(wǎng)技術(shù)實(shí)現(xiàn)的直播電視系統(tǒng),P2P直播系統(tǒng)中,直播節(jié)目源首先通過流服務(wù)器被發(fā)送給某個(gè)接收終端,然后此終端進(jìn)而將收到的節(jié)目數(shù)據(jù)轉(zhuǎn)發(fā)給另外一個(gè)需要收看相同頻道的終端,即實(shí)現(xiàn)了 Peer to Peer的對(duì)等傳送,流服務(wù)器在P2P系統(tǒng)中起到了“種子”節(jié)點(diǎn)的作用。
[0003]目前基于⑶N流媒體直播服務(wù)器的網(wǎng)絡(luò)直播電視系統(tǒng)的實(shí)現(xiàn)方法需要購(gòu)買大量服務(wù)器、占用大量IDC數(shù)據(jù)中心的帶寬,需要較高的運(yùn)營(yíng)費(fèi)用。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種分布式網(wǎng)絡(luò)電視直播方法、裝置、視頻網(wǎng)關(guān)及系統(tǒng),可較好地節(jié)省網(wǎng)絡(luò)直播電視系統(tǒng)的運(yùn)營(yíng)費(fèi)用,降低成本。
[0005]本發(fā)明實(shí)施例第一方面提供一種分布式網(wǎng)絡(luò)電視直播方法,包括:
[0006]獲取M個(gè)視頻網(wǎng)關(guān)的資源信息和頻道標(biāo)識(shí)集合,所述M為正整數(shù);
[0007]接收播放終端發(fā)送的攜帶所述播放終端的配置信息和針對(duì)目標(biāo)頻道標(biāo)識(shí)的播放命令的播放請(qǐng)求,所述目標(biāo)頻道標(biāo)識(shí)是所述頻道標(biāo)識(shí)集合中的一個(gè)頻道標(biāo)識(shí);
[0008]響應(yīng)所述播放請(qǐng)求,根據(jù)所述資源信息,在所述M個(gè)視頻網(wǎng)關(guān)中選擇一個(gè)視頻網(wǎng)關(guān)作為向所述播放終端提供視頻內(nèi)容傳輸服務(wù)的目標(biāo)視頻網(wǎng)關(guān);
[0009]向所述目標(biāo)視頻網(wǎng)關(guān)推送攜帶有所述播放終端的配置信息的視頻內(nèi)容推送請(qǐng)求,以使所述目標(biāo)視頻網(wǎng)關(guān)推送視頻內(nèi)容到所述播放終端。
[0010]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取M個(gè)視頻網(wǎng)關(guān)的資源信息和頻道標(biāo)識(shí)集合之前,所述方法還包括:
[0011]獲取M個(gè)視頻網(wǎng)關(guān)對(duì)應(yīng)的頻道標(biāo)識(shí)子集合;
[0012]基于所述M個(gè)頻道標(biāo)識(shí)子集合執(zhí)行并集操作以獲取所述頻道標(biāo)識(shí)集合,其中所述頻道標(biāo)識(shí)集合中的任意兩個(gè)頻道標(biāo)識(shí)互不相同。
[0013]在第一方面的第二種可能的實(shí)現(xiàn)方式中,
[0014]所述接收播放終端發(fā)送的攜帶所述播放終端的配置信息和針對(duì)目標(biāo)頻道標(biāo)識(shí)的播放命令的播放請(qǐng)求之前,所述方法還包括:
[0015]接收所述播放終端發(fā)送的頻道列表請(qǐng)求;
[0016]響應(yīng)所述頻道列表請(qǐng)求,向所述播放終端返回頻道列表數(shù)據(jù)。在第一方面的第三種可能的實(shí)現(xiàn)方式中,
[0017]所述向所述目標(biāo)視頻網(wǎng)關(guān)推送攜帶有所述播放終端的配置信息的視頻內(nèi)容推送請(qǐng)求之后,所述方法還包括:
[0018]在檢測(cè)所述目標(biāo)視頻網(wǎng)關(guān)向所述播放終端推送針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容推送成功的情況下,接收所述目標(biāo)視頻網(wǎng)關(guān)發(fā)送的推送成功指令和更新請(qǐng)求;
[0019]其中,所述更新請(qǐng)求攜帶所述目標(biāo)視頻網(wǎng)關(guān)的資源占用信息和直播收視信息;
[0020]響應(yīng)所述更新請(qǐng)求,更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息;
[0021 ] 在檢測(cè)所述目標(biāo)視頻網(wǎng)關(guān)向所述播放終端推送針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容推送失敗的情況下,接收所述目標(biāo)服務(wù)視頻網(wǎng)關(guān)發(fā)送的推送失敗指令;
[0022]響應(yīng)所述推送失敗指令,將所述推送失敗指令轉(zhuǎn)發(fā)至所述播放終端。
[0023]在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述響應(yīng)所述更新請(qǐng)求,所述網(wǎng)絡(luò)直播控制服務(wù)器更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息之后,還包括:
[0024]在檢測(cè)到所述播放終端發(fā)送退出直播請(qǐng)求的情況下,搜索所述目標(biāo)視頻網(wǎng)關(guān)的地址;
[0025]根據(jù)所述目標(biāo)視頻網(wǎng)關(guān)的地址,發(fā)送停止直播消息給所述目標(biāo)視頻網(wǎng)關(guān);
[0026]接收所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,根據(jù)所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息。
[0027]在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述響應(yīng)所述更新請(qǐng)求,所述網(wǎng)絡(luò)直播控制服務(wù)器更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息之后,還包括:
[0028]向所述播放終端周期發(fā)送測(cè)試包,所述測(cè)試包用于檢測(cè)所述播放終端是否在線;
[0029]檢測(cè)到所述播放終端不在線的情況下,發(fā)送停止直播消息給所述目標(biāo)視頻網(wǎng)關(guān);
[0030]接收所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,根據(jù)所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息。
[0031]本發(fā)明實(shí)施例第二方面提供一種分布式網(wǎng)絡(luò)電視直播裝置,包括:
[0032]第一獲取模塊,用于獲取M個(gè)視頻網(wǎng)關(guān)的資源信息和頻道標(biāo)識(shí)集合,所述M為正整數(shù);
[0033]第一接收模塊,用于接收播放終端發(fā)送的攜帶所述播放終端的配置信息和針對(duì)目標(biāo)頻道標(biāo)識(shí)的播放命令的播放請(qǐng)求,所述目標(biāo)頻道標(biāo)識(shí)是所述頻道標(biāo)識(shí)集合中的一個(gè)頻道標(biāo)識(shí);
[0034]選擇模塊,用于響應(yīng)所述播放請(qǐng)求,根據(jù)所述資源信息,在所述M個(gè)視頻網(wǎng)關(guān)中選擇一個(gè)視頻網(wǎng)關(guān)作為向所述播放終端提供視頻內(nèi)容傳輸服務(wù)的目標(biāo)視頻網(wǎng)關(guān);
[0035]推送模塊,用于向所述目標(biāo)視頻網(wǎng)關(guān)推送攜帶有所述播放終端的配置信息的視頻內(nèi)容推送請(qǐng)求。
[0036]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0037]第二獲取模塊,用于獲取所述M個(gè)視頻網(wǎng)關(guān)對(duì)應(yīng)的頻道標(biāo)識(shí)子集合;
[0038]去重模塊,用于基于M個(gè)頻道標(biāo)識(shí)子集合執(zhí)行并集操作以獲取所述頻道標(biāo)識(shí)集合,其中所述頻道標(biāo)識(shí)集合中的任意兩個(gè)頻道標(biāo)識(shí)互不相同。
[0039]在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0040]第二接收模塊,用于接收所述播放終端發(fā)送的頻道列表請(qǐng)求;
[0041]返回模塊,用于響應(yīng)所述頻道列表請(qǐng)求,向所述播放終端返回頻道列表數(shù)據(jù)。
[0042]在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0043]檢測(cè)模塊,用于檢測(cè)所述目標(biāo)視頻網(wǎng)關(guān)向所述播放終端推送針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容是否推送成功;
[0044]第三接收模塊,用于在檢測(cè)模塊檢測(cè)所述目標(biāo)視頻網(wǎng)關(guān)向所述播放終端推送針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容推送成功的情況下,接收所述目標(biāo)視頻網(wǎng)關(guān)發(fā)送的推送成功指令和更新請(qǐng)求;
[0045]其中,所述更新請(qǐng)求攜帶所述目標(biāo)視頻網(wǎng)關(guān)的資源占用信息和直播收視信息;
[0046]第一更新模塊,用于響應(yīng)所述更新請(qǐng)求,更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息。
[0047]第四接收模塊,用于在檢測(cè)模塊檢測(cè)所述目標(biāo)視頻網(wǎng)關(guān)向所述播放終端推送針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容推送失敗的情況下,接收所述目標(biāo)服務(wù)視頻網(wǎng)關(guān)發(fā)送的推送失敗指令;
[0048]轉(zhuǎn)發(fā)模塊,用于響應(yīng)所述推送失敗指令,將所述推送失敗指令轉(zhuǎn)發(fā)至所述播放終端。
[0049]在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0050]搜索模塊,用于在檢測(cè)到所述播放終端發(fā)送退出直播請(qǐng)求的情況下,搜索所述目標(biāo)視頻網(wǎng)關(guān)的地址;
[0051]第一發(fā)送模塊,用于根據(jù)所述目標(biāo)視頻網(wǎng)關(guān)的地址,發(fā)送停止直播消息給所述目標(biāo)視頻網(wǎng)關(guān);
[0052]第二更新模塊,用于接收所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,根據(jù)所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息。
[0053]在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0054]第二發(fā)送模塊,用于向所述播放終端周期發(fā)送測(cè)試包,所述測(cè)試包用于檢測(cè)所述播放終端是否在線;
[0055]第三發(fā)送模塊,用于在檢測(cè)到所述播放終端不在線的情況下,發(fā)送停止直播消息給所述目標(biāo)視頻網(wǎng)關(guān);
[0056]第三更新模塊,用于接收所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,根據(jù)所述目標(biāo)視頻網(wǎng)關(guān)反饋的操作結(jié)果,更新所述目標(biāo)視頻網(wǎng)關(guān)的所述資源占用信息和所述直播收視信息。
[0057]本發(fā)明實(shí)施例第三方面提供一種分布式網(wǎng)絡(luò)電視直播方法,所述方法包括:
[0058]視頻網(wǎng)關(guān)向所述服務(wù)器發(fā)送資源信息和頻道標(biāo)識(shí);
[0059]所述視頻網(wǎng)關(guān)響應(yīng)服務(wù)器推送的攜帶有所述播放終端的配置信息的視頻內(nèi)容推送請(qǐng)求,向所述播放終端推送視頻內(nèi)容。
[0060]結(jié)合本發(fā)明實(shí)施例第三方面,在本發(fā)明實(shí)施例的第三方面的第一種可能的實(shí)現(xiàn)方式中,所述向所述播放終端推送直播視頻內(nèi)容包括:
[0061]所述視頻網(wǎng)關(guān)檢測(cè)所述視頻網(wǎng)關(guān)正在推送的視頻內(nèi)容所對(duì)應(yīng)的頻道標(biāo)識(shí)中是否包括目標(biāo)頻道標(biāo)識(shí);
[0062]所述視頻網(wǎng)關(guān)在檢測(cè)到所述視頻網(wǎng)關(guān)正在推送的視頻內(nèi)容所對(duì)應(yīng)的頻道標(biāo)識(shí)中包括目標(biāo)頻道標(biāo)識(shí)的情況下,復(fù)制針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容,將所述針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容發(fā)送到所述播放終端;
[0063]所述視頻網(wǎng)關(guān)在檢測(cè)到所述視頻網(wǎng)關(guān)正在推送的視頻內(nèi)容所對(duì)應(yīng)的頻道標(biāo)識(shí)中不包括目標(biāo)頻道標(biāo)識(shí)的情況下,根據(jù)目標(biāo)頻道標(biāo)識(shí)調(diào)諧到預(yù)設(shè)DVB頻道,獲取所述DVB頻道提供的視頻數(shù)據(jù),處理所述視頻數(shù)據(jù)得到IP數(shù)據(jù)包,向所述播放終端發(fā)送IP數(shù)據(jù)包,以使得所述播放終端根據(jù)所述IP數(shù)據(jù)包播放所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容。
[0064]本發(fā)明實(shí)施例第四方面提供一種是視頻網(wǎng)關(guān),所述視頻網(wǎng)關(guān)包括:
[0065]發(fā)送單元,用于向所述服務(wù)器發(fā)送資源信息和頻道標(biāo)識(shí);
[0066]推送單元,用于響應(yīng)服務(wù)器推送的攜帶有所述播放終端的配置信息的視頻內(nèi)容推送請(qǐng)求,向所述播放終端推送視頻內(nèi)容。
[0067]在本發(fā)明實(shí)施例的第四方面的第一種可能的實(shí)現(xiàn)方式中,所述推送單元,具體用于:
[0068]檢測(cè)所述視頻網(wǎng)關(guān)正在推送的視頻內(nèi)容所對(duì)應(yīng)的頻道標(biāo)識(shí)中是否包括目標(biāo)頻道標(biāo)識(shí);
[0069]在檢測(cè)到所述視頻網(wǎng)關(guān)正在推送的視頻內(nèi)容所對(duì)應(yīng)的頻道標(biāo)識(shí)中包括目標(biāo)頻道標(biāo)識(shí)的情況下,復(fù)制針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容,將所述針對(duì)所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容發(fā)送到所述播放終端;
[0070]在檢測(cè)到所述視頻網(wǎng)關(guān)正在推送的視頻內(nèi)容所對(duì)應(yīng)的頻道標(biāo)識(shí)中不包括目標(biāo)頻道標(biāo)識(shí)的情況下,根據(jù)目標(biāo)頻道標(biāo)識(shí)調(diào)諧到預(yù)設(shè)DVB頻道,獲取所述DVB頻道提供的視頻數(shù)據(jù),處理所述視頻數(shù)據(jù)得到IP數(shù)據(jù)包,向所述播放終端發(fā)送IP數(shù)據(jù)包,以使得所述播放終端根據(jù)所述IP數(shù)據(jù)包播放所述目標(biāo)頻道標(biāo)識(shí)的視頻內(nèi)容。
[0071]本發(fā)明實(shí)施例第五方面提供一種分布式網(wǎng)絡(luò)電視直播系統(tǒng),包括:
[0072]播放終端,用于發(fā)送播放請(qǐng)求,所述播放請(qǐng)求中攜帶本播放終端的配置信息和針對(duì)目標(biāo)頻道標(biāo)識(shí)的播放命令;
[007