一種視頻推送的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提出一種視頻推送的方法,包括:發(fā)送客戶端從業(yè)務(wù)服務(wù)器獲取客戶端信息列表,其中,所述客戶端信息列表中存儲(chǔ)連接所述業(yè)務(wù)服務(wù)器的所有客戶端的信息;所述發(fā)送客戶端根據(jù)所述客戶端信息列表,選擇接收視頻數(shù)據(jù)的接收客戶端;所述發(fā)送客戶端對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試,并記錄測(cè)試結(jié)果;所述發(fā)送客戶端根據(jù)所述測(cè)試結(jié)果,選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端。本發(fā)明的有益效果是所述服務(wù)器端支持高并發(fā)連接;所述發(fā)送客戶端和所述接收客戶端均通過定時(shí)心跳與所述服務(wù)器端保持長(zhǎng)連接并可隨時(shí)獲取相關(guān)數(shù)據(jù);支持所述客戶端之間通過UDP打洞技術(shù)繞開所述業(yè)務(wù)服務(wù)器傳輸數(shù)據(jù),減輕所述業(yè)務(wù)服務(wù)器壓力。
【專利說明】一種視頻推送的方法及系統(tǒng)
[0001]本發(fā)明請(qǐng)求本 申請(qǐng)人:于2013年5月2日向中國(guó)國(guó)家知識(shí)產(chǎn)權(quán)局提交的申請(qǐng)?zhí)枮镃N201310158406.8,發(fā)明名稱為“一種視頻推送的處理方法”的中國(guó)發(fā)明專利申請(qǐng)的優(yōu)先權(quán),上述申請(qǐng)的全部?jī)?nèi)容以引用方式并入本文。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明屬于多媒體【技術(shù)領(lǐng)域】,更具體地,涉及一種視頻推送的方法及系統(tǒng)。
【背景技術(shù)】
[0003]視頻推送是為了達(dá)到多個(gè)終端設(shè)備(包含TV、PC、手機(jī)等終端)進(jìn)行互動(dòng)的效果,可以在不同的終端上共享展示內(nèi)容,使用戶得到更好的體驗(yàn),豐富用戶的多媒體生活。
[0004]通常,實(shí)現(xiàn)視頻推送的的技術(shù)手段包括客戶端輪詢和阻塞的TCP/IP協(xié)議方式來實(shí)現(xiàn)??蛻舳溯喸兎绞?,是指發(fā)送客戶端將數(shù)據(jù)推送至服務(wù)器,接收客戶端隔一段時(shí)間就去服務(wù)器查詢是否有推送數(shù)據(jù),如果有數(shù)據(jù)推送,則獲取數(shù)據(jù);但是間隔多長(zhǎng)時(shí)間去輪詢存在問題,間隔太短,連續(xù)不斷的請(qǐng)求會(huì)增加服務(wù)器壓力,間隔太長(zhǎng),服務(wù)器上的新數(shù)據(jù)就需要越多的時(shí)間才能到達(dá)接收客戶端,用戶體驗(yàn)差。阻塞的TCP/IP協(xié)議方式,是發(fā)送客戶端通過TCP與服務(wù)器通信,連接不關(guān)閉,發(fā)送客戶端給服務(wù)器發(fā)送數(shù)據(jù),服務(wù)器主動(dòng)推送數(shù)據(jù)給接收客戶端,其特點(diǎn)是多線程處理多個(gè)連接,每個(gè)線程擁有自己的棧空間并占用CPU時(shí)間,每個(gè)線程遇到外部未準(zhǔn)備好的時(shí)候,都會(huì)被阻塞掉,阻塞的結(jié)果就是會(huì)帶來大量的進(jìn)程上下文切換,影響服務(wù)器的性能,且不能支持高并發(fā)連接數(shù)。
[0005]201210303365.2號(hào)專利申請(qǐng)公開了一種多屏互動(dòng)系統(tǒng)和方法,其多屏系統(tǒng)均通過TCP與服務(wù)器保持長(zhǎng)連接,使用的是傳統(tǒng)的Socket連接,占用內(nèi)存較大,支持的連接數(shù)較少;其多屏系統(tǒng)中服務(wù)器會(huì)主動(dòng)分發(fā)設(shè)備列表,終端獲取設(shè)備列表后會(huì)主動(dòng)與所有設(shè)備列表中設(shè)備進(jìn)行直連測(cè)試,而不是根據(jù)用戶實(shí)際使用情況,選擇性的進(jìn)行操作,占用較大的帶寬,給服務(wù)器和客戶端帶來較大壓力。
【發(fā)明內(nèi)容】
[0006]為解決上述問題,使得發(fā)送客戶端能夠隨時(shí)將數(shù)據(jù)推送至服務(wù)器,接收客戶端能及時(shí)接收推送數(shù)據(jù),客戶端能夠占用服務(wù)器更少的內(nèi)存,服務(wù)器支持高并發(fā)連接,本發(fā)明提出了以下技術(shù)方案:一種視頻推送的方法,包括如下步驟:
發(fā)送客戶端從業(yè)務(wù)服務(wù)器獲取客戶端信息列表,其中,所述客戶端信息列表中存儲(chǔ)連接所述業(yè)務(wù)服務(wù)器的所有客戶端的信息;
所述發(fā)送客戶端根據(jù)所述客戶端信息列表,選擇接收視頻數(shù)據(jù)的接收客戶端;
所述發(fā)送客戶端對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試,并記錄測(cè)試結(jié)果;
所述發(fā)送客戶端根據(jù)所述測(cè)試結(jié)果,選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端。
[0007]優(yōu)選的是,所述發(fā)送客戶端從業(yè)務(wù)服務(wù)器獲取客戶端信息列表具體為:所述發(fā)送客戶端定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包,與所述業(yè)務(wù)服務(wù)器建立連接;所述發(fā)送客戶端接收所述業(yè)務(wù)服務(wù)器在判斷所述發(fā)送客戶端為長(zhǎng)連接狀態(tài)后向所述發(fā)送客戶端發(fā)送客戶端信息列表,所述客戶端信息列表存儲(chǔ)有與所述業(yè)務(wù)服務(wù)器連接的所有客戶端的信息;所述發(fā)送客戶端存儲(chǔ)接收到的客戶端信息列表。
[0008]優(yōu)選的是,所述測(cè)試結(jié)果包括連接正常和連接失??;所述發(fā)送客戶端對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試后,將測(cè)試結(jié)果記錄在所述發(fā)送客戶端;所述步驟D具體為:當(dāng)所述測(cè)試結(jié)果為連接正常時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述接收客戶端;當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù)。
[0009]優(yōu)選的是,所述步驟D中,所述將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù),具體為:當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過TCP協(xié)議推送給所述業(yè)務(wù)服務(wù)器,由所述業(yè)務(wù)服務(wù)器再負(fù)責(zé)推送給所述接收客戶端。
[0010]優(yōu)選的是,所述步驟D中,在所述選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端之前,還包括:發(fā)送客戶端選擇待推送的視頻數(shù)據(jù),并根據(jù)所述視頻數(shù)據(jù)的版權(quán)屬性執(zhí)行終止推送或者執(zhí)行繼續(xù)推送。
[0011]一種視頻推送的裝置,應(yīng)用于發(fā)送客戶端,包括:
獲取模塊,用于從業(yè)務(wù)服務(wù)器獲取客戶端信息列表,其中,所述客戶端信息列表中存儲(chǔ)連接所述業(yè)務(wù)服務(wù)器的所有客戶端的信息;選擇模塊,用于根據(jù)所述客戶端信息列表,選擇接收視頻數(shù)據(jù)的接收客戶端;
測(cè)試模塊,用于對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試,并記錄測(cè)試結(jié)果;
推送模塊,用于根據(jù)所述測(cè)試結(jié)果,選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端。
[0012]優(yōu)選的是,所述獲取模塊具體用于:定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包,與所述業(yè)務(wù)服務(wù)器建立連接;并接收所述業(yè)務(wù)服務(wù)器在判斷所述發(fā)送客戶端為長(zhǎng)連接狀態(tài)后向所述發(fā)送客戶端發(fā)送客戶端信息列表,所述客戶端信息列表存儲(chǔ)有與所述業(yè)務(wù)服務(wù)器連接的所有客戶端的信息;以及,存儲(chǔ)接收到的客戶端信息列表。
[0013]優(yōu)選的是,所述測(cè)試結(jié)果包括連接正常和連接失敗;所述推送模塊進(jìn)一步包括:UDP推送單元,用于當(dāng)所述測(cè)試結(jié)果為連接正常時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述接收客戶端;間接推送單元,用于當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù)。
[0014]優(yōu)選的是,所述間接推送單元具體用于,當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過TCP協(xié)議推送給所述業(yè)務(wù)服務(wù)器,由所述業(yè)務(wù)服務(wù)器再負(fù)責(zé)推送給所述接收客戶端。
[0015]優(yōu)選的是,所述推送模塊還包括:版權(quán)屬性判斷單元,用于根據(jù)所述視頻數(shù)據(jù)的版權(quán)屬性執(zhí)行終止推送或者執(zhí)行繼續(xù)推送。
[0016]本申請(qǐng)還公開了一種視頻推送的系統(tǒng),所述系統(tǒng)包括至少一個(gè)發(fā)送客戶端、至少一個(gè)業(yè)務(wù)服務(wù)器和至少一個(gè)接收客戶端,所述業(yè)務(wù)服務(wù)器預(yù)先存儲(chǔ)有與其連接的至少一個(gè)接收客戶端的列表信息,并根據(jù)所述發(fā)送客戶端的請(qǐng)求反饋所述至少一個(gè)接收客戶端的列表信息;所述發(fā)送客戶端根據(jù)接收到的所述至少一個(gè)接收客戶端的列表信息,采用如權(quán)利要求I至5任一項(xiàng)所述的視頻推送的方法向所述接收客戶端推送視頻數(shù)據(jù)。
[0017]按照本發(fā)明的一種視頻推送的方法及系統(tǒng),所述發(fā)送客戶端和所述接收客戶端均通過定時(shí)心跳,確保與所述業(yè)務(wù)服務(wù)器保持在線狀態(tài),通過該技術(shù)手段能夠?qū)崿F(xiàn)所述業(yè)務(wù)服務(wù)器占用較少的內(nèi)存,支持高并發(fā)連接;所述發(fā)送客戶端和所述接收客戶端均監(jiān)聽所述業(yè)務(wù)服務(wù)器,可隨時(shí)獲取所述業(yè)務(wù)服務(wù)器相關(guān)數(shù)據(jù);當(dāng)所述發(fā)送客戶端向所述接收客戶端推送數(shù)據(jù)時(shí),首先測(cè)試兩者直連狀態(tài),若直連正常,可通過UDP打洞技術(shù)繞開所述業(yè)務(wù)服務(wù)器,實(shí)現(xiàn)所述發(fā)送客戶端和所述接收客戶端的直接通信,以能夠?qū)崿F(xiàn)減輕所述業(yè)務(wù)服務(wù)器壓力的目的。
【專利附圖】
【附圖說明】
[0018]圖1示出了按照本發(fā)明的視頻推送的方法一優(yōu)選實(shí)施例的流程示意圖;
圖2示出了按照本發(fā)明的視頻推送的方法的應(yīng)用架構(gòu)示意圖;
圖3示出了按照本發(fā)明的視頻推送的方法的圖2所示優(yōu)選實(shí)施例的TV客戶端流程示意圖;
圖4示出了按照本發(fā)明的視頻推送的方法的圖2所示優(yōu)選實(shí)施例的移動(dòng)客戶端流程示意圖;
圖5出了按照本發(fā)明的視頻推送的裝置的結(jié)構(gòu)示意圖;
圖6出了按照本發(fā)明的視頻推送的系統(tǒng)的功能組成示意圖。
【具體實(shí)施方式】
[0019]如圖1所示為按照本發(fā)明的視頻推送方法的一優(yōu)選實(shí)施例的流程示意圖。
[0020]步驟101,發(fā)送客戶端從業(yè)務(wù)服務(wù)器獲取客戶端信息列表信息。
[0021]在該步驟101中,所述業(yè)務(wù)服務(wù)器,用于存儲(chǔ)視頻資源信息,包括視頻簡(jiǎn)介、視頻ID、所屬專輯ID、用戶ID、視頻來源、視頻總時(shí)長(zhǎng)、觀看進(jìn)度、推送時(shí)間中至少一個(gè)。所述客戶端信息列表,用于存儲(chǔ)連接所述業(yè)務(wù)服務(wù)器的所有客戶端信息,包括客戶端IP、客戶端連接端口、客戶端名稱中至少一個(gè)。所述發(fā)送客戶端定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包,與所述業(yè)務(wù)服務(wù)器建立連接;所述發(fā)送客戶端接收所述業(yè)務(wù)服務(wù)器在判斷所述發(fā)送客戶端為長(zhǎng)連接狀態(tài)后向所述發(fā)送客戶端發(fā)送客戶端信息列表,所述客戶端信息列表存儲(chǔ)有與所述業(yè)務(wù)服務(wù)器連接的所有客戶端的信息。
[0022]步驟102,根據(jù)所述客戶端信息列表,選擇接收視頻數(shù)據(jù)的接收客戶端。
[0023]在該步驟102中,所述選擇接收視頻數(shù)據(jù)的接收客戶端,是根據(jù)所述客戶端信息列表中顯示的內(nèi)容,選擇所要將視頻信息推送的接收客戶端信息。如:根據(jù)客戶端信息列表中存儲(chǔ)的連接所述業(yè)務(wù)服務(wù)器的客戶端IP選擇接收視頻數(shù)據(jù)的接收客戶端。
[0024]步驟103,所述發(fā)送客戶端對(duì)所述接收客戶端進(jìn)行直連測(cè)試,并記錄測(cè)試結(jié)果。
[0025]在該步驟103中,所述直連測(cè)試,是所述發(fā)送客戶端根據(jù)所述用戶選擇的所述接收客戶端的IP、端口信息,直接對(duì)數(shù)據(jù)交換進(jìn)行測(cè)試。所述測(cè)試結(jié)果,分為連接正常和連接失敗兩種狀態(tài),并將所述測(cè)試結(jié)果記錄在所述發(fā)送客戶端。
[0026]步驟104,所述發(fā)送客戶端根據(jù)所述測(cè)試結(jié)果,選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端。所述發(fā)送客戶端將視頻數(shù)據(jù)信息直接推送給所述接收客戶端或者推送給所述業(yè)務(wù)服務(wù)器,并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù)。在該步驟104中,當(dāng)所述測(cè)試結(jié)果為連接正常時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述接收客戶端;當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù)。
[0027]所述將視頻數(shù)據(jù)信息直接推送,是根據(jù)所述測(cè)試結(jié)果為所述正常連接狀態(tài)的情況下,所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述接收客戶端,從而繞過所述服務(wù)器,緩解所述服務(wù)器壓力。所述推送給業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù),是根據(jù)所述測(cè)試結(jié)果為所述連接失敗狀態(tài)的情況,所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過TCP推送給所述業(yè)務(wù)服務(wù)器,由所述業(yè)務(wù)服務(wù)器再負(fù)責(zé)推送給所述接收客戶端。
[0028]在所述選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端之前,還包括:發(fā)送客戶端選擇待推送的視頻數(shù)據(jù),并根據(jù)所述視頻數(shù)據(jù)的版權(quán)屬性執(zhí)行終止推送或者執(zhí)行繼續(xù)推送。
[0029]圖2示出了按照本發(fā)明的視頻推送的方法的應(yīng)用架構(gòu)示意圖。
[0030]所述視頻推送,應(yīng)包含至少一個(gè)發(fā)送客戶端,一個(gè)接收客戶端,一臺(tái)業(yè)務(wù)服務(wù)器;所述發(fā)送客戶端與所述接收客戶端地位對(duì)等,可以互換。
[0031]所述業(yè)務(wù)服務(wù)器用于存儲(chǔ)視頻資源信息,包括視頻簡(jiǎn)介、視頻ID、所屬專輯ID、用戶ID、視頻來源、視頻總時(shí)長(zhǎng)、觀看進(jìn)度、推送時(shí)間中至少一個(gè)。
[0032]所述業(yè)務(wù)服務(wù)器還用于收集所述發(fā)送客戶端和所述接收客戶端設(shè)備信息,包括設(shè)備IP、設(shè)備端口、設(shè)備名稱,存儲(chǔ)于客戶端設(shè)備列表中中至少一個(gè)。
[0033]所述接收客戶端連接所述業(yè)務(wù)服務(wù)器,上報(bào)自身設(shè)備信息,并啟動(dòng)監(jiān)聽,隨時(shí)接收來自所述業(yè)務(wù)服務(wù)器端推送的視頻數(shù)據(jù)信息;為確保能與所述業(yè)務(wù)服務(wù)器保持長(zhǎng)連接,所述接收客戶端需定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包。
[0034]所述發(fā)送客戶端連接所述業(yè)務(wù)服務(wù)器,上報(bào)自身設(shè)備信息,并啟動(dòng)監(jiān)聽,隨時(shí)所述業(yè)務(wù)服務(wù)器端推送視頻數(shù)據(jù)信息;為確保能與所述業(yè)務(wù)服務(wù)器保持長(zhǎng)連接,所述發(fā)送客戶端需定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包。
[0035]所述發(fā)送客戶端連接所述業(yè)務(wù)服務(wù)器后,從所述業(yè)務(wù)服務(wù)器端下載所述客戶端設(shè)備列表。
[0036]所述發(fā)送客戶端選擇所要推送的所述接收客戶端后,首先進(jìn)行直連測(cè)試,若直連成功,在所述發(fā)送客戶端記錄與所述接收客戶端直連狀態(tài)為連接正常,并向所述接收客戶端直接推送視頻數(shù)據(jù);若直連失敗,在所述發(fā)送客戶端記錄與所述接收客戶端直連狀態(tài)為連接失敗,并向所述業(yè)務(wù)服務(wù)器推送視頻數(shù)據(jù)。
[0037]所述業(yè)務(wù)服務(wù)器接收視頻數(shù)據(jù)后,將所述視頻數(shù)據(jù)推送至所述接收客戶端。
[0038]如圖3所示,是按照本發(fā)明的視頻推送的方法的圖1所示步驟103的優(yōu)選實(shí)施例的TV客戶端與業(yè)務(wù)服務(wù)器進(jìn)行連接測(cè)試的流程示意圖。在該實(shí)施例中,接收客戶端為所述TV端。
[0039]步驟301,TV端調(diào)用用戶中心登陸。
[0040]在該步驟中,所述用戶中心,是用于管理用戶信息的處理功能模塊,可以進(jìn)行注冊(cè)、登陸、身份認(rèn)證操作。在所述TV端,輸入用戶名、口令信息,得到所述用戶中心驗(yàn)證,通過TCP方式登陸服務(wù)器。
[0041]步驟302,TV端請(qǐng)求并獲取服務(wù)器地址。
[0042]在該步驟中,所述TV端獲取得到所述服務(wù)器地址。
[0043]步驟303,TV端向服務(wù)器報(bào)告自身信息并啟動(dòng)監(jiān)聽,定時(shí)發(fā)送心跳數(shù)據(jù)包,確保與服務(wù)器建立長(zhǎng)連接。
[0044]在該步驟中,所述報(bào)告自身信息,將所述TV端IP、所述TV端連接端口、所述TV端名稱信息發(fā)送至所述服務(wù)器。所述定時(shí)發(fā)送,一般根據(jù)實(shí)際應(yīng)用,間隔時(shí)間選擇在30至40秒能滿足要求,對(duì)于實(shí)時(shí)性要求高的,間隔時(shí)間可選擇6秒至9秒。所述心跳包,是指所述TV端向所述服務(wù)器按照所述定時(shí)發(fā)送的簡(jiǎn)單信息,用于確定所述TV端是否處于連接狀態(tài);若在規(guī)定的時(shí)間段內(nèi),所述服務(wù)器端未收到所述TV端響應(yīng),則判斷所述TV端處于掉線狀態(tài)。所述保持長(zhǎng)連接,是通過所述心跳包確定所述TV端一直連接到所述服務(wù)器端,可與所述服務(wù)器端進(jìn)行數(shù)據(jù)交換。
[0045]如圖4所示,是按照本發(fā)明的視頻推送的方法的圖2所示的優(yōu)選實(shí)施例的移動(dòng)客戶端流程示意圖。在該實(shí)施例中,發(fā)送客戶端為所述移動(dòng)客戶端。
[0046]步驟401,移動(dòng)客戶端調(diào)用用戶中心登陸。
[0047]在該步驟中,所述用戶中心,是用于管理用戶信息的處理功能模塊,可以進(jìn)行注冊(cè)、登陸、身份認(rèn)證操作。在所述移動(dòng)客戶端,輸入用戶名、口令信息,得到所述用戶中心驗(yàn)證,通過TCP方式登陸服務(wù)器。
[0048]步驟402,移動(dòng)客戶端請(qǐng)求并獲取服務(wù)器地址。
[0049]在該步驟中,所述移動(dòng)客戶端獲取得到所述服務(wù)器地址。
[0050]步驟403,移動(dòng)客戶端向服務(wù)器報(bào)告自身信息并啟動(dòng)監(jiān)聽,定時(shí)發(fā)送心跳數(shù)據(jù)包,確保與服務(wù)器建立長(zhǎng)連接。
[0051]在該步驟中,所述報(bào)告自身信息,將所述移動(dòng)客戶端IP、所述移動(dòng)客戶端連接端口、所述移動(dòng)客戶端名稱信息發(fā)送至所述服務(wù)器。所述定時(shí)發(fā)送,一般根據(jù)實(shí)際應(yīng)用,間隔時(shí)間選擇在30至40秒能滿足要求,對(duì)于實(shí)時(shí)性要求高的,間隔時(shí)間可選擇6秒至9秒。所述心跳包,是指所述移動(dòng)客戶端向所述服務(wù)器按照所述定時(shí)發(fā)送的簡(jiǎn)單信息,用于確定所述移動(dòng)客戶端是否處于連接狀態(tài);若在規(guī)定的時(shí)間段內(nèi),所述服務(wù)器端未收到所述移動(dòng)客戶端響應(yīng),則判斷所述移動(dòng)客戶端處于掉線狀態(tài)。所述保持長(zhǎng)連接,是通過所述心跳包確定所述移動(dòng)客戶端一直連接到所述服務(wù)器端,可與所述服務(wù)器端進(jìn)行數(shù)據(jù)交換。
[0052]步驟404,移動(dòng)客戶端獲取服務(wù)器端設(shè)備列表。
[0053]在該步驟中,所述移動(dòng)客戶端獲取所述服務(wù)器端設(shè)備列表,用于獲取與所述服務(wù)器端連接的其他所述TV端信息,便于用戶選擇相應(yīng)的TV端。
[0054]步驟405,移動(dòng)客戶端選擇需播放的視頻。
[0055]在該步驟中,根據(jù)視頻簡(jiǎn)介信息,在所述移動(dòng)客戶端選擇所述用戶感興趣的視頻文件。
[0056]步驟406,判斷視頻TV版版權(quán)是否正版。
[0057]在該步驟中,根據(jù)視頻ID來進(jìn)行判斷,所述用戶選擇播放的視頻是否為正版視頻。[0058]步驟407,移動(dòng)客戶端,視頻播放頁面隱藏推送功能。
[0059]在該步驟中,根據(jù)所述視頻版權(quán)判斷,若為非正版視頻,則在所述視頻播放頁面中,將所述推送功能隱藏。
[0060]步驟408,移動(dòng)客戶端,視頻播放頁顯示推送功能。
[0061]在該步驟中,根據(jù)所述視頻版權(quán)判斷,若為正版視頻,則在所述視頻播放頁面中,將所述推送功能顯示。
[0062]步驟409,選擇向TV端推送。
[0063]在該步驟中,根據(jù)所述服務(wù)器端設(shè)備列表,選擇需要推送的所述TV端設(shè)備。
[0064]步驟410,移動(dòng)客戶端與TV端進(jìn)行直連測(cè)試。
[0065]在該步驟中,是所述移動(dòng)客戶端根據(jù)所述用戶選擇的所述TV端的IP、端口信息,直接對(duì)數(shù)據(jù)交換進(jìn)行測(cè)試。
[0066]步驟411,判斷是否直連成功。
[0067]在該步驟中,根據(jù)所述的直連測(cè)試,得到測(cè)試結(jié)果,判斷是否直連成功。
[0068]步驟412,移動(dòng)客戶端將視頻推送至服務(wù)器。
[0069]在該步驟中,是根據(jù)所述直連測(cè)試結(jié)果為連接失敗狀態(tài)的情況,所述移動(dòng)客戶端將所述視頻數(shù)據(jù)通過TCP推送給所述服務(wù)器。
[0070]步驟413,服務(wù)器將視頻推送至TV端。
[0071]在該步驟中,由所述服務(wù)器負(fù)責(zé)推送給所述TV端。
[0072]步驟414,TV端直接視頻數(shù)據(jù)。
[0073]在該步驟中,所述移動(dòng)客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述TV端,從而繞過所述服務(wù)器,緩解所述服務(wù)器壓力。
[0074]步驟415,若為收費(fèi)視頻,判斷是否有權(quán)限播放。
[0075]在該步驟中,根據(jù)視頻ID和用戶ID,判斷用戶是否有權(quán)限播放該視頻。
[0076]步驟416,調(diào)用通用付費(fèi)提示。
[0077]在該步驟中,由于所述收費(fèi)視頻用戶無權(quán)播放,將轉(zhuǎn)入付費(fèi)處理流程。
[0078]步驟417,TV版啟動(dòng)播放器,從推送播放進(jìn)度進(jìn)行續(xù)播。
[0079]在該步驟中,所述TV端接收到視頻數(shù)據(jù)后,根據(jù)視頻總長(zhǎng)、觀看進(jìn)度、推送時(shí)間,進(jìn)行在所述TV端的視頻播放。
[0080]如圖5所示為按照本發(fā)明的視頻推送裝置的示意圖。如圖5所示,所述視頻推送裝置包括:獲取模塊、測(cè)試模塊、推送模塊。
[0081]所述獲取模塊,用于從業(yè)務(wù)服務(wù)器獲取客戶端信息列表,其中,所述客戶端信息列表中存儲(chǔ)連接所述業(yè)務(wù)服務(wù)器的所有客戶端的信息;選擇模塊,用于根據(jù)所述客戶端信息列表,選擇接收視頻數(shù)據(jù)的接收客戶端;
所述所述獲取模塊具體用于:定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包,與所述業(yè)務(wù)服務(wù)器建立連接;并接收所述業(yè)務(wù)服務(wù)器在判斷所述發(fā)送客戶端為長(zhǎng)連接狀態(tài)后向所述發(fā)送客戶端發(fā)送客戶端信息列表,所述客戶端信息列表存儲(chǔ)有與所述業(yè)務(wù)服務(wù)器連接的所有客戶端的信息;以及,存儲(chǔ)接收到的客戶端信息列表。
[0082]所述測(cè)試模塊,用于對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試,并記錄測(cè)試結(jié)果;
所述推送模塊,用于根據(jù)所述測(cè)試結(jié)果,選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端。
[0083]所述推送模塊進(jìn)一步包括:UDP推送單元,用于當(dāng)所述測(cè)試結(jié)果為連接正常時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述接收客戶端;間接推送單元,用于當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù)。
[0084]所述間接推送單元具體用于,當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過TCP協(xié)議推送給所述業(yè)務(wù)服務(wù)器,由所述業(yè)務(wù)服務(wù)器再負(fù)責(zé)推送給所述接收客戶端。
[0085]推送模塊還包括:版權(quán)屬性判斷單元,用于根據(jù)所述視頻數(shù)據(jù)的版權(quán)屬性執(zhí)行終止推送或者執(zhí)行繼續(xù)推送。
[0086]圖6出了按照本發(fā)明的視頻推送的系統(tǒng)的功能組成示意圖。
[0087]本發(fā)明的系統(tǒng)包括至少一個(gè)發(fā)送客戶端、至少一個(gè)業(yè)務(wù)服務(wù)器和至少一個(gè)接收客戶端。所述發(fā)送客戶端包括定時(shí)器模塊、信息發(fā)送模塊、信息接收模塊、信息處理模塊和客戶端信息列表;所述業(yè)務(wù)服務(wù)器包括服務(wù)接收模塊、服務(wù)發(fā)送模塊、服務(wù)處理模塊和客戶端信息列表;所述接收客戶端包括定時(shí)器模塊、信息發(fā)送模塊、信息接收模塊、信息處理模塊和客戶端信息列表。
[0088]所述發(fā)送客戶端和所述接收客戶端,地位對(duì)等,是視頻信息發(fā)送和接收的主體。
[0089]所述業(yè)務(wù)服務(wù)器,用于存儲(chǔ)視頻資源信息,包括視頻簡(jiǎn)介、視頻ID、所屬專輯ID、用戶ID、視頻來源、視頻總時(shí)長(zhǎng)、觀看進(jìn)度、推送時(shí)間中至少一個(gè)。
[0090]所述定時(shí)器模塊,用于驅(qū)動(dòng)客戶端所述信息發(fā)送模塊按照預(yù)先定義的時(shí)間間隔向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包數(shù)據(jù)的功能。所述預(yù)先定義的時(shí)間間隔,一般根據(jù)實(shí)際應(yīng)用,間隔時(shí)間選擇在30至40秒能滿足要求,對(duì)于實(shí)時(shí)性要求高的,間隔時(shí)間選擇6秒至9秒。
[0091]所述心跳包,是指所述客戶端向所述業(yè)務(wù)服務(wù)器按照所述預(yù)先定義的時(shí)間間隔發(fā)送的簡(jiǎn)單信息,用于確定所述客戶端是否處于連接狀態(tài);若在規(guī)定的時(shí)間段內(nèi),所述業(yè)務(wù)服務(wù)器端未收到所述客戶端信息,則判斷所述客戶端處于掉線狀態(tài)。
[0092]所述信息發(fā)送模塊,具有主動(dòng)發(fā)送信息的功能。
[0093]所述信息接收模塊,具有主動(dòng)接收信息的功能。
[0094]所述信息處理模塊,具有處理所述客戶端信息的功能,包括對(duì)所述客戶端信息列表、所述信息發(fā)送模塊和所述信息接收模塊的信息的處理。
[0095]所述客戶端信息列表,用于收集存儲(chǔ)所連接的所述客戶端信息,包括客戶端IP、客戶端連接端口、客戶端名稱中至少一個(gè)信息。
[0096]所述服務(wù)發(fā)送模塊,是服務(wù)器端具有主動(dòng)將服務(wù)信息發(fā)送的功能。
[0097]所述服務(wù)接收模塊,是服務(wù)器端具有主動(dòng)接收服務(wù)信息的功能。
[0098]所述服務(wù)處理模塊,是服務(wù)器端具有處理所述服務(wù)器端信息的功能,包括對(duì)服務(wù)器端所述客戶端信息列表、所述服務(wù)發(fā)送模塊和所述服務(wù)接收模塊的信息的處理。
[0099]按照本發(fā)明的一種視頻推送的方法及系統(tǒng),所述發(fā)送客戶端和所述接收客戶端均通過定時(shí)心跳,確保與所述業(yè)務(wù)服務(wù)器保持在線狀態(tài),通過該技術(shù)手段能夠?qū)崿F(xiàn)所述業(yè)務(wù)服務(wù)器占用較少的內(nèi)存,支持高并發(fā)連接;所述發(fā)送客戶端和所述接收客戶端均監(jiān)聽所述業(yè)務(wù)服務(wù)器,可隨時(shí)獲取所述業(yè)務(wù)服務(wù)器相關(guān)數(shù)據(jù);當(dāng)所述發(fā)送客戶端向所述接收客戶端推送數(shù)據(jù)時(shí),首先測(cè)試兩者直連狀態(tài),若直連正常,可通過UDP打洞技術(shù)繞開所述業(yè)務(wù)服務(wù)器,實(shí)現(xiàn)所述發(fā)送客戶端和所述接收客戶端的直接通信,以能夠?qū)崿F(xiàn)減輕所述業(yè)務(wù)服務(wù)器壓力的目的。
[0100]因此,一種視頻推送的方法及系統(tǒng),使得發(fā)送客戶端能夠隨時(shí)將數(shù)據(jù)推送至服務(wù)器,接收客戶端能及時(shí)接收推送數(shù)據(jù),支持客戶端長(zhǎng)時(shí)間并發(fā)連接服務(wù)器,使得服務(wù)器占用較少的內(nèi)存并支持高并發(fā)連接,支持發(fā)送客戶端和接收客戶端通過直連,繞開服務(wù)器,從而能減輕服務(wù)器端壓力。
[0101]上述詳細(xì)描述通過實(shí)施例和/或示意圖闡明了系統(tǒng)和/或過程的各種實(shí)施例。就這些示意圖和/或包含一個(gè)或多個(gè)功能和/或操作而言,本領(lǐng)域技術(shù)人員將理解,這些示意圖或?qū)嵤├械拿恳粋€(gè)功能和/或操作都可由各種各樣的硬件、軟件、固件、或?qū)嶋H上其任意組合來單獨(dú)地和/或共同地實(shí)現(xiàn)。
[0102]應(yīng)該理解,本發(fā)明的方法中所涉及的硬件或軟件,可以采用任何現(xiàn)有技術(shù)中適用的硬件或軟件,或在適當(dāng)時(shí)結(jié)合兩者的組合來實(shí)現(xiàn)。因此,本發(fā)明的方法,可以采用包含在諸如軟盤、CD-ROM、硬盤驅(qū)動(dòng)器或任何其他機(jī)器可讀存儲(chǔ)介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式,其中,當(dāng)程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況下,計(jì)算設(shè)備通常包括處理器、該處理器可讀的存儲(chǔ)介質(zhì)(包括易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備、以及至少一個(gè)輸出設(shè)備。一個(gè)或多個(gè)程序可以例如,通過使用API,可重用控件等來實(shí)現(xiàn)或利用結(jié)合本發(fā)明描述的過程。這樣的程序優(yōu)選地用高級(jí)過程語言或面向?qū)ο缶幊陶Z言來實(shí)現(xiàn),以與計(jì)算機(jī)系統(tǒng)通信。然而,如果需要,該程序可以用匯編語言或機(jī)器語言來實(shí)現(xiàn)。在任何情形中,語言可以是編譯語言或解釋語言,且與硬件實(shí)現(xiàn)相結(jié)合。
[0103]需要說明的是,本發(fā)明的一種視頻推送的方法及系統(tǒng)方案的范疇包括但不限于上述各部分之間的任意組合。
[0104]盡管具體地參考其優(yōu)選實(shí)施例來示出并描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員可以理解,可以做出形式和細(xì)節(jié)上的各種改變而不脫離所附權(quán)利要求書中所述的本發(fā)明的范圍。以上結(jié)合本發(fā)明的具體實(shí)施例做了詳細(xì)描述,但并非是對(duì)本發(fā)明的限制。凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改,均仍屬于本發(fā)明技術(shù)方案的范圍。
【權(quán)利要求】
1.一種視頻推送的方法,其特征在于,包括如下步驟: 發(fā)送客戶端從業(yè)務(wù)服務(wù)器獲取客戶端信息列表,其中,所述客戶端信息列表中存儲(chǔ)連接所述業(yè)務(wù)服務(wù)器的所有客戶端的信息; 所述發(fā)送客戶端根據(jù)所述客戶端信息列表,選擇接收視頻數(shù)據(jù)的接收客戶端; 所述發(fā)送客戶端對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試,并記錄測(cè)試結(jié)果; 所述發(fā)送客戶端根據(jù)所述測(cè)試結(jié)果,選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端。
2.如權(quán)利要求1所述的視頻推送的方法,其特征在于,所述發(fā)送客戶端從業(yè)務(wù)服務(wù)器獲取客戶端信息列表具體為: 所述發(fā)送客戶端定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包,與所述業(yè)務(wù)服務(wù)器建立連接;所述發(fā)送客戶端接收所述業(yè)務(wù)服務(wù)器在判斷所述發(fā)送客戶端為長(zhǎng)連接狀態(tài)后向所述發(fā)送客戶端發(fā)送客戶端信息列表,所述客戶端信息列表存儲(chǔ)有與所述業(yè)務(wù)服務(wù)器連接的所有客戶端的信息; 所述發(fā)送客戶端存儲(chǔ)接收到的客戶端信息列表。
3.如權(quán)利要求1所述的視頻推送的方法,其特征在于,所述測(cè)試結(jié)果包括連接正常和連接失敗; 所述發(fā)送客戶端對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試后,將測(cè)試結(jié)果記錄在所述發(fā)送客戶端;` 所述步驟D具體為:當(dāng)所述測(cè)試結(jié)果為連接正常時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述接收客戶端;當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù)。
4.如權(quán)利要求3所述的視頻推送的方法,其特征在于,所述步驟D中,所述將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù),具體為: 當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過TCP協(xié)議推送給所述業(yè)務(wù)服務(wù)器,由所述業(yè)務(wù)服務(wù)器再負(fù)責(zé)推送給所述接收客戶端。
5.如權(quán)利要求1所述的視頻推送的方法,其特征在于,所述步驟D中,在所述選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端之前,還包括:發(fā)送客戶端選擇待推送的視頻數(shù)據(jù),并根據(jù)所述視頻數(shù)據(jù)的版權(quán)屬性執(zhí)行終止推送或者執(zhí)行繼續(xù)推送。
6.一種視頻推送的裝置,應(yīng)用于發(fā)送客戶端,其特征在于,包括: 獲取模塊,用于從業(yè)務(wù)服務(wù)器獲取客戶端信息列表,其中,所述客戶端信息列表中存儲(chǔ)連接所述業(yè)務(wù)服務(wù)器的所有客戶端的信息;選擇模塊,用于根據(jù)所述客戶端信息列表,選擇接收視頻數(shù)據(jù)的接收客戶端; 測(cè)試模塊,用于對(duì)選擇的接收客戶端進(jìn)行直連測(cè)試,并記錄測(cè)試結(jié)果; 推送模塊,用于根據(jù)所述測(cè)試結(jié)果,選擇相應(yīng)方式將視頻數(shù)據(jù)推送給所述接收客戶端。
7.如權(quán)利要求6所述的視頻推送的裝置,其特征在于,所述獲取模塊具體用于:定時(shí)向所述業(yè)務(wù)服務(wù)器發(fā)送心跳包,與所述業(yè)務(wù)服務(wù)器建立連接;并接收所述業(yè)務(wù)服務(wù)器在判斷所述發(fā)送客戶端為長(zhǎng)連接狀態(tài)后向所述發(fā)送客戶端發(fā)送客戶端信息列表,所述客戶端信息列表存儲(chǔ)有與所述業(yè)務(wù)服務(wù)器連接的所有客戶端的信息;以及,存儲(chǔ)接收到的客戶端信息列表。
8.如權(quán)利要求6所述的視頻推送的裝置,其特征在于,所述測(cè)試結(jié)果包括連接正常和連接失?。凰鐾扑湍K進(jìn)一步包括:UDP推送單元,用于當(dāng)所述測(cè)試結(jié)果為連接正常時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過UDP打洞技術(shù),直接推送給所述接收客戶端;間接推送單元,用于當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),將視頻數(shù)據(jù)推送給所述業(yè)務(wù)服務(wù)器并由所述業(yè)務(wù)服務(wù)器負(fù)責(zé)向所述接收客戶端推送數(shù)據(jù)。
9.如權(quán)利要求8所述的視頻推送的裝置,其特征在于,所述間接推送單元具體用于,當(dāng)所述測(cè)試結(jié)果為連接失敗時(shí),所述發(fā)送客戶端將所述視頻數(shù)據(jù)通過TCP協(xié)議推送給所述業(yè)務(wù)服務(wù)器,由所述業(yè)務(wù)服務(wù)器再負(fù)責(zé)推送給所述接收客戶端。
10.一種視頻推送的系統(tǒng),所述系統(tǒng)包括至少一個(gè)發(fā)送客戶端、至少一個(gè)業(yè)務(wù)服務(wù)器和至少一個(gè)接收客戶端,其特征在于,所述業(yè)務(wù)服務(wù)器預(yù)先存儲(chǔ)有與其連接的至少一個(gè)接收客戶端的列表信息,并根據(jù)所述發(fā)送客戶端的請(qǐng)求反饋所述至少一個(gè)接收客戶端的列表信息;所述發(fā)送客戶端根據(jù)接收到的所述至少一個(gè)接收客戶端的列表信息,采用如權(quán)利要求1至5任一項(xiàng)所述的視頻推送的方法向所述接收客戶端推送視頻數(shù)據(jù)。`
【文檔編號(hào)】H04N21/262GK103780927SQ201410021592
【公開日】2014年5月7日 申請(qǐng)日期:2014年1月17日 優(yōu)先權(quán)日:2013年5月2日
【發(fā)明者】馮志文, 李欣, 李磊, 苗壯, 李亮, 關(guān)佐龍, 張鳳愉, 張弘力, 賈躍亭, 袁斌, 高健明 申請(qǐng)人:樂視網(wǎng)信息技術(shù)(北京)股份有限公司