本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域,具體涉及一種視頻數(shù)據(jù)傳輸方法及裝置。
背景技術(shù):
:隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的人開始關(guān)注視頻直播業(yè)務(wù)。目前,在各視頻直播業(yè)務(wù)中,例如網(wǎng)絡(luò)直播、多人視頻會議等,為了保證數(shù)據(jù)的可靠性,通常使用基于TCP(TransmissionControlProtocol,傳輸控制協(xié)議)的協(xié)議來對音視頻數(shù)據(jù)進行傳輸。TCP協(xié)議是面向連接的傳輸協(xié)議,通信前需先建立連接,傳輸時延較大。且TCP協(xié)議中的確認和重發(fā)機制、流量控制機制雖能保證數(shù)據(jù)的可靠傳輸,但處理過程復(fù)雜,效率不高,在網(wǎng)絡(luò)不穩(wěn)定的情況下會導(dǎo)致延遲不可控。對于音頻和視頻數(shù)據(jù)來說,無法滿足其傳輸時較高的實時性要求。由于UDP(UserDatagramProtocol,用戶數(shù)據(jù)報協(xié)議)協(xié)議是一種無連接的傳輸層協(xié)議,通信時直接向?qū)Χ税l(fā)送數(shù)據(jù),不記錄連接狀態(tài),具有控制選項較少、資源消耗小、處理速度快、在數(shù)據(jù)傳輸過程中延遲小、數(shù)據(jù)傳輸效率高的優(yōu)點,節(jié)省了大量的網(wǎng)絡(luò)資源,提高了網(wǎng)絡(luò)傳輸效率,因此,在音頻、視頻等實時性要求較高的數(shù)據(jù)傳輸中得到廣泛的應(yīng)用。在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)中至少存在如下問題:盡管利用UDP協(xié)議進行數(shù)據(jù)傳輸能夠滿足較高的實時性要求,但由于UDP協(xié)議并不提供數(shù)據(jù)傳送的保證機制,傳輸數(shù)據(jù)前不需要建立邏輯鏈路,也沒有自動重發(fā)機制來保證數(shù)據(jù)傳輸?shù)恼_性,因此會造成以下問題:1、容易產(chǎn)生數(shù)據(jù)包丟失的現(xiàn)象,即UDP數(shù)據(jù)包在傳輸過程中可能會因數(shù)據(jù)損壞或擁塞而被丟棄;2、容易發(fā)生數(shù)據(jù)包亂序到達的現(xiàn)象,即發(fā)送端按順序發(fā)出的UDP數(shù)據(jù)包在到達接受端時可能會順序錯亂,從而影響數(shù)據(jù)的解析。技術(shù)實現(xiàn)要素:本發(fā)明實施例提供一種視頻數(shù)據(jù)傳輸方法及裝置,用以至少解決上述闡述的現(xiàn)有技術(shù)中傳輸視頻數(shù)據(jù)時容易發(fā)生數(shù)據(jù)包亂序、丟失的問題。第一方面,本發(fā)明實施例提供了一種視頻數(shù)據(jù)傳輸方法,包括:基于接收到的第一UDP數(shù)據(jù)包的序號信息和與接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的序號信息之間的連續(xù)性,并根據(jù)至少兩種丟包確認機制確定丟失數(shù)據(jù)包;根據(jù)所確定的丟失數(shù)據(jù)包,向發(fā)送端發(fā)送相應(yīng)的UDP重發(fā)請求。第二方面,本發(fā)明實施例提供了一種視頻數(shù)據(jù)傳輸裝置,包括:丟包確定模塊,用于基于接收到的第一UDP數(shù)據(jù)包的序號信息和與接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的序號信息之間的連續(xù)性,并根據(jù)至少兩種丟包確認機制確定丟失數(shù)據(jù)包;請求重發(fā)模塊,用于根據(jù)所確定的丟失數(shù)據(jù)包,向發(fā)送端發(fā)送相應(yīng)的UDP重發(fā)請求。第三方面,本發(fā)明實施例還提供了一種非易失性計算機存儲介質(zhì),存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于執(zhí)行本發(fā)明上述任一項視頻數(shù)據(jù)傳輸方法。第四方面,本發(fā)明實施例還提供了一種電子設(shè)備,包括:至少一個處理器;以及存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的程序,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行本發(fā)明上述任一項視頻數(shù)據(jù)傳輸方法。第五方面,本發(fā)明實施例還提供了一種計算機程序產(chǎn)品,包括至少一個非易失性計算機存儲介質(zhì),所述非易失性計算機存儲介質(zhì)具有存儲在其中的計算機可執(zhí)行程序代碼指令,所述計算機可執(zhí)行程序代碼指令能夠執(zhí)行上述任一項所述的視頻數(shù)據(jù)傳輸方法。本發(fā)明實施例提供的視頻數(shù)據(jù)傳輸方法及裝置,由于基于UDP協(xié)議來傳輸視頻數(shù)據(jù)包,使得傳輸數(shù)據(jù)尤其是流媒體數(shù)據(jù)的實時性大大提高。當發(fā)生數(shù)據(jù)包丟失的情況時,通過接收到的數(shù)據(jù)包的序號信息和接收緩沖區(qū)內(nèi)的數(shù)據(jù)包的序號信息之間的連續(xù)性確定丟失數(shù)據(jù)包,從而對丟失數(shù)據(jù)包進行重發(fā),實現(xiàn)了數(shù)據(jù)的選擇性重發(fā)。由于無需舍棄任何已接收到的數(shù)據(jù)包,避免了已接收的數(shù)據(jù)包被舍棄后再次重發(fā)的問題,降低了數(shù)據(jù)大量重發(fā)時發(fā)生網(wǎng)絡(luò)堵塞嚴重、數(shù)據(jù)亂序和丟失的風(fēng)險,保證了數(shù)據(jù)傳輸時的可靠性。通過接收緩沖區(qū)將亂序的數(shù)據(jù)進行排序和緩沖,減少了視頻播放卡頓和延遲的現(xiàn)象,提升了裝置性能。此外,本發(fā)明確定丟失數(shù)據(jù)包的丟包確認機制至少有兩種,完善了確定丟失數(shù)據(jù)包的場景,增加了對丟失數(shù)據(jù)包進行重發(fā)的可能性,加強了在不同網(wǎng)絡(luò)狀態(tài)下的丟包管理。附圖說明為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明一實施例的數(shù)據(jù)傳輸方法的流程圖;圖2是本發(fā)明一實施例的視頻數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖;圖3是本發(fā)明一實施例提供的實施視頻數(shù)據(jù)傳輸方法的電子設(shè)備的結(jié)構(gòu)示意圖。具體實施方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。需要說明的是,在不沖突的情況下,本發(fā)明中的實施方式及實施方式中的特征可以相互組合。本發(fā)明可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機、服務(wù)器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。本發(fā)明可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本發(fā)明,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”,不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。圖1是本發(fā)明一實施例的數(shù)據(jù)傳輸方法的流程圖。如圖1所示,該方法包括:S10:基于接收到的第一UDP數(shù)據(jù)包的序號信息和與接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的序號信息之間的連續(xù)性,并根據(jù)至少兩種丟包確認機制確定丟失數(shù)據(jù)包,所述序號信息包括UDP數(shù)據(jù)包的編號和UDP數(shù)據(jù)包與所在視頻幀有關(guān)的幀序號;S20:根據(jù)所確定的丟失數(shù)據(jù)包,向發(fā)送端發(fā)送相應(yīng)的UDP重發(fā)請求。本發(fā)明實施例中,用于接收UDP數(shù)據(jù)包的接收端可以是服務(wù)器,也可以是其他具有數(shù)據(jù)傳輸功能的電子設(shè)備,本發(fā)明對此不做限制。由于以太網(wǎng)(Ethernet)的物理特性,以太網(wǎng)數(shù)據(jù)幀的長度必須在46-1500字節(jié)之間,該1500字節(jié)被稱為鏈路層的MTU(MaximumTransmissionUnit,最大傳輸單元),指一種通信協(xié)議的某一層上面所能通過的最大數(shù)據(jù)包大小(以字節(jié)為單位)。如果網(wǎng)絡(luò)層要傳輸?shù)臄?shù)據(jù)其長度大于鏈路層的MTU,就要對該數(shù)據(jù)進行分片(fragmentation),把該數(shù)據(jù)分成若干片,使得每一個分片都小于MTU。因此,MTU的大小會影響視頻幀分片的大小,視頻幀分片的大小其實就是單個UDP數(shù)據(jù)包最大承載的數(shù)據(jù)大小。在視頻分辨率要求較高(例如為1080P)的情況下大部分視頻幀的大小都大于UDP的MTU大小,因此需要對視頻幀進行分片,生成相應(yīng)的UDP數(shù)據(jù)包。例如,MTU的大小為1000字節(jié)時,某個視頻幀的大小為3500字節(jié),則需要將該視頻幀切分為4個數(shù)據(jù)包,前三個數(shù)據(jù)包的大小可以是1000字節(jié),相應(yīng)地,最后一個數(shù)據(jù)包的大小為500字節(jié)。由于一個視頻幀即一幀圖像有可能被切分成多個數(shù)據(jù)包獨立地傳輸,因此需要對數(shù)據(jù)包設(shè)置序號信息并寫入數(shù)據(jù)包的頭部,使得接收端可以根據(jù)這些數(shù)據(jù)包頭部中的信息正確地組裝和解析這些數(shù)據(jù)包。本發(fā)明實施例中,UDP數(shù)據(jù)包的序號信息可以包括UDP數(shù)據(jù)包的編號和該UDP數(shù)據(jù)包所屬視頻幀的幀序號。幀序號指UDP數(shù)據(jù)包所屬的視頻幀具有的序號,該序號可以根據(jù)視頻幀被播放的時間先后順序設(shè)置(例如按照每個視頻幀的時間戳進行排序)。播放時間越晚的視頻幀,其幀序號數(shù)值越大。UDP數(shù)據(jù)包的編號可以理解為:先將視頻幀按照播放時間的先后順序排序,再將每個視頻幀切片,按照切片順序生成每個視頻幀對應(yīng)的至少一個數(shù)據(jù)包,根據(jù)此時得到的排序為數(shù)據(jù)包賦予連續(xù)的號碼,即可得到每個數(shù)據(jù)包的編號。因此可以理解,屬于同一個視頻幀的數(shù)據(jù)包具有相同的幀序號,且按照切片順序具有連續(xù)的編號;相鄰視頻幀中前一個視頻幀對應(yīng)的最后一個數(shù)據(jù)包的編號與后一個視頻幀對應(yīng)的第一個數(shù)據(jù)包的編號是連續(xù)的。例如,視頻幀A、B、C的幀序號是連續(xù)的,將A、B、C切片后,生成了A1、A2,B1、B2、B3,C1、C2、C3、C4九個數(shù)據(jù)包,則這些數(shù)據(jù)包的序號信息如下表(假設(shè)視頻幀A為第一個視頻幀):數(shù)據(jù)包A1A2B1B2B3C1C2C3C4幀序號001112222編號012345678表1本發(fā)明實施例中UDP數(shù)據(jù)包的序號信息舉例下面先對本發(fā)明實施例中的UDP數(shù)據(jù)包的結(jié)構(gòu)作說明以便于理解本發(fā)明實施例提供的方法。本發(fā)明實施例中UDP數(shù)據(jù)包分為頭部和數(shù)據(jù)部兩部分。數(shù)據(jù)部承載的是具體的數(shù)據(jù)內(nèi)容。頭部長度為8字節(jié),包括媒體數(shù)據(jù)傳輸類型(type)、幀序號(FrameID)、幀內(nèi)分片號(InnerID)、幀內(nèi)分片數(shù)(FrameCount)、編號(SequenceNumber)和補齊項目(Padding)。其中,媒體數(shù)據(jù)傳輸類型包括原始數(shù)據(jù)(取值0)和重傳數(shù)據(jù)(取值1),長度為4位,通過記錄接收的數(shù)據(jù)包的類型可以分析出該時間段內(nèi)的網(wǎng)絡(luò)傳輸狀況;幀序號表示該數(shù)據(jù)包屬于哪個視頻幀,取值為0-65535,長度為65536位;幀內(nèi)分片號表示該數(shù)據(jù)包為一幀內(nèi)的第幾片數(shù)據(jù),取值為0-4095,長度為4096位;幀內(nèi)分片數(shù)表示該數(shù)據(jù)包屬于的視頻幀被分割的數(shù)據(jù)包總片數(shù),長度為4096位,取值為0-4095;編號表示該數(shù)據(jù)包在被傳輸?shù)囊曨l中的序列號,通過補齊項目補齊字節(jié),使得UDP頭部的長度滿足8字節(jié)。重發(fā)請求的結(jié)構(gòu)可以是,例如,包括請求總長度(MessageTotalLength)、重發(fā)數(shù)據(jù)類型(Retransmission)、序號(Number)和索引(Index)。其中,請求總長度的長度為16位;重發(fā)數(shù)據(jù)類型可以是例如語音、視頻等類型,長度為32位;序號指丟失數(shù)據(jù)包在該重發(fā)請求中對應(yīng)的順序,由于重發(fā)請求對應(yīng)的丟失數(shù)據(jù)包可以為一個,也可以為多個,當重發(fā)請求中請求重新發(fā)送的數(shù)據(jù)包的數(shù)量為多個例如3個時,序號為0-2。索引內(nèi)記錄的是丟失數(shù)據(jù)包的編號,便于發(fā)送端根據(jù)該重發(fā)請求找到相應(yīng)的丟失數(shù)據(jù)包。本實施例的步驟10中,接收端設(shè)置有接收緩沖區(qū),可以對接收到的UDP數(shù)據(jù)包按照序號信息進行先后排序,并在接收緩沖區(qū)內(nèi)緩沖一段時間后經(jīng)過組合、解析等過程后再進行視頻的播放。這樣可以減少視頻動作加快或者放慢的現(xiàn)象發(fā)生。接收端接收來自發(fā)送端的UDP數(shù)據(jù)包后,將該數(shù)據(jù)包的序號信息與已緩存在接收緩沖區(qū)內(nèi)的UDP數(shù)據(jù)包的序號信息進行比較,再根據(jù)多種丟包確認機制來確定丟失的數(shù)據(jù)包。時間最新不是指接收時間最新,而是指該數(shù)據(jù)包所屬視頻幀對應(yīng)的播放時間最新,也即該數(shù)據(jù)包的編號數(shù)值最大。步驟20中,在步驟10確定了丟失數(shù)據(jù)包后,向發(fā)送端發(fā)送對應(yīng)于丟失數(shù)據(jù)包的UDP重發(fā)請求。該重發(fā)請求至少包括丟失數(shù)據(jù)包(一個或多個UDP數(shù)據(jù)包)的編號以使得發(fā)送端根據(jù)該編號將編號對應(yīng)的數(shù)據(jù)包再次向接收端發(fā)送。因此,發(fā)送端中可以設(shè)置發(fā)送緩沖區(qū),用于存放一段時間已發(fā)送的UDP數(shù)據(jù)包,以使得接收端確定了丟失數(shù)據(jù)包并將重發(fā)請求發(fā)送至發(fā)送端后,發(fā)送端可以從發(fā)送緩沖區(qū)中快速定位需要重新發(fā)送的丟失數(shù)據(jù)包。具體地,發(fā)送緩沖區(qū)可以為固定長度(1024的冪次倍)的數(shù)組,用于存放一段時間已發(fā)送的數(shù)據(jù),以在發(fā)送端接收到接收端發(fā)送的重發(fā)請求后從發(fā)送緩沖區(qū)直接重新發(fā)送相應(yīng)的數(shù)據(jù)包。緩存的規(guī)則是用收到數(shù)據(jù)包的編號和隊列最大長度做取模運算,得到的結(jié)果作為隊列的數(shù)組下標,并根據(jù)該數(shù)組下標存放數(shù)據(jù)包,記錄存放時間。存放有效時間T用來判斷是否為過期數(shù)據(jù),超過存放有效時間T的數(shù)據(jù)為過期數(shù)據(jù)。過期的數(shù)據(jù)不需要刪除,會被后面的有效數(shù)據(jù)直接覆蓋掉。有效時間T跟隊列的最大長度有關(guān)。隊列的最大長度不得超過數(shù)據(jù)包的最大編號值。上述發(fā)送緩沖區(qū)可以不用動態(tài)維護隊列長度,減少內(nèi)存申請釋放,有效避免內(nèi)存泄漏。隊列的插入和查找時間復(fù)雜度為O(1),節(jié)省了CPU的計算資源。相應(yīng)地,接收緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)與發(fā)送緩沖區(qū)類似,唯一不同的是添加了兩個指針變量:讀指針和寫指針。讀寫指針之間的數(shù)據(jù)包編號應(yīng)該是連續(xù)的,如果不連續(xù)即數(shù)據(jù)包丟失,接收端需要生成相關(guān)的重發(fā)請求發(fā)送給發(fā)送端。本發(fā)明實施例提供的視頻數(shù)據(jù)傳輸方法,通過使用UDP協(xié)議來傳輸視頻數(shù)據(jù),避免了TCP協(xié)議繁重的三次握手、四次揮手和各種繁雜的傳輸特性,使得傳輸數(shù)據(jù)尤其是音視頻數(shù)據(jù)的實時性大大提高。且本發(fā)明實施例通過對丟失的數(shù)據(jù)包進行重發(fā),保證了數(shù)據(jù)傳輸時的可靠性。由于只對丟失的數(shù)據(jù)包進行重新傳輸,不會將已接收的數(shù)據(jù)舍棄后再次傳輸,實現(xiàn)了數(shù)據(jù)的選擇性重發(fā),降低了數(shù)據(jù)大量重發(fā)時發(fā)生網(wǎng)絡(luò)堵塞嚴重、數(shù)據(jù)亂序和丟失的風(fēng)險,也避免了帶寬浪費。通過接收緩沖區(qū)將亂序的數(shù)據(jù)進行排序和緩沖,減少了視頻播放失真的情況,提升了裝置性能。此外,本發(fā)明確定丟失數(shù)據(jù)包的丟包確認機制至少有兩種,完善了確定丟失數(shù)據(jù)包的場景,增加了對丟失數(shù)據(jù)包進行重發(fā)的可能性,加強了在不同網(wǎng)絡(luò)狀態(tài)下的丟包管理。在上述實施例中,當所述至少兩種丟包確認機制中的其中一種丟包確認機制確定的丟失數(shù)據(jù)包中包括其中另一種丟包確認機制已確定為丟失數(shù)據(jù)包的UDP數(shù)據(jù)包時,從其中一種丟包確認機制所確定的丟失數(shù)據(jù)包中除去其中另一種丟包確認機制已確定的UDP數(shù)據(jù)包,將剩余的數(shù)據(jù)包確定為需要發(fā)送UDP重發(fā)請求的丟失數(shù)據(jù)包。本實施例中,當一種丟包確認機制確定的丟失數(shù)據(jù)包與另一種丟包確認機制已確定的丟失數(shù)據(jù)包有重合時,若將二者確定的丟失數(shù)據(jù)包都進行重發(fā),則發(fā)生重合的數(shù)據(jù)包部分對應(yīng)的重發(fā)請求會被發(fā)送至少兩次,這會對網(wǎng)絡(luò)帶寬造成不必要的浪費,嚴重時會導(dǎo)致網(wǎng)絡(luò)發(fā)生堵塞從而導(dǎo)致數(shù)據(jù)包丟包現(xiàn)象更加嚴重。因此,為避免這種情況發(fā)生,需要從(時間上)后確定的丟失數(shù)據(jù)包中除去重合的丟失數(shù)據(jù)包,將剩余的數(shù)據(jù)包作為(時間上)后確定的真正的(需要發(fā)送相應(yīng)的UDP重發(fā)請求的)丟失數(shù)據(jù)包。本實施例通過將前后兩種丟包確認機制確定的丟失數(shù)據(jù)包中除去重合的數(shù)據(jù)包部分,再發(fā)送剩余數(shù)據(jù)包的相應(yīng)重發(fā)請求,可以避免對重復(fù)的丟失數(shù)據(jù)包進行重發(fā),減少了資源浪費,降低了數(shù)據(jù)大量重發(fā)時發(fā)生網(wǎng)絡(luò)堵塞嚴重、數(shù)據(jù)亂序和丟失的風(fēng)險。上述實施例中,所述至少兩種丟包確認機制中的其中一種機制A包括:當所述第一UDP數(shù)據(jù)包的第一編號與所述第二UDP數(shù)據(jù)包的第二編號不連續(xù)且所述第一編號大于所述第二編號時,若在預(yù)定超時時間內(nèi)未接收到所述第一編號與所述第二編號之間的編號對應(yīng)的其他UDP數(shù)據(jù)包,則將所述其他UDP數(shù)據(jù)包確定為丟失數(shù)據(jù)包。本實施例中,由于第二UDP數(shù)據(jù)包在接收緩沖區(qū)內(nèi)時間最新即編號最大,因此,當?shù)谝籙DP數(shù)據(jù)包的編號大于第二UDP數(shù)據(jù)包的編號且第一UDP數(shù)據(jù)包的編號與第二UDP數(shù)據(jù)包的編號不連續(xù)時,表明第一UDP數(shù)據(jù)包和第二UDP數(shù)據(jù)包之間的數(shù)據(jù)包在接收端接收第一UDP數(shù)據(jù)包的時刻未到達接收端。造成這種情況至少有兩種原因,其一是:原本應(yīng)該比編號大于第二UDP數(shù)據(jù)包且小于第一UDP數(shù)據(jù)包的數(shù)據(jù)包晚到達接收端,由于發(fā)生了數(shù)據(jù)亂序,第一UDP數(shù)據(jù)包提早到達了接收端。其二是:編號在第一UDP數(shù)據(jù)包和第二UDP數(shù)據(jù)包之間的各數(shù)據(jù)包在傳輸過程中丟失。為避免第一種原因下還對這些數(shù)據(jù)包進行重發(fā),導(dǎo)致帶寬浪費和網(wǎng)絡(luò)擁塞,需在接收到第一UDP數(shù)據(jù)包之后,等待預(yù)定超時時間,若在該預(yù)定超時時間內(nèi)編號在第一UDP數(shù)據(jù)包和第二UDP數(shù)據(jù)包之間的數(shù)據(jù)包還是沒有到達接收端,則此時可以確定這些數(shù)據(jù)包為已丟失的數(shù)據(jù)包。作為一個示例,假設(shè)接收緩沖區(qū)內(nèi)時間最新(即編號最大)的第二UDP數(shù)據(jù)包其編號為6,接收到的第一UDP數(shù)據(jù)包編號為10,則第一UDP數(shù)據(jù)包和第二UDP數(shù)據(jù)包之間編號為7、8、9的數(shù)據(jù)包還沒被接收端接收。等待預(yù)定超時時間,若在此預(yù)定超時時間內(nèi)接收端未接收到數(shù)據(jù)包7、8、9,則將數(shù)據(jù)包7、8、9確定為丟失數(shù)據(jù)包;若在此預(yù)定超時時間內(nèi)接收到了數(shù)據(jù)包7、8、9中的任意一個或多個數(shù)據(jù)包,則在本次丟包確認過程中第一UDP數(shù)據(jù)包和第二UDP數(shù)據(jù)包之間沒有丟失的數(shù)據(jù)包。本實施例中,等待預(yù)定超時時間是為了確認這些編號對應(yīng)的數(shù)據(jù)包是否真的已丟失。因為通過UDP協(xié)議傳輸數(shù)據(jù)是無序的,導(dǎo)致接收端接收到的UDP數(shù)據(jù)包可能是亂序的。如果確認了第一編號和第二編號不連續(xù)就立即發(fā)送重發(fā)請求要求發(fā)送端重傳,可能會使第一編號和第二編號之間的編號對應(yīng)的數(shù)據(jù)包在被發(fā)送至接收端的過程當中又被發(fā)送了一次,從而造成帶寬浪費和網(wǎng)絡(luò)擁塞。因此,實施例中的丟包確認機制在等待預(yù)定超時時間后再確定丟失數(shù)據(jù)包,在網(wǎng)絡(luò)狀況較好時基本能夠滿足大部分的數(shù)據(jù)丟包管理,可以減少發(fā)生帶寬浪費和網(wǎng)絡(luò)擁塞的風(fēng)險,提升裝置性能。上述實施例中,所述至少兩種丟包確認機制中的其中一種機制B包括:若所述第一UDP數(shù)據(jù)包的第一幀序號與所述第二UDP數(shù)據(jù)包的第二幀序號不同且所述第一UDP數(shù)據(jù)包的第一編號大于所述第二UDP數(shù)據(jù)包的第二編號,等待預(yù)定幀超時時間,將所述第一幀序號對應(yīng)的UDP數(shù)據(jù)包中未接收到的UDP數(shù)據(jù)包確定為丟失數(shù)據(jù)包。本實施例中,預(yù)定幀超時時間可以理解為一個視頻幀從第一個數(shù)據(jù)包被接收起到最后一個數(shù)據(jù)包被接收結(jié)束所用時間的最大時間閾值。當視頻幀被接收的時間超過該閾值,表明該視頻幀內(nèi)的部分數(shù)據(jù)包可能已丟失。具體來講,由于第二UDP數(shù)據(jù)包在接收緩沖區(qū)內(nèi)時間最新即編號最大,因此,當?shù)谝籙DP數(shù)據(jù)包的編號大于第二UDP數(shù)據(jù)包的編號且第一UDP數(shù)據(jù)包的幀序號不同于第二UDP數(shù)據(jù)包的幀序號時,表明第一UDP數(shù)據(jù)包與第二UDP數(shù)據(jù)包不屬于同一視頻幀,且第一UDP數(shù)據(jù)包是其所在視頻幀對應(yīng)的各個數(shù)據(jù)包中第一個被接收端接收的數(shù)據(jù)包。當接收端接收到了該視頻幀中的第一個數(shù)據(jù)包(不一定是該視頻幀中編號最小的數(shù)據(jù)包,因為數(shù)據(jù)包有可能亂序到達接收端)時,若從此數(shù)據(jù)包的接收時間開始計時,在預(yù)定幀內(nèi)超時時間內(nèi)該視頻幀對應(yīng)的各個數(shù)據(jù)包中存在未到達接收端(即未被接收端接收)的數(shù)據(jù)包,說明這些未到達的數(shù)據(jù)包可能已在傳輸過程或解析過程中丟失。由此可以將這些在預(yù)定幀內(nèi)超時時間內(nèi)未到達接收端的數(shù)據(jù)包確定為丟失數(shù)據(jù)包。繼續(xù)以上述示例為例,假設(shè)每個視頻幀都被切分為了4片,接收的第一UDP數(shù)據(jù)包的幀序號為3,編號為10;接收緩沖區(qū)內(nèi)時間最新(編號最大)的第二UDP數(shù)據(jù)包的幀序號為2,編號為6。數(shù)據(jù)包10是幀序號為3的數(shù)據(jù)包中第一個被接收的數(shù)據(jù)包。從接收數(shù)據(jù)包10的時刻起,等待預(yù)定幀超時時間,若在此等待期間沒有接收到編號為8、9、11的數(shù)據(jù)包,則將編號為8、9、11對應(yīng)的三個數(shù)據(jù)包確定為丟失數(shù)據(jù)包;或者,若在此等待期間接收到了三個數(shù)據(jù)包中的任意一個或多個例如只接收到了數(shù)據(jù)包8,則將未接收到的數(shù)據(jù)包9和11確定為丟失數(shù)據(jù)包。即,從第一個幀序號為3的數(shù)據(jù)包被接收時算起,將經(jīng)過預(yù)定幀超時時間后還未接收的幀序號為3的數(shù)據(jù)包確定為丟失數(shù)據(jù)包。本實施例中的丟包確認機制適用于在極端網(wǎng)絡(luò)情況下的連續(xù)丟包的情況,或者由于幀率比較低導(dǎo)致發(fā)送頻率不均勻的情況,能夠有效提高由于發(fā)送端發(fā)送不均勻到達時序不穩(wěn)定之下的補發(fā)的效率,減少一幀中后接收的數(shù)據(jù)包接收時刻較遲,導(dǎo)致根據(jù)其他丟包確認機制重發(fā)的數(shù)據(jù)包較上一幀圖像過分延遲,從而使畫面顯示發(fā)生明顯卡頓的現(xiàn)象發(fā)生的風(fēng)險,提高了視頻播放的實時性,降低了裝置負擔(dān)。應(yīng)當理解的是,該丟包確認機制中的預(yù)定幀超時時間應(yīng)大于上一丟包確認機制中的預(yù)定超時時間。預(yù)定超時時間和預(yù)定幀超時時間的具體數(shù)值可以根據(jù)實時的網(wǎng)絡(luò)狀況來確定,例如考慮到某一時刻的網(wǎng)絡(luò)抖動時間來確定該時刻的預(yù)定超時時間和預(yù)定幀超時時間,關(guān)于網(wǎng)絡(luò)抖動時間的具體確定過程,現(xiàn)有技術(shù)中已有相關(guān)的技術(shù),本發(fā)明在此不再贅述。此外,若各個視頻幀中的分片數(shù)相等,則每個幀對應(yīng)的預(yù)定幀超時時間相同;若各個視頻幀中的分片數(shù)不全部相同,則每個幀對應(yīng)的預(yù)定幀超時時間與各自的分片數(shù)相關(guān),分片數(shù)越多,預(yù)定幀超時時間越長。在上述實施例中,所述至少兩種丟包確認機制中的其中一種機制C包括:若所述第一UDP數(shù)據(jù)包的第一幀序號與所述第二UDP數(shù)據(jù)包的第二幀序號不連續(xù)且所述第一UDP數(shù)據(jù)包的第一編號大于所述第二UDP數(shù)據(jù)包的第二編號,至少基于與所述第二幀序號連續(xù)的幀序號對應(yīng)的UDP數(shù)據(jù)包確定丟失數(shù)據(jù)包。由于第二UDP數(shù)據(jù)包的編號是接收緩沖區(qū)內(nèi)數(shù)值最大的,因此當接收端接收的來自發(fā)送端的第一UDP數(shù)據(jù)包的幀序號與第二UDP數(shù)據(jù)包的幀序號不連續(xù)時,可以得知此時接收端隔幀接收了數(shù)據(jù)包。又由于傳輸一個視頻幀的時間并不短,即使因為網(wǎng)絡(luò)原因使得第一UDP數(shù)據(jù)包提早到達接收端,第一幀序號和第二幀序號之間的幀序號對應(yīng)的各數(shù)據(jù)包此時也應(yīng)該至少有部分到達接收端,故而此時可以確定,第一UDP數(shù)據(jù)包所在視頻幀和第二UDP數(shù)據(jù)包所在視頻幀之間的視頻幀已丟失。作為一個示例,假設(shè)當前時刻接收到的第一UDP數(shù)據(jù)包的幀序號為7。此時,接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的幀序號為4。由于接收緩沖區(qū)內(nèi)時間最新的數(shù)據(jù)包的幀序號為4,表明接收端在當前時刻還未接收到幀序號為5或6的任一數(shù)據(jù)包。然而視頻播放時,是嚴格按照數(shù)據(jù)包內(nèi)部的時間戳進行的,即播放完幀序號為4對應(yīng)的所有數(shù)據(jù)包即第五視頻幀(第一視頻幀的序號為0)后,要立即播放幀序號為5對應(yīng)的所有數(shù)據(jù)包即第六視頻幀。幀序號為7的第一UDP數(shù)據(jù)包即使在當前時刻提早到達,也無法對其進行播放。而接收端在接收了幀序號為7的第一UDP數(shù)據(jù)包的時刻,都沒有接收到幀序號為5對應(yīng)的各數(shù)據(jù)包,表明幀序號為5對應(yīng)的各數(shù)據(jù)包可能因為網(wǎng)絡(luò)原因等已丟失。此時接收端可以確定幀序號為5對應(yīng)的各數(shù)據(jù)包為丟失數(shù)據(jù)包,向發(fā)送端發(fā)送相應(yīng)的重發(fā)請求。本實施例是對第二幀序號(本例中為4)和第一幀序號(本例中為7)之間接續(xù)第二幀序號的幀序號(本例中為5)對應(yīng)的各數(shù)據(jù)包生成重發(fā)請求,本發(fā)明也可以將第二幀序號(本例中為4)和第一幀序號(本例中為7)之間所有的幀序號(本例中為5和6)對應(yīng)的各數(shù)據(jù)包確定為丟失數(shù)據(jù)包以生成相應(yīng)的重發(fā)請求發(fā)送至發(fā)送端,本發(fā)明對此不做限制。本實施例是基于幀層面的連續(xù)性來確定丟失數(shù)據(jù)包以生成重發(fā)請求的。通過將第一UDP數(shù)據(jù)包的第一幀序號和接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的第二幀序號進行對比,將二者之間的、與第二幀序號連續(xù)的幀序號對應(yīng)的數(shù)據(jù)包確定為丟失數(shù)據(jù)包,可以在網(wǎng)絡(luò)發(fā)生擁塞或異常時快速地作出反應(yīng),有效地抗擊由于網(wǎng)絡(luò)狀況引起的連續(xù)大片丟包造成的數(shù)據(jù)包丟失問題,最大化地提升數(shù)據(jù)傳輸?shù)膶崟r性,使視頻的卡頓、延遲等現(xiàn)象發(fā)生的可能性降到最低,降低了裝置負擔(dān)。在上述實施例中,步驟S20根據(jù)所確定的丟失數(shù)據(jù)包,向發(fā)送端發(fā)送的相應(yīng)的UDP重發(fā)請求可以包括:將所述重發(fā)請求以預(yù)定時間間隔重復(fù)發(fā)送至所述發(fā)送端,并記錄所述重發(fā)請求從第一次發(fā)送開始計算的已發(fā)送時間及發(fā)送次數(shù);當所述重發(fā)請求的已發(fā)送時間達到預(yù)定時間間隔時,確定是否接收到所述丟失數(shù)據(jù)包中的任一數(shù)據(jù)包;-若是,則停止發(fā)送所述重發(fā)請求;-否則,確定所述重發(fā)請求的發(fā)送次數(shù)是否達到發(fā)送次數(shù)閾值,或者所述重發(fā)請求的已發(fā)送時間是否大于超時時間閾值;--當所述重發(fā)請求的發(fā)送次數(shù)達到發(fā)送次數(shù)閾值或者所述重發(fā)請求的已發(fā)送時間大于超時時間閾值時,停止發(fā)送所述重發(fā)請求。本實施例通過將重發(fā)請求重復(fù)發(fā)送,增加了接收丟失數(shù)據(jù)包的可能性,適時保證了視頻的畫面質(zhì)量。并通過設(shè)定重發(fā)次數(shù)閾值和重發(fā)超時時間閾值,適時減少了大量重發(fā)數(shù)據(jù)造成帶寬浪費和網(wǎng)絡(luò)擁塞的情況。應(yīng)當理解的是,在上述實施例中,若兩種丟包確認機制確定的丟失數(shù)據(jù)包發(fā)生重合時,需要從后確定的丟失數(shù)據(jù)包中除去發(fā)生重合的且該重合的丟失數(shù)據(jù)包對應(yīng)的重發(fā)請求的發(fā)送時間小于預(yù)定時間間隔。若重合的丟失數(shù)據(jù)包對應(yīng)的重發(fā)請求的發(fā)送時間大于預(yù)定時間間隔,則不必從后確定的丟失數(shù)據(jù)包中除去。預(yù)定時間間隔的時間值應(yīng)至少大于發(fā)送端和接收端之間的往返時延??蛇x地,當編碼器請求發(fā)送端發(fā)送新的視頻幀時,如果時延大于擁塞閾值,則可認為網(wǎng)絡(luò)發(fā)生擁塞,此時根據(jù)最近20秒接收端確認收到的數(shù)據(jù)大小計算一個帶寬值,并把這個帶寬值反饋給編碼器,編碼器收到反饋后,可根據(jù)帶寬調(diào)整編碼碼率。如果多次發(fā)生要求降低碼率的反饋,則可以縮小圖像的分辨率來保證視頻的流暢性和實時性。由于網(wǎng)絡(luò)可能會發(fā)生階段性擁塞,過后卻恢復(fù)正常,可以設(shè)置一個定時器來定時檢查發(fā)送端的重發(fā)數(shù)據(jù)包數(shù)量和時延,如果發(fā)現(xiàn)網(wǎng)絡(luò)恢復(fù)正常,則可以逐步增大編碼器編碼碼率,使發(fā)送端發(fā)送的視頻幀恢復(fù)到指定的分辨率和清晰度。下面以具體實施例對本發(fā)明實施例提供的數(shù)據(jù)傳輸方法及裝置進行說明。其中,假設(shè)每個視頻幀具有5個分片,即5個數(shù)據(jù)包。則前四幀(幀序號為0-3)中各UDP數(shù)據(jù)包的編號分別為0-4、5-9、10-14和15-19。假設(shè)往返時延RTT為60ms,預(yù)定時間間隔為60ms,預(yù)定超時時間RTO為40ms,預(yù)定幀超時時間為120ms,重發(fā)時間閾值MaxRTO為200ms,重發(fā)次數(shù)為4次,相鄰視頻幀發(fā)送間隔為60ms。接收端已接收了數(shù)據(jù)包0、1、2,其中第一個數(shù)據(jù)包的接收時間為t=30ms。t=60ms時確認接收數(shù)據(jù)包3。t=100ms時,確認接收數(shù)據(jù)包8。t=140ms時,由于數(shù)據(jù)包8和數(shù)據(jù)包3的編號不連續(xù),且此時距離數(shù)據(jù)包8的接收時間經(jīng)過了預(yù)定超時時間,因此丟包確定模塊根據(jù)丟包確認機制A可確定數(shù)據(jù)包4、5、6、7為丟失數(shù)據(jù)包,接收端中的請求重發(fā)模塊生成了對應(yīng)于數(shù)據(jù)包4、5、6、7的UDP重發(fā)請求并向發(fā)送端發(fā)送該重發(fā)請求。t=150ms時,距離第一幀(幀序號為0)內(nèi)第一個數(shù)據(jù)包的接收時間已經(jīng)過預(yù)定幀超時時間,丟包確定模塊根據(jù)丟包確認機制B,確定數(shù)據(jù)包4為丟失數(shù)據(jù)包。然而數(shù)據(jù)包4已在t=140ms時根據(jù)丟包確認機制A被確定為丟失數(shù)據(jù)包,且此時距離數(shù)據(jù)包5的重發(fā)請求發(fā)送時間僅經(jīng)過了10ms,未到達預(yù)定時間間隔60ms,因此此刻沒有丟失數(shù)據(jù)包。t=160ms時,接收端確認接收數(shù)據(jù)包5。t=170ms時,接收端確認接收數(shù)據(jù)包6。t=220ms時,距離第二幀(幀序號為1)內(nèi)第一個數(shù)據(jù)包(數(shù)據(jù)包8)的接收時間(t=100ms)已經(jīng)過預(yù)定幀超時時間120ms,根據(jù)丟包確認機制B,可確定數(shù)據(jù)包7和9為丟失數(shù)據(jù)包。接收端生成對應(yīng)于數(shù)據(jù)包7和9的UDP重發(fā)請求并向發(fā)送端發(fā)送該重發(fā)請求。t=300ms時,接收端確認接收數(shù)據(jù)包17。此時接收緩沖區(qū)內(nèi)編號最大的數(shù)據(jù)包為數(shù)據(jù)包8。由于數(shù)據(jù)包8的幀序號為1,數(shù)據(jù)包17的幀序號為3,二者的幀序號不連續(xù),因此根據(jù)丟包確認機制C,丟包確定模塊可確定幀序號為2的數(shù)據(jù)包即數(shù)據(jù)包10、11、12、13、14為丟失數(shù)據(jù)包。需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作合并,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。圖2是本發(fā)明一實施例的視頻數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖。本發(fā)明所述的視頻數(shù)據(jù)傳輸方法可以基于本實施例中的視頻數(shù)據(jù)傳輸裝置實施。如圖2所示,該裝置包括:丟包確定模塊21,用于基于接收到的第一UDP數(shù)據(jù)包的序號信息和與接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的序號信息之間的連續(xù)性,并根據(jù)至少兩種丟包確認機制確定丟失數(shù)據(jù)包,所述序號信息包括UDP數(shù)據(jù)包的編號和UDP數(shù)據(jù)包與所在視頻幀有關(guān)的幀序號;請求重發(fā)模塊22,用于根據(jù)所確定的丟失數(shù)據(jù)包,向發(fā)送端發(fā)送相應(yīng)的UDP重發(fā)請求。本發(fā)明實施例提供的視頻數(shù)據(jù)傳輸裝置,通過使用UDP協(xié)議來傳輸視頻數(shù)據(jù),避免了TCP協(xié)議繁重的三次握手、四次揮手和各種繁雜的傳輸特性,使得傳輸數(shù)據(jù)尤其是音視頻數(shù)據(jù)的實時性大大提高。且本發(fā)明實施例通過丟包確定模塊確定丟失的數(shù)據(jù)包,并通過請求重發(fā)模塊向發(fā)送端發(fā)送對丟失的數(shù)據(jù)包進行重發(fā)的請求,保證了數(shù)據(jù)傳輸時的可靠性。由于只對丟失的數(shù)據(jù)包進行重新傳輸,不會將已接收的數(shù)據(jù)舍棄后再次傳輸,實現(xiàn)了數(shù)據(jù)的選擇性重發(fā),降低了數(shù)據(jù)大量重發(fā)時發(fā)生網(wǎng)絡(luò)堵塞嚴重、數(shù)據(jù)亂序和丟失的風(fēng)險,也避免了帶寬浪費。通過設(shè)置接收緩沖區(qū)將亂序的數(shù)據(jù)進行排序和緩沖,減少了視頻播放失真的情況,提升了裝置性能。此外,本發(fā)明確定丟失數(shù)據(jù)包的丟包確認機制至少有兩種,完善了確定丟失數(shù)據(jù)包的場景,增加了對丟失數(shù)據(jù)包進行重發(fā)的可能性,加強了在不同網(wǎng)絡(luò)狀態(tài)下的丟包管理。在一些實施方式中,丟包確定模塊用于:當所述至少兩種丟包確認機制中的其中一種丟包確認機制確定的丟失數(shù)據(jù)包中包括其中另一種丟包確認機制已確定為丟失數(shù)據(jù)包的UDP數(shù)據(jù)包時,從其中一種丟包確認機制所確定的丟失數(shù)據(jù)包中除去其中另一種丟包確認機制已確定的UDP數(shù)據(jù)包,將剩余的數(shù)據(jù)包確定為丟失數(shù)據(jù)包。丟包確定模塊在一些實施方式中,丟包確定模塊用于:當所述第一UDP數(shù)據(jù)包的第一編號與所述第二UDP數(shù)據(jù)包的第二編號不連續(xù)且所述第一編號大于所述第二編號時,若在預(yù)定超時時間內(nèi)未接收到所述第一編號與所述第二編號之間的編號對應(yīng)的其他UDP數(shù)據(jù)包,則將所述其他UDP數(shù)據(jù)包確定為丟失數(shù)據(jù)包。在一些實施方式中,丟包確定模塊用于:若所述第一UDP數(shù)據(jù)包的第一幀序號與所述第二UDP數(shù)據(jù)包的第二幀序號不同且所述第一UDP數(shù)據(jù)包的第一編號大于所述第二UDP數(shù)據(jù)包的第二編號,等待預(yù)定幀超時時間,將所述第一幀序號對應(yīng)的UDP數(shù)據(jù)包中未接收到的UDP數(shù)據(jù)包確定為丟失數(shù)據(jù)包。在一些實施方式中,丟包確定模塊用于:若所述第一UDP數(shù)據(jù)包的第一幀序號與所述第二UDP數(shù)據(jù)包的第二幀序號不連續(xù)且所述第一UDP數(shù)據(jù)包的第一編號大于所述第二UDP數(shù)據(jù)包的第二編號,至少基于與所述第二幀序號連續(xù)的幀序號對應(yīng)的UDP數(shù)據(jù)包確定丟失數(shù)據(jù)包。本發(fā)明實施例提供了一種非易失性計算機存儲介質(zhì),所述計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令可執(zhí)行上述任意方法實施例中的視頻數(shù)據(jù)傳輸方法;作為一種實施方式,本發(fā)明的非易失性計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令設(shè)置為:基于接收到的第一UDP數(shù)據(jù)包的序號信息和與接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的序號信息之間的連續(xù)性,并根據(jù)至少兩種丟包確認機制確定丟失數(shù)據(jù)包;根據(jù)所確定的丟失數(shù)據(jù)包,向發(fā)送端發(fā)送相應(yīng)的UDP重發(fā)請求。作為一種非易失性計算機可讀存儲介質(zhì),可用于存儲非易失性軟件程序、非易失性計算機可執(zhí)行程序以及模塊,如本發(fā)明實施例中的視頻數(shù)據(jù)傳輸方法對應(yīng)的程序指令/模塊(例如,附圖2所示的丟包確定模塊21和請求重發(fā)模塊22)。所述一個或者多個模塊存儲在所述非易失性計算機可讀存儲介質(zhì)中,當被處理器執(zhí)行時,執(zhí)行上述任意方法實施例中的視頻數(shù)據(jù)傳輸方法。非易失性計算機可讀存儲介質(zhì)可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應(yīng)用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)視頻數(shù)據(jù)傳輸裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,非易失性計算機可讀存儲介質(zhì)可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實施例中,非易失性計算機可讀存儲介質(zhì)可選包括相對于處理器遠程設(shè)置的存儲器,這些遠程存儲器可以通過網(wǎng)絡(luò)連接至視頻數(shù)據(jù)傳輸裝置。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。特別地,本申請還提供了一種計算機程序產(chǎn)品,包括至少一個非易失性計算機存儲介質(zhì),所述非易失性計算機存儲介質(zhì)具有存儲在其中的計算機可執(zhí)行程序代碼指令,所述計算機可執(zhí)行程序代碼指令能夠執(zhí)行上述任意方法實施例中的視頻數(shù)據(jù)傳輸方法。本發(fā)明實施例中可以通過硬件處理器(hardwareprocessor)來實現(xiàn)相關(guān)功能模塊。圖3是本發(fā)明一實施例提供的實施視頻數(shù)據(jù)傳輸方法的電子設(shè)備即持續(xù)集成服務(wù)器的結(jié)構(gòu)示意圖。如圖3所示,該設(shè)備包括:一個或多個處理器310以及存儲器320,圖3中以一個處理器310為例。視頻數(shù)據(jù)傳輸裝置還可以包括:輸入裝置330和輸出裝置340。處理器310、存儲器320、輸入裝置330和輸出裝置340可以通過總線或者其他方式連接,圖3中以通過總線連接為例。存儲器320為上述的非易失性計算機可讀存儲介質(zhì)。處理器310通過運行存儲在存儲器320中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述方法實施例所示視頻數(shù)據(jù)傳輸方法。輸入裝置330可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與視頻數(shù)據(jù)傳輸裝置的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。輸出裝置340可包括顯示屏等顯示設(shè)備。上述產(chǎn)品可執(zhí)行本發(fā)明實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實施例中詳盡描述的技術(shù)細節(jié),可參見本發(fā)明實施例所提供的方法。作為一種實施方式,上述電子設(shè)備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠:基于接收到的第一UDP數(shù)據(jù)包的序號信息和與接收緩沖區(qū)內(nèi)時間最新的第二UDP數(shù)據(jù)包的序號信息之間的連續(xù)性,并根據(jù)至少兩種丟包確認機制確定丟失數(shù)據(jù)包;根據(jù)所確定的丟失數(shù)據(jù)包,向發(fā)送端發(fā)送相應(yīng)的UDP重發(fā)請求。本發(fā)明實施例的電子設(shè)備以多種形式存在,包括但不限于:(1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。(2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。(4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。(5)其他具有數(shù)據(jù)交互功能的電子裝置。需要說明的是,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(ROM)或隨機存儲記憶體(RAM)等。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。通過以上的實施例的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施例可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(裝置)、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令系統(tǒng)的制造品,該指令系統(tǒng)實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。當前第1頁1 2 3