本發(fā)明屬于數(shù)據(jù)傳輸技術(shù)領(lǐng)域,尤其是對網(wǎng)絡(luò)帶寬有較大需求的系統(tǒng)。
背景技術(shù):
在當(dāng)前的互聯(lián)網(wǎng)+時(shí)代,互聯(lián)網(wǎng)直播變得非常火熱,主要模式集中在游戲直播、生活直播、秀場直播,隨著VR、AR技術(shù)的逐漸普及,視頻直播與VR技術(shù)融合的也越來越緊密。從用戶體驗(yàn)的角度而言,VR在直播領(lǐng)域的應(yīng)用大大提升了用戶參與感,它可以使直播變得更逼真,并拉近用戶與平臺之間的距離。這也帶來了一個(gè)問題,VR直播需要較大的上傳帶寬?,F(xiàn)有技術(shù)在當(dāng)今中國復(fù)雜的網(wǎng)絡(luò)環(huán)境和受限的上傳帶寬等情況下,很難保證VR設(shè)備高質(zhì)量穩(wěn)定上傳。
鑒于此,對于VR等對上傳帶寬有較高要求的應(yīng)用,迫切的需要有一種多線路傳輸流媒體數(shù)據(jù)的方法來解決現(xiàn)有技術(shù)存在的問題和風(fēng)險(xiǎn)。本發(fā)明就是用來解決此類問題的,通過本發(fā)明的方法可以在采集端提供多路鏈接接入不同的運(yùn)營商寬帶。設(shè)備可以將一路流的音視頻分別從多個(gè)鏈路發(fā)出,利用不同運(yùn)營商的上傳帶寬傳輸?shù)椒?wù)器,極大地提高了上傳效率,從而為客戶提供更穩(wěn)定高速的數(shù)據(jù)傳輸,最大程度的保障了客戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是提供一種多線路傳輸流媒體數(shù)據(jù)的方法,來解決現(xiàn)有技術(shù)中存在的諸多問題。
為了實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明提供了一種多線路傳輸流媒體數(shù)據(jù)的方法,所述方法包括如下步驟:
步驟1.在采集端設(shè)備上安裝本發(fā)明對應(yīng)的應(yīng)用,然后為采集設(shè)備建立多個(gè)鏈接通道到流媒體服務(wù)器。
步驟2.設(shè)備端將音視頻數(shù)據(jù)放入發(fā)送隊(duì)列,同時(shí)啟用了多路鏈接發(fā)送線程將音視頻數(shù)據(jù)發(fā)送給流媒體服務(wù)器,流媒體服務(wù)器會向采集端反饋鏈路的狀態(tài),如果各鏈路的帶寬水平基本一致,則在各個(gè)鏈路上基本平均分配數(shù)據(jù)到各鏈路。如果某一路鏈接發(fā)送線程對應(yīng)的網(wǎng)絡(luò)不好的話,則大部分音視頻數(shù)據(jù)通過其他路鏈接發(fā)送線程完成發(fā)送,反之亦然。
步驟3.流媒體服務(wù)器收到設(shè)備鏈接請求時(shí),從本發(fā)明設(shè)定的參數(shù)中判斷是哪路鏈接,同時(shí)為相應(yīng)的鏈接創(chuàng)建音視頻數(shù)據(jù)緩存隊(duì)列。流媒體服務(wù)器將從各路鏈接接收到的音視頻數(shù)據(jù),分別放入其對應(yīng)的音視頻數(shù)據(jù)緩存隊(duì)列中。
步驟4.步驟3中的音視頻數(shù)據(jù)緩存隊(duì)列可用本發(fā)明的相關(guān)參數(shù)配置緩存時(shí)間。
步驟5.如果傳輸過程中有任何一路鏈接關(guān)閉了,流媒體服務(wù)器改為其他路鏈接的緩存隊(duì)列中取數(shù)據(jù)發(fā)送。直到全部數(shù)據(jù)完成傳輸或者收到主動關(guān)閉鏈接的命令后,才會關(guān)閉音視頻的傳輸。
本發(fā)明,與現(xiàn)有技術(shù)相比,通過采用多線路傳輸?shù)姆椒▉肀WC上傳帶寬的穩(wěn)定和高效,通過本發(fā)明的方法來確保多路傳輸?shù)臄?shù)據(jù)能自動選擇最優(yōu)線路,自動的合并成需要的音視頻數(shù)據(jù)。比起現(xiàn)有技術(shù),能更高效更穩(wěn)定的完成音視頻的傳輸,從而能更好的提高用戶體驗(yàn)。
附圖說明
圖1是本發(fā)明的方法流程圖。
圖2本發(fā)明的實(shí)例1示意圖。
圖3本發(fā)明的實(shí)例2示意圖。
具體實(shí)例方式
為了使本發(fā)明的目的,技術(shù)方案及有益效果更加清楚明白,以下結(jié)合實(shí)例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解為此處所描述的具體實(shí)例僅用以解釋本發(fā)明,并不用于限制本發(fā)明的保護(hù)范圍。
如圖1 所示,本發(fā)明提供了一種多線路傳輸流媒體數(shù)據(jù)的方法,所述方法包括如下步驟:
步驟S101.在采集端設(shè)備上安裝本發(fā)明對應(yīng)的應(yīng)用,然后為采集設(shè)備建立多個(gè)鏈接通道到流媒體服務(wù)器。
步驟S102.設(shè)備端將音視頻數(shù)據(jù)放入發(fā)送隊(duì)列,同時(shí)啟用了多路鏈接發(fā)送線程將音視頻數(shù)據(jù)發(fā)送給流媒體服務(wù)器,流媒體服務(wù)器會向采集端反饋鏈路的狀態(tài),如果各鏈路的帶寬水平基本一致,則在各個(gè)鏈路上基本平均分配數(shù)據(jù)到各鏈路。如果某一路鏈接發(fā)送線程對應(yīng)的網(wǎng)絡(luò)不好的話,則大部分音視頻數(shù)據(jù)通過其他路鏈接發(fā)送線程完成發(fā)送,反之亦然。
步驟S103. 流媒體服務(wù)器收到設(shè)備鏈接請求時(shí),從本發(fā)明設(shè)定的參數(shù)中判斷是哪路鏈接,同時(shí)為相應(yīng)的鏈接創(chuàng)建音視頻數(shù)據(jù)緩存隊(duì)列。流媒體服務(wù)器將從各路鏈接接收到的音視頻數(shù)據(jù),分別放入其對應(yīng)的音視頻數(shù)據(jù)緩存隊(duì)列中。
步驟S104.步驟103中的音視頻數(shù)據(jù)緩存隊(duì)列可用本發(fā)明的相關(guān)參數(shù)配置緩存時(shí)間。
步驟S105.如果傳輸過程中有任何一路鏈接關(guān)閉了,流媒體服務(wù)器改為其他路鏈接的緩存隊(duì)列中取數(shù)據(jù)發(fā)送。直到全部數(shù)據(jù)完成傳輸或者收到主動關(guān)閉鏈接的命令后,才會關(guān)閉音視頻的傳輸。
以上所述僅是本發(fā)明的優(yōu)選方式,應(yīng)當(dāng)指出,不局限于音視頻網(wǎng)絡(luò)的傳輸,其他類似于通過采用多線路傳輸數(shù)據(jù)的方法都應(yīng)視為本發(fā)明的保護(hù)范圍。還應(yīng)當(dāng)指出對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
如圖2所示,具體實(shí)例。
以下介紹本發(fā)明的一種多線路傳輸流媒體數(shù)據(jù)的方法。
實(shí)例1
如圖2所示,假設(shè)上傳是通過一個(gè)裝有本發(fā)明應(yīng)用的VR設(shè)備進(jìn)行的,該VR設(shè)備有2個(gè)網(wǎng)口,根據(jù)步驟S101.為這2個(gè)網(wǎng)口建立2個(gè)鏈接通道到流媒體服務(wù)器。
步驟S102. 設(shè)備端將音視頻數(shù)據(jù)放入發(fā)送隊(duì)列,同時(shí)啟用了2路鏈接發(fā)送線程將音視頻數(shù)據(jù)發(fā)送給流媒體服務(wù)器,流媒體服務(wù)器會向采集端反饋鏈路的狀態(tài),假設(shè)一路為A,一路為B。本例中2路鏈接均可提供穩(wěn)定的傳輸質(zhì)量。數(shù)據(jù)在發(fā)送隊(duì)列中依此從A路和B路向外發(fā)送。
步驟S103. 流媒體服務(wù)器收到VR設(shè)備鏈接請求時(shí),從本發(fā)明設(shè)定的參數(shù)中判斷是A路或者B路鏈接,同時(shí)為A路和B路鏈接創(chuàng)建音視頻數(shù)據(jù)緩存隊(duì)列。流媒體服務(wù)器將從各路鏈接接收到的音視頻數(shù)據(jù),分別放入其對應(yīng)的音視頻數(shù)據(jù)緩存隊(duì)列中。
步驟S104. 步驟103中的音視頻數(shù)據(jù)緩存隊(duì)列可用本發(fā)明的相關(guān)參數(shù)配置緩存時(shí)間。本例中假設(shè)緩存時(shí)間為5秒。即接收到的音視頻數(shù)據(jù)將在5秒后發(fā)送給觀看端。服務(wù)器需要在5秒內(nèi)等待接收A路和B路鏈接上的音視頻數(shù)據(jù)并緩存。5秒之后依次從A路和B路鏈接對應(yīng)的緩存隊(duì)列中選取時(shí)間戳最小的音視頻數(shù)據(jù)發(fā)送,這樣就可以保證音視頻數(shù)據(jù)的連續(xù)性。
步驟S105. 如果傳輸過程中A路鏈接關(guān)閉了,流媒體服務(wù)器改為從B路鏈接的緩存隊(duì)列中取數(shù)據(jù)發(fā)送。直到全部數(shù)據(jù)完成傳輸或者收到主動關(guān)閉鏈接的命令后,才會關(guān)閉音視頻的傳輸。
實(shí)例2
如圖3所示,根據(jù)步驟S101假設(shè)上傳是通過一個(gè)裝有本發(fā)明應(yīng)用的VR設(shè)備進(jìn)行的,該VR設(shè)備只有一個(gè)網(wǎng)口,可通過先將該VR設(shè)備接到一個(gè)可提供多路路由的路由器上,然后再在路由器上配兩路鏈接,一路通過聯(lián)通發(fā)送,一路通過電信發(fā)送。
步驟S102. 設(shè)備端將音視頻數(shù)據(jù)放入發(fā)送隊(duì)列,同時(shí)啟用了兩路鏈接發(fā)送線程將音視頻數(shù)據(jù)發(fā)送給流媒體服務(wù)器,流媒體服務(wù)器會向采集端反饋鏈路的狀態(tài),假設(shè)一路為A,一路為B。本例中A路鏈接不穩(wěn)定,發(fā)送質(zhì)量不好。本發(fā)明的應(yīng)用在從發(fā)送隊(duì)列里取數(shù)據(jù)是,發(fā)現(xiàn)A路的鏈接不穩(wěn)定,會自動降低從A鏈路傳送數(shù)據(jù)的比例。大部分?jǐn)?shù)據(jù)會從B路傳輸。
步驟S103. 流媒體服務(wù)器收到VR設(shè)備鏈接請求時(shí),從本發(fā)明設(shè)定的參數(shù)中判斷是A路或者B路鏈接,同時(shí)為A路和B路鏈接創(chuàng)建音視頻數(shù)據(jù)緩存隊(duì)列。流媒體服務(wù)器將從各路鏈接接收到的音視頻數(shù)據(jù),分別放入其對應(yīng)的音視頻數(shù)據(jù)緩存隊(duì)列中。
步驟S104. 步驟103中的音視頻數(shù)據(jù)緩存隊(duì)列可用本發(fā)明的相關(guān)參數(shù)配置緩存時(shí)間。本例中假設(shè)緩存時(shí)間為10秒。即接收到的音視頻數(shù)據(jù)將在10秒后發(fā)送給觀看端。服務(wù)器需要在10秒內(nèi)等待接收A路和B路鏈接上的音視頻數(shù)據(jù)并緩存。10秒之后依次從A路和B路鏈接對應(yīng)的緩存隊(duì)列中選取時(shí)間戳最小的音視頻數(shù)據(jù)發(fā)送,這樣就可以保證音視頻數(shù)據(jù)的連續(xù)性。
步驟S105. 如果傳輸過程中A路鏈接關(guān)閉了,流媒體服務(wù)器改為從B路鏈接的緩存隊(duì)列中取數(shù)據(jù)發(fā)送。直到全部數(shù)據(jù)完成傳輸或者收到主動關(guān)閉鏈接的命令后,才會關(guān)閉音視頻的傳輸。