本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種視頻傳輸方法及系統(tǒng)。
背景技術(shù):
經(jīng)過近幾年的互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)的業(yè)務(wù)不斷增加,人們基于互聯(lián)網(wǎng)可以接觸到各種各樣的信息,網(wǎng)絡(luò)也成為人們?nèi)粘9ぷ骱蜕钪胁豢苫蛉钡囊徊糠?。比如,用戶可以利用互?lián)網(wǎng)收發(fā)工作郵件、進(jìn)行視頻會(huì)議等;或者,利用互聯(lián)網(wǎng)瀏覽新聞、聽音樂、購(gòu)物、訂餐、觀看視頻等。且隨著互聯(lián)網(wǎng)的不斷發(fā)展進(jìn)步,用戶通過實(shí)時(shí)傳輸視頻進(jìn)行播放視頻的情況也越來(lái)越多,但目前視頻傳輸通常采用TCP協(xié)議(Transmission Control Protocol:傳輸控制協(xié)議),但TCP協(xié)議傳輸?shù)臄?shù)據(jù)包比較大,且其有嚴(yán)格的傳輸檢測(cè),也即,如果在傳輸過程中丟失數(shù)據(jù)包則必須重傳;因此如果在網(wǎng)絡(luò)帶寬不好,或者終端的分辨率不高的情況下,并不能支持大數(shù)據(jù)包。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種視頻傳輸方法及系統(tǒng),將視頻的各個(gè)視頻幀拆分為多個(gè)小數(shù)據(jù)包進(jìn)行傳輸,且在視頻的傳輸過程中允許丟失部分?jǐn)?shù)據(jù)包而不要求重新傳輸,進(jìn)而保證了視頻傳輸?shù)姆€(wěn)定和流暢,提升了用戶體驗(yàn)。
本發(fā)明實(shí)施例提供一種視頻傳輸方法,包括:
獲取視頻文件的視頻幀,并將各所述視頻幀拆分為多個(gè)數(shù)據(jù)包;
通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位置;
在所述視頻幀的所有所述數(shù)據(jù)包傳輸完畢之后,檢測(cè)未傳輸成功的所述數(shù)據(jù)包數(shù)量是否超過預(yù)設(shè)閾值;
在未傳輸成功的所述數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值時(shí),將所有傳輸成功的所述數(shù)據(jù)包合并為視頻幀。
在一個(gè)實(shí)施例中,所述傳輸協(xié)議為HTTP傳輸協(xié)議。
在一個(gè)實(shí)施例中,所述方法還包括:
在未傳輸成功的所述數(shù)據(jù)包數(shù)量超過預(yù)設(shè)閾值時(shí),重新傳輸所述視頻幀中未傳輸成功的所述數(shù)據(jù)包或所述視頻幀的所有所述數(shù)據(jù)包。
在一個(gè)實(shí)施例中,所述通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位之前,包括:
根據(jù)當(dāng)前的網(wǎng)絡(luò)帶寬手動(dòng)調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。
在一個(gè)實(shí)施例中,所述通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位之前,還包括:
根據(jù)當(dāng)前網(wǎng)絡(luò)帶寬以及預(yù)設(shè)的數(shù)據(jù)傳輸表自動(dòng)配置每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。
對(duì)應(yīng)于以上實(shí)施例所提供的一種視頻傳輸方法,本發(fā)明實(shí)施例還提供了一種視頻傳輸系統(tǒng),包括:
拆分模塊,用于獲取視頻文件的視頻幀,并將各所述視頻幀拆分為多個(gè)數(shù)據(jù)包;
傳輸模塊,用于通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位置;
檢測(cè)模塊,用于在所述視頻幀的所有所述數(shù)據(jù)包傳輸完畢之后,檢測(cè)未傳輸成功的所述數(shù)據(jù)包數(shù)量是否超過預(yù)設(shè)閾值;
合并模塊,用于在未傳輸成功的所述數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值時(shí),將所有傳輸成功的所述數(shù)據(jù)包合并為視頻幀。
在一個(gè)實(shí)施例中,所述傳輸協(xié)議為HTTP傳輸協(xié)議。
在一個(gè)實(shí)施例中,所述系統(tǒng)還包括:
重傳模塊,用于在未傳輸成功的所述數(shù)據(jù)包數(shù)量超過預(yù)設(shè)閾值時(shí),重新傳輸所述視頻幀中未傳輸成功的所述數(shù)據(jù)包或所述視頻幀的所有所述數(shù)據(jù)包。
在一個(gè)實(shí)施例中,所述系統(tǒng)還包括:
手動(dòng)調(diào)整模塊,用于根據(jù)當(dāng)前的網(wǎng)絡(luò)帶寬手動(dòng)調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。
在一個(gè)實(shí)施例中,所述系統(tǒng)還包括:
自動(dòng)配置模塊,用于根據(jù)當(dāng)前網(wǎng)絡(luò)帶寬以及預(yù)設(shè)的數(shù)據(jù)傳輸表自動(dòng)配置每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。
以上實(shí)施例所描述的一種視頻傳輸方法及系統(tǒng),可以達(dá)到如下有益效果:獲取視頻文件的視頻幀,并將各所述視頻幀拆分為多個(gè)數(shù)據(jù)包;通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位置;在所述視頻幀的所有所述數(shù)據(jù)包傳輸完畢之后,檢測(cè)未傳輸成功的所述數(shù)據(jù)包數(shù)量是否超過預(yù)設(shè)閾值;在未傳輸成功的所述數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值時(shí),將所有傳輸成功的所述數(shù)據(jù)包合并為視頻幀。該方案將視頻的各個(gè)視頻幀拆分為多個(gè)小數(shù)據(jù)包進(jìn)行傳輸,且在視頻的傳輸過程中允許丟失部分?jǐn)?shù)據(jù)包而不要求重新傳輸,進(jìn)而保證了視頻傳輸?shù)姆€(wěn)定和流暢,提升了用戶體驗(yàn)。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說(shuō)明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
附圖說(shuō)明
附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的一種實(shí)施例的流程圖;
圖2為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的另一種實(shí)施例的流程圖;
圖3為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的又一種實(shí)施例的流程圖;
圖4為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的再一種實(shí)施例的流程圖;
圖5為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的一種實(shí)施例的框圖;
圖6為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的另一種實(shí)施例的框圖;
圖7為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的又一種實(shí)施例的框圖;
圖8為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的再一種實(shí)施例的框圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明公開的一實(shí)施例中提供了一種視頻傳輸方法,用以將視頻的各個(gè)視頻幀拆分為多個(gè)小數(shù)據(jù)包進(jìn)行傳輸,且在視頻的傳輸過程中允許丟失部分?jǐn)?shù)據(jù)包而不要求重新傳輸,進(jìn)而保證了視頻傳輸?shù)姆€(wěn)定和流暢,提升了用戶體驗(yàn)。如圖1所示,圖1為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的一種實(shí)施例的流程圖;本發(fā)明實(shí)施例中一種視頻傳輸方法包括步驟S10-S40:
在步驟S10中,獲取視頻文件的視頻幀,并將各所述視頻幀拆分為多個(gè)數(shù)據(jù)包;也即,在該實(shí)施例中,首先需要將將要進(jìn)行視頻傳輸?shù)囊曨l文件獲取到并將該視頻的每一幀視頻均分解為多個(gè)小數(shù)據(jù)包,該數(shù)據(jù)包的大小和每次傳輸?shù)乃鰯?shù)據(jù)包的數(shù)量可以根據(jù)預(yù)先設(shè)定的條件進(jìn)行調(diào)整,比如,在網(wǎng)絡(luò)帶寬允許時(shí),可以調(diào)大所述數(shù)據(jù)包的大小,而在網(wǎng)絡(luò)帶寬不允許時(shí),可以調(diào)小所述數(shù)據(jù)包的大小,從而令所述數(shù)據(jù)包在各種情況下均被允許進(jìn)行傳輸,且可以保證其傳輸速度可以流暢,從而在視頻播放時(shí)令觀眾觀看到的實(shí)時(shí)傳輸?shù)囊曨l是穩(wěn)定的??衫斫獾模谠撘曨l幀全部傳輸完成后,傳輸成功的所述數(shù)據(jù)包中,所有數(shù)據(jù)包可以合成一個(gè)高清視頻幀,而丟失了部分?jǐn)?shù)據(jù)包(在預(yù)設(shè)閾值內(nèi))之后的數(shù)據(jù)包可以合成一個(gè)標(biāo)清視頻幀。
在步驟S20中,通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位置;也即,在該實(shí)施例中,所述傳輸協(xié)議可以根據(jù)需要進(jìn)行設(shè)定,比如,在通常情況下,觀眾需要看到的是穩(wěn)定流暢的視頻播放,因此,在一個(gè)實(shí)施例中,所述傳輸協(xié)議為HTTP傳輸協(xié)議(Hyper Text Transfer Protocol:超文本傳輸協(xié)議);可理解的,HTTP傳輸協(xié)議更通用,其適合于更多的播放器和瀏覽器,且在本實(shí)施例中,HTTP傳輸協(xié)議當(dāng)發(fā)生數(shù)據(jù)包丟失的情況時(shí),可以允許不再重傳而直接在該狀態(tài)下默認(rèn)該幀視頻已經(jīng)完成傳輸,由于丟失的部分?jǐn)?shù)據(jù)包只是一幀視頻中數(shù)據(jù)的一部分,因此丟失的數(shù)據(jù)包的數(shù)量在預(yù)設(shè)閾值之內(nèi)時(shí),只是會(huì)使得視頻播放的清晰度下降,而不影響觀看,也即,優(yōu)先保證實(shí)時(shí)流暢,畫質(zhì)可以其次保證??衫斫獾?,在一些實(shí)施例中,在網(wǎng)絡(luò)帶寬允許且觀眾要求播放高清視頻時(shí),此時(shí)可以切換為采用TCP傳輸協(xié)議亦可。
在步驟S30中,在所述視頻幀的所有所述數(shù)據(jù)包傳輸完畢之后,檢測(cè)未傳輸成功的所述數(shù)據(jù)包數(shù)量是否超過預(yù)設(shè)閾值;也即,在數(shù)據(jù)包丟失超過預(yù)設(shè)閾值,比如全部丟失的情況下,此時(shí)肯定需要進(jìn)行重傳,因此首先需要檢測(cè)丟失的數(shù)據(jù)包數(shù)量有多少,是否超過預(yù)設(shè)閾值,可理解的,所述預(yù)設(shè)閾值可以根據(jù)觀看視頻的對(duì)象進(jìn)行設(shè)置;如果丟失的數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值,則可以將傳輸成功的多個(gè)數(shù)據(jù)包合并為視頻幀進(jìn)行播放;而如果丟失的數(shù)據(jù)包數(shù)量超過預(yù)設(shè)閾值,則說(shuō)明丟失的數(shù)據(jù)包過多,此時(shí)依舊需要進(jìn)行重傳以保證視頻播放。
在步驟S40中,在未傳輸成功的所述數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值時(shí),將所有傳輸成功的所述數(shù)據(jù)包合并為視頻幀。也即,當(dāng)丟失的數(shù)據(jù)包并未影響到視頻播放時(shí),可以直接在該情況下直接將數(shù)據(jù)包合成視頻幀進(jìn)行播放,以優(yōu)先保證視頻的播放流暢。
在一個(gè)實(shí)施例中,如圖2所示,圖2為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的另一種實(shí)施例的流程圖;所述方法的步驟S30之后還包括步驟S50:
在步驟S50中,在未傳輸成功的所述數(shù)據(jù)包數(shù)量超過預(yù)設(shè)閾值時(shí),重新傳輸所述視頻幀中未傳輸成功的所述數(shù)據(jù)包或所述視頻幀的所有所述數(shù)據(jù)包。也即,當(dāng)丟失的數(shù)據(jù)包以及超出預(yù)設(shè)閾值影響到視頻播放時(shí),在該情況下,需要進(jìn)行重傳以保證視頻播放,而重傳的方式可以有兩種,一種是只重傳丟失的那部分?jǐn)?shù)據(jù)包,另一種方式是將該視頻幀的所有拆分的數(shù)據(jù)包全部重傳。
在一個(gè)實(shí)施例中,如圖3所示,圖3為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的又一種實(shí)施例的流程圖;所述方法的步驟S20之前還包括步驟S60:
在步驟S60中,根據(jù)當(dāng)前的網(wǎng)絡(luò)帶寬手動(dòng)調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。也即,本實(shí)施例中,手動(dòng)調(diào)節(jié)的過程是采用了node(node.js)技術(shù)來(lái)進(jìn)行的,可以利用node技術(shù)來(lái)根據(jù)網(wǎng)絡(luò)帶寬情況來(lái)調(diào)整每次傳輸?shù)臄?shù)據(jù)包的數(shù)量和/或每個(gè)所述數(shù)據(jù)包的大小,node在本實(shí)施例中作為一個(gè)微型服務(wù)器,且其更新時(shí)不用安裝,可以運(yùn)用node實(shí)現(xiàn)p2p傳輸和繞開防火墻,運(yùn)用它來(lái)進(jìn)行調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小,高效穩(wěn)定,簡(jiǎn)單快捷。
在一個(gè)實(shí)施例中,如圖4所示,圖4為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸方法的再一種實(shí)施例的流程圖;所述方法的步驟S20之前還包括步驟S70:
在步驟S70中,根據(jù)當(dāng)前網(wǎng)絡(luò)帶寬以及預(yù)設(shè)的數(shù)據(jù)傳輸表自動(dòng)配置每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。也即,本實(shí)施例中,自動(dòng)配置的過程是采用了node(node.js)技術(shù)來(lái)進(jìn)行的,可以利用node技術(shù)來(lái)根據(jù)網(wǎng)絡(luò)帶寬情況來(lái)調(diào)整每次傳輸?shù)臄?shù)據(jù)包的數(shù)量和/或每個(gè)所述數(shù)據(jù)包的大小,node在本實(shí)施例中作為一個(gè)微型服務(wù)器,且其更新時(shí)不用安裝,可以運(yùn)用node實(shí)現(xiàn)p2p傳輸和繞開防火墻,運(yùn)用它來(lái)進(jìn)行調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小,高效穩(wěn)定,簡(jiǎn)單快捷。
以上實(shí)施例所描述的一種視頻傳輸方法及系統(tǒng),可以達(dá)到如下有益效果:獲取視頻文件的視頻幀,并將各所述視頻幀拆分為多個(gè)數(shù)據(jù)包;通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位置;在所述視頻幀的所有所述數(shù)據(jù)包傳輸完畢之后,檢測(cè)未傳輸成功的所述數(shù)據(jù)包數(shù)量是否超過預(yù)設(shè)閾值;在未傳輸成功的所述數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值時(shí),將所有傳輸成功的所述數(shù)據(jù)包合并為視頻幀。該方案將視頻的各個(gè)視頻幀拆分為多個(gè)小數(shù)據(jù)包進(jìn)行傳輸,且在視頻的傳輸過程中允許丟失部分?jǐn)?shù)據(jù)包而不要求重新傳輸,進(jìn)而保證了視頻傳輸?shù)姆€(wěn)定和流暢,提升了用戶體驗(yàn)。
對(duì)應(yīng)本發(fā)明實(shí)施例提供的一種視頻傳輸方法,本發(fā)明還提供了一種視頻傳輸系統(tǒng);如圖5所示,圖5為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的一種實(shí)施例的框圖;所述一種視頻傳輸系統(tǒng),包括:
拆分模塊61,用于獲取視頻文件的視頻幀,并將各所述視頻幀拆分為多個(gè)數(shù)據(jù)包;也即,在該實(shí)施例中,首先需要將將要進(jìn)行視頻傳輸?shù)囊曨l文件獲取到并將該視頻的每一幀視頻均分解為多個(gè)小數(shù)據(jù)包,該數(shù)據(jù)包的大小和每次傳輸?shù)乃鰯?shù)據(jù)包的數(shù)量可以根據(jù)預(yù)先設(shè)定的條件進(jìn)行調(diào)整,比如,在網(wǎng)絡(luò)帶寬允許時(shí),可以調(diào)大所述數(shù)據(jù)包的大小,而在網(wǎng)絡(luò)帶寬不允許時(shí),可以調(diào)小所述數(shù)據(jù)包的大小,從而令所述數(shù)據(jù)包在各種情況下均被允許進(jìn)行傳輸,且可以保證其傳輸速度可以流暢,從而在視頻播放時(shí)令觀眾觀看到的實(shí)時(shí)傳輸?shù)囊曨l是穩(wěn)定的。可理解的,在該視頻幀全部傳輸完成后,傳輸成功的所述數(shù)據(jù)包中,所有數(shù)據(jù)包可以合成一個(gè)高清視頻幀,而丟失了部分?jǐn)?shù)據(jù)包(在預(yù)設(shè)閾值內(nèi))之后的數(shù)據(jù)包可以合成一個(gè)標(biāo)清視頻幀。
傳輸模塊62,用于通過預(yù)設(shè)的傳輸協(xié)議將所述視頻幀的所有所述數(shù)據(jù)包傳輸至預(yù)設(shè)位置;也即,在該實(shí)施例中,所述傳輸協(xié)議可以根據(jù)需要進(jìn)行設(shè)定,比如,在通常情況下,觀眾需要看到的是穩(wěn)定流暢的視頻播放,因此,在一個(gè)實(shí)施例中,所述傳輸協(xié)議為HTTP傳輸協(xié)議(Hyper Text Transfer Protocol:超文本傳輸協(xié)議);可理解的,HTTP傳輸協(xié)議更通用,其適合于更多的播放器和瀏覽器,且在本實(shí)施例中,HTTP傳輸協(xié)議當(dāng)發(fā)生數(shù)據(jù)包丟失的情況時(shí),可以允許不再重傳而直接在該狀態(tài)下默認(rèn)該幀視頻已經(jīng)完成傳輸,由于丟失的部分?jǐn)?shù)據(jù)包只是一幀視頻中數(shù)據(jù)的一部分,因此丟失的數(shù)據(jù)包的數(shù)量在預(yù)設(shè)閾值之內(nèi)時(shí),只是會(huì)使得視頻播放的清晰度下降,而不影響觀看,也即,優(yōu)先保證實(shí)時(shí)流暢,畫質(zhì)可以其次保證。可理解的,在一些實(shí)施例中,在網(wǎng)絡(luò)帶寬允許且觀眾要求播放高清視頻時(shí),此時(shí)可以切換為采用TCP傳輸協(xié)議亦可。
檢測(cè)模塊63,用于在所述視頻幀的所有所述數(shù)據(jù)包傳輸完畢之后,檢測(cè)未傳輸成功的所述數(shù)據(jù)包數(shù)量是否超過預(yù)設(shè)閾值;也即,在數(shù)據(jù)包丟失超過預(yù)設(shè)閾值,比如全部丟失的情況下,此時(shí)肯定需要進(jìn)行重傳,因此首先需要檢測(cè)丟失的數(shù)據(jù)包數(shù)量有多少,是否超過預(yù)設(shè)閾值,可理解的,所述預(yù)設(shè)閾值可以根據(jù)觀看視頻的對(duì)象進(jìn)行設(shè)置;如果丟失的數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值,則可以將傳輸成功的多個(gè)數(shù)據(jù)包合并為視頻幀進(jìn)行播放;而如果丟失的數(shù)據(jù)包數(shù)量超過預(yù)設(shè)閾值,則說(shuō)明丟失的數(shù)據(jù)包過多,此時(shí)依舊需要進(jìn)行重傳以保證視頻播放。
合并模塊64,用于在未傳輸成功的所述數(shù)據(jù)包數(shù)量并未超過預(yù)設(shè)閾值時(shí),將所有傳輸成功的所述數(shù)據(jù)包合并為視頻幀。也即,當(dāng)丟失的數(shù)據(jù)包并未影響到視頻播放時(shí),可以直接在該情況下直接將數(shù)據(jù)包合成視頻幀進(jìn)行播放,以優(yōu)先保證視頻的播放流暢。
在一個(gè)實(shí)施例中,如圖6所示,圖6為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的另一種實(shí)施例的框圖;所述系統(tǒng)還包括:
重傳模塊65,用于在未傳輸成功的所述數(shù)據(jù)包數(shù)量超過預(yù)設(shè)閾值時(shí),重新傳輸所述視頻幀中未傳輸成功的所述數(shù)據(jù)包或所述視頻幀的所有所述數(shù)據(jù)包。也即,當(dāng)丟失的數(shù)據(jù)包以及超出預(yù)設(shè)閾值影響到視頻播放時(shí),在該情況下,需要進(jìn)行重傳以保證視頻播放,而重傳的方式可以有兩種,一種是只重傳丟失的那部分?jǐn)?shù)據(jù)包,另一種方式是將該視頻幀的所有拆分的數(shù)據(jù)包全部重傳。
在一個(gè)實(shí)施例中,如圖7所示,圖7為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的又一種實(shí)施例的框圖;所述系統(tǒng)還包括:
手動(dòng)調(diào)整模塊66,用于根據(jù)當(dāng)前的網(wǎng)絡(luò)帶寬手動(dòng)調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。也即,本實(shí)施例中,手動(dòng)調(diào)節(jié)的過程是采用了node(node.js)技術(shù)來(lái)進(jìn)行的,可以利用node技術(shù)來(lái)根據(jù)網(wǎng)絡(luò)帶寬情況來(lái)調(diào)整每次傳輸?shù)臄?shù)據(jù)包的數(shù)量和/或每個(gè)所述數(shù)據(jù)包的大小,node在本實(shí)施例中作為一個(gè)微型服務(wù)器,且其更新時(shí)不用安裝,可以運(yùn)用node實(shí)現(xiàn)p2p傳輸和繞開防火墻,運(yùn)用它來(lái)進(jìn)行調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小,高效穩(wěn)定,簡(jiǎn)單快捷。
在一個(gè)實(shí)施例中,如圖8所示,圖8為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種視頻傳輸系統(tǒng)的再一種實(shí)施例的框圖;所述系統(tǒng)還包括:
自動(dòng)配置模塊67,用于根據(jù)當(dāng)前網(wǎng)絡(luò)帶寬以及預(yù)設(shè)的數(shù)據(jù)傳輸表自動(dòng)配置每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小。也即,本實(shí)施例中,自動(dòng)配置的過程是采用了node(node.js)技術(shù)來(lái)進(jìn)行的,可以利用node技術(shù)來(lái)根據(jù)網(wǎng)絡(luò)帶寬情況來(lái)調(diào)整每次傳輸?shù)臄?shù)據(jù)包的數(shù)量和/或每個(gè)所述數(shù)據(jù)包的大小,node在本實(shí)施例中作為一個(gè)微型服務(wù)器,且其更新時(shí)不用安裝,可以運(yùn)用node實(shí)現(xiàn)p2p傳輸和繞開防火墻,運(yùn)用它來(lái)進(jìn)行調(diào)整每次傳輸數(shù)據(jù)包的數(shù)量和/或數(shù)據(jù)包的大小,高效穩(wěn)定,簡(jiǎn)單快捷。
以上實(shí)施例所描述的一種視頻傳輸系統(tǒng),可以達(dá)到如下有益效果:將視頻的各個(gè)視頻幀拆分為多個(gè)小數(shù)據(jù)包進(jìn)行傳輸,且在視頻的傳輸過程中允許丟失部分?jǐn)?shù)據(jù)包而不要求重新傳輸,進(jìn)而保證了視頻傳輸?shù)姆€(wěn)定和流暢,提升了用戶體驗(yàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。