專利名稱:一種傳輸視頻數(shù)據(jù)的方法、系統(tǒng)和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子技術(shù)領(lǐng)域,特別涉及一種傳輸視頻數(shù)據(jù)的方法、系統(tǒng)和裝置。
背景技術(shù):
在攝像頭傳輸實時視頻過程中,幀率控制是一項非常重要的工作。攝像頭 根據(jù)現(xiàn)有的數(shù)字技術(shù),能夠產(chǎn)生準(zhǔn)確的時鐘來維持準(zhǔn)確的幀率。
目前一見頻處理過程包括
攝像頭生成了一幀視頻數(shù)據(jù),會將視頻數(shù)據(jù)分成多個數(shù)據(jù)包發(fā)送給終端; 終端將收到的多個數(shù)據(jù)包合成一幀視頻數(shù)據(jù),然后發(fā)送^f見頻處理系統(tǒng);處理系 統(tǒng)對收到的視頻數(shù)據(jù)進(jìn)行處理。
但是由于受到帶寬的限制,攝像頭在發(fā)送給終端的過程中,會造成數(shù)據(jù)傳 輸出錯,經(jīng)常出現(xiàn)幀率不穩(wěn)定的情況。
如果數(shù)據(jù)傳輸出錯,比如丟包或傳輸過程中數(shù)據(jù)包損壞,則終端在發(fā)送給 處理系統(tǒng)后,會增加處理系統(tǒng)處理視頻數(shù)據(jù)的難度,比如容易造成音頻和視頻 不同步。
綜上所述,目前的視頻傳輸過程中,如果數(shù)據(jù)傳輸出錯,會影響幀率的穩(wěn) 定性,從而容易出現(xiàn)音頻和^f見頻不同步的情況。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種傳輸視頻數(shù)據(jù)的方法、系統(tǒng)和裝置,用以在數(shù)據(jù)傳 輸出錯時,保持幀率的穩(wěn)定性,從而可以避免由于幀率的不穩(wěn)定,造成音頻和 視頻不同步的情況。 5本發(fā)明實施例提供的一種傳輸視頻數(shù)據(jù)的方法,該方法包括 終端將接收到的來自視頻設(shè)備的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前 幀#見頻數(shù)據(jù);
所述終端判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整,在確定所形成的當(dāng)前幀 視頻數(shù)據(jù)不完整時,將已緩存的 一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
本發(fā)明實施例提供的一種傳輸視頻數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括
視頻設(shè)備,用于將幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包并發(fā)送;
終端,用于將接收到的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù) 據(jù),判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整,在確定所形成的當(dāng)前幀視頻數(shù)據(jù) 不完整時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
本發(fā)明實施例提供的一種終端,該終端包括
存儲模塊,用于緩存幀視頻數(shù)據(jù);
組合模塊,用于將接收到的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視 頻數(shù)據(jù);
判斷模塊,用于判斷所述組合模塊所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整; 第一發(fā)送模塊,用于在所述判斷模塊確定所形成的當(dāng)前幀視頻數(shù)據(jù)不完整 時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
本發(fā)明實施例終端將接收到的來自視頻設(shè)備的屬于同 一幀的數(shù)據(jù)包進(jìn)行 組合,形成當(dāng)前幀視頻數(shù)據(jù);所述終端判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整 在確定所形成的當(dāng)前幀視頻數(shù)據(jù)不完整時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處 理系統(tǒng)。由于在數(shù)據(jù)傳輸出錯時,能夠?qū)⒕彺娴囊粠曨l數(shù)據(jù)發(fā)送給處理系統(tǒng), 從而能夠保持幀率的穩(wěn)定性,進(jìn)而能夠避免由于幀率的不穩(wěn)定,造成音頻和視 頻不同步的情況;同時還能夠避免對于實時性要求很高,且對時頻幀率有依賴 的處理系統(tǒng)的處理系統(tǒng),由于幀率不穩(wěn)定造成處理系統(tǒng)無法工作的情況。
6圖1A為本發(fā)明實施例傳輸視頻數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)示意圖1B本發(fā)明實施例同一幀的數(shù)據(jù)包的示意圖一;
圖1C本發(fā)明實施例同一幀的數(shù)據(jù)包的示意圖二;
圖2為本發(fā)明實施例終端結(jié)構(gòu)示意圖3為本發(fā)明實施例視頻數(shù)據(jù)包傳輸示意圖4為本發(fā)明實施例傳輸視頻數(shù)據(jù)的方法流程示意圖5為本發(fā)明實施例視頻設(shè)備傳輸視頻數(shù)據(jù)的流程示意圖;
圖6為本發(fā)明實施例終端傳輸視頻數(shù)據(jù)的流程示意圖。
具體實施例方式
本發(fā)明實施例終端將接收到的來自視頻設(shè)備的屬于同一幀的數(shù)據(jù)包進(jìn)行 組合,形成當(dāng)前幀^L頻數(shù)據(jù),判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整,在確定 所形成的當(dāng)前幀視頻數(shù)據(jù)不完整時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系 統(tǒng)。由于在數(shù)據(jù)傳輸出錯時,能夠?qū)⒕彺娴囊粠曨l數(shù)據(jù)發(fā)送給處理系統(tǒng),從 而降低處理系統(tǒng)處理視頻數(shù)據(jù)的難度,進(jìn)而減少音頻和視頻不同步的情況。
其中,本發(fā)明實施例的視頻設(shè)備包括但不限于下列設(shè)備中的一種
USB接口攝像頭(即通過USB接口向終端傳輸幀視頻數(shù)據(jù)),藍(lán)牙接口攝 像頭(即通過藍(lán)牙接口向終端傳輸幀視頻數(shù)據(jù)),1394接口攝像頭(即通過1394 接口向終端傳輸幀一見頻數(shù)據(jù)),攝像機(jī)。
本發(fā)明實施例的終端包括但不限于下列終端中的 一種
個人電腦,視頻傳輸終端。
下面結(jié)合說明書附圖對本發(fā)明實施例作進(jìn)一步詳細(xì)描述。 如圖1A所示,本發(fā)明實施例傳輸視頻數(shù)據(jù)的系統(tǒng)包括視頻設(shè)備10和終 端20。
視頻設(shè)備10,用于將幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包并發(fā)送給終端20。 終端20,用于將接收到來自視頻設(shè)備10的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù),并判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整;在確定所形 成的當(dāng)前幀視頻數(shù)據(jù)不完整時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
其中,視頻設(shè)備10將每幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包,將屬于同一幀的多 個數(shù)據(jù)包按照預(yù)先設(shè)定的順序連續(xù)發(fā)送,其中連續(xù)發(fā)送的屬于同一幀的多個數(shù) 據(jù)包中的第 一個數(shù)據(jù)包含有幀頭標(biāo)識。
具體的,視頻設(shè)備10捕獲了一幀視頻數(shù)據(jù)后,會將該幀視頻數(shù)據(jù)分成多 個數(shù)據(jù)包,并按照預(yù)先設(shè)定的順序,在發(fā)送的第一個數(shù)據(jù)包中添加幀頭標(biāo)識, 連續(xù)發(fā)送多個數(shù)據(jù)包。
設(shè)定的順序包括j旦不限于下列順序中的 一種:
按照數(shù)據(jù)包的標(biāo)識(即數(shù)據(jù)包中的數(shù)據(jù)在一幀視頻數(shù)據(jù)中的位置);按照 數(shù)據(jù)包的容量。
在具體實施過程中,終端20需要知道視頻設(shè)備10采用哪種順序發(fā)送數(shù)據(jù) 包,比如可以預(yù)先設(shè)置一種順序,也可以設(shè)定多個順序由視頻設(shè)備10和終端 20進(jìn)行協(xié)商確定。
較佳的方式是在劃分?jǐn)?shù)據(jù)包時, 一幀中需要第一個發(fā)送的數(shù)據(jù)包(即含有 幀頭標(biāo)識的數(shù)據(jù)包)的容量不大于預(yù)先設(shè)定的容量。比如設(shè)定的容量可以是 8Byte或16Byte,這樣要第一個發(fā)送的數(shù)據(jù)包的容量可以是8Byte或16Byte(或 者小于犯yte或16Byte),這樣可以提高第一個數(shù)據(jù)包傳輸?shù)某晒β省?br>
需要說明的是,可以根據(jù)需要設(shè)定相應(yīng)的容量,而設(shè)定的容量越小,第一 個數(shù)據(jù)包傳輸?shù)某晒β试礁摺?br>
幀頭標(biāo)識的作用是讓終端20可以區(qū)分哪些數(shù)據(jù)包屬于同一幀視頻數(shù)據(jù), 所以只要與數(shù)據(jù)包中的數(shù)據(jù)不同的信息都可以作為幀頭標(biāo)識,比如一些特殊數(shù) 字FFD34等。
幀頭標(biāo)識可以是預(yù)先設(shè)定;也可以由視頻設(shè)備10和終端20協(xié)商后確定。 每一幀對應(yīng)的幀頭標(biāo)識可以相同也可以不同。
其中,終端20將接收到的相鄰的兩個含有幀頭標(biāo)識的數(shù)據(jù)包之間的數(shù)據(jù)包,以及這兩個含有幀頭標(biāo)識的數(shù)據(jù)包中的前一個數(shù)據(jù)包作為同 一幀的數(shù)據(jù) 包,根據(jù)預(yù)先設(shè)定的順序,將屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻 數(shù)據(jù)。
如圖1B所示,比如終端20收到含有幀頭標(biāo)識的數(shù)據(jù)包A和數(shù)據(jù)包F后, 確定數(shù)據(jù)包A和數(shù)據(jù)包F是相鄰的兩個含有幀頭標(biāo)識的數(shù)據(jù)包(即數(shù)據(jù)包A 和數(shù)據(jù)包F之間沒有含幀頭標(biāo)識的數(shù)據(jù)包);
幀的數(shù)據(jù)包,即數(shù)據(jù)包A E是同一幀的數(shù)據(jù)包。
在具體實施過程中,視頻設(shè)備10還可以在發(fā)送的一幀視頻數(shù)據(jù)中的最后 一個數(shù)據(jù)包中添加幀尾標(biāo)識,這樣終端20可以將接收到的含有幀頭標(biāo)識和幀 尾標(biāo)識的相鄰的兩個數(shù)據(jù)包,以及這兩個數(shù)據(jù)包之間的數(shù)據(jù)包作為同一幀的數(shù) 據(jù)包。
如圖1C所示,比如終端20收到含有幀頭標(biāo)識數(shù)據(jù)包A和含有幀尾標(biāo)識 數(shù)據(jù)包F后,將數(shù)據(jù)包A和數(shù)據(jù)包F之間的所有數(shù)據(jù)包以及數(shù)據(jù)包A和F作 為同一幀的數(shù)據(jù)包,即數(shù)據(jù)包A F是同一幀的數(shù)據(jù)包。
幀尾標(biāo)識和幀頭標(biāo)識的特點類似,不再贅述。
需要說明的是本發(fā)明實施例并不局限于上述根據(jù)幀頭標(biāo)識確定數(shù)據(jù)包屬 于同一幀視頻數(shù)據(jù)的方式,其他能夠確定數(shù)據(jù)包屬于同一幀視頻數(shù)據(jù)的方式都 適用本實施例。
如圖2所示,本發(fā)明實施例終端包括存儲模塊200、組合模塊210、判 斷模塊220和第一發(fā)送模塊230。
存儲模塊200,用于緩存幀視頻數(shù)據(jù)。
組合模塊210,用于將接收到的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前 幀-f見頻數(shù)據(jù)。
具體的,組合模塊210將接收到的相鄰的兩個含有幀頭標(biāo)識的數(shù)據(jù)包之間 的數(shù)據(jù)包,以及兩個含有幀頭標(biāo)識的數(shù)據(jù)包中的前一個數(shù)據(jù)包作為同一幀的數(shù)據(jù)包,將屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀-現(xiàn)頻數(shù)據(jù),具體可以參見
圖1B。
判斷模塊220,用于判斷組合模塊210所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整。 其中,判斷模塊220可以根據(jù)下列方式判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否 完整
在視頻幀長度固定的情況下,根據(jù)視頻幀的長度來判斷視頻是否完整正
確;
視頻幀長度不固定的情況下,有多種判斷方式,下面列舉幾種
方式一、視頻設(shè)備在含有幀頭標(biāo)識的數(shù)據(jù)包中增加長度信息,該長度信息 表示含有幀頭標(biāo)識的數(shù)據(jù)包所在的一幀視頻數(shù)據(jù)的長度;這樣判斷模塊220根 據(jù)長度信息就可以確定組合模塊210所形成的當(dāng)前幀碎見頻數(shù)據(jù)是否完整。
方式二、針對特定的視頻數(shù)據(jù),比如MJPG視頻數(shù)據(jù),由于組合模塊210 需要將視頻數(shù)據(jù)解碼,轉(zhuǎn)換成非壓縮的通用視頻數(shù)據(jù),如RGB24, YUY2等, 這樣判斷模塊220可以根據(jù)轉(zhuǎn)換生成的數(shù)據(jù)確定組合模塊210所形成的當(dāng)前幀 視頻數(shù)據(jù)是否完整。
比如視頻設(shè)備在MJPG視頻數(shù)據(jù)中攜帶壓縮之前的一幀視頻數(shù)據(jù)的長度, 判斷模塊220查看確定組合模塊210所形成的當(dāng)前幀視頻數(shù)據(jù)的長度與壓縮之 前的一幀^L頻數(shù)據(jù)的長度是否相同,如果相同,則確定幀3見頻凝:據(jù)完整;否則 確定幀視頻數(shù)據(jù)不完整。
需要說明的是,本發(fā)明實施例確定當(dāng)前幀視頻數(shù)據(jù)是否完整并不局限于上 述方式,其他能夠確定當(dāng)前幀視頻數(shù)據(jù)是否完整的方是否適用本實施例。
第一發(fā)送模塊230,用于在判斷模塊220確定組合模塊210所形成的當(dāng)前 幀視頻數(shù)據(jù)不完整時,將存儲模塊200中已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系 統(tǒng)。
具體的,第一發(fā)送模塊230在判斷模塊220確定所形成的當(dāng)前幀視頻數(shù)據(jù) 不完整時,將存儲模塊200中已緩存的幀視頻數(shù)據(jù)中與當(dāng)前幀視頻數(shù)據(jù)在生成時間上最接近的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。其中,存儲i^莫塊200有兩種緩存方式方式一、存儲模塊200可以預(yù)先只存儲一幀; 見頻數(shù)據(jù),并且不再存儲新的 視頻數(shù)據(jù);方式二、存儲模塊200還可以在有完整的一幀視頻數(shù)據(jù)后,就緩存完整的 一幀視頻數(shù)據(jù),這樣會不斷緩存幀視頻數(shù)據(jù),當(dāng)有不完整的幀視頻數(shù)據(jù)時,最 后緩存的一幀視頻數(shù)據(jù)在生成時間上肯定最接近當(dāng)前不完整的幀視頻數(shù)據(jù)。如果采用方式二,本發(fā)明實施例的終端還可以進(jìn)一步包括第二發(fā)送模塊240。第二發(fā)送模塊240,在判斷模塊220確定組合模塊210所形成的當(dāng)前幀視 頻數(shù)據(jù)完整時,將所形成的當(dāng)前幀視頻數(shù)據(jù)緩存到存儲模塊200中,并將所形 成的當(dāng)前幀^f見頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。在具體實施過程中,存儲模塊200預(yù)先緩存一幀視頻數(shù)據(jù),然后在有新的 一幀視頻數(shù)據(jù)需要緩存時,可以替換掉已經(jīng)緩存的一幀視頻數(shù)據(jù);存儲模塊200 還可以預(yù)先緩存一幀視頻數(shù)據(jù),然后再繼續(xù)緩存新的一幀視頻數(shù)據(jù),而不替換 掉已緩存的一幀視頻數(shù)據(jù)。因為接收的視頻幀數(shù)據(jù)是實時產(chǎn)生的,所以新緩存的一幀視頻數(shù)據(jù)在生成 時間上一定最接近當(dāng)前幀視頻數(shù)據(jù)。比如第一幀視頻數(shù)據(jù)是完整的,則存儲模塊200可以將第一幀視頻數(shù)據(jù) 替換掉預(yù)先緩存的幀視頻數(shù)據(jù),也可以同時緩存第一幀視頻數(shù)據(jù)和預(yù)先緩存的 幀-現(xiàn)頻it據(jù)。如果第二幀視頻數(shù)據(jù)不完整,存儲模塊200不論采用哪種緩存方式,第一 幀視頻數(shù)據(jù)在生成時間上一定最接近第二幀視頻數(shù)據(jù)。如果第一幀視頻數(shù)據(jù)不完整,則存儲模塊200預(yù)先緩存的幀視頻數(shù)據(jù)在生 成時間上一定最接近第一幀視頻數(shù)據(jù);如果第二幀視頻數(shù)據(jù)還是不完整,則存 儲模塊200預(yù)先緩存的幀視頻數(shù)據(jù)在生成時間上一定最接近第二幀視頻數(shù)據(jù)。具體可以參見圖3:
圖3中,第n幀完整,所以緩存第n幀,并將第n幀發(fā)送給處理系統(tǒng);由 于第n+l幀傳輸過程有壞包,在收到下一幀(第n+2幀)幀的頭包(即含有幀 頭標(biāo)識的數(shù)據(jù)包)時,丟棄第n+l幀,將緩存的第n幀傳給處理系統(tǒng)。后續(xù)過 程類似,不再贅述。
當(dāng)然,第一發(fā)送模塊220也可以從存儲模塊200中隨機(jī)選擇一幀視頻數(shù)據(jù) 發(fā)送給處理系統(tǒng)。
如圖4所示,本發(fā)明實施例傳輸視頻數(shù)據(jù)的方法包括下列步驟
步驟401 、終端將接收到的來自視頻設(shè)備的屬于同 一幀的數(shù)據(jù)包進(jìn)行組合, 形成當(dāng)前幀視頻數(shù)據(jù)。
步驟402、終端判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整。
步驟403、終端在確定所形成的當(dāng)前幀-f見頻數(shù)據(jù)不完整時,將已緩存的一 幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
其中,步驟401之前還可以進(jìn)一步包括
步驟400、視頻設(shè)備將每幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包,將屬于同一幀的多 個數(shù)據(jù)包按照預(yù)先設(shè)定的順序連續(xù)發(fā)送,其中連續(xù)發(fā)送的屬于同一幀的多個數(shù) 據(jù)包中的第 一個數(shù)據(jù)包含有幀頭標(biāo)識。
具體的,視頻設(shè)備捕獲了一幀視頻數(shù)據(jù)后,會將該幀視頻數(shù)據(jù)分成多個數(shù) 據(jù)包,并按照預(yù)先設(shè)定的順序,在發(fā)送的第一個數(shù)據(jù)包中添加幀頭標(biāo)識,連續(xù) 發(fā)送多個數(shù)據(jù)包。
設(shè)定的順序包括但不限于下列順序中的 一種
按照數(shù)據(jù)包的標(biāo)識(即數(shù)據(jù)包中的數(shù)據(jù)在一幀視頻數(shù)據(jù)中的位置);按照 數(shù)據(jù)包的容量。
在具體實施過程中,終端需要知道視頻設(shè)備采用哪種順序發(fā)送數(shù)據(jù)包,比 如可以預(yù)先設(shè)置一種順序,也可以設(shè)定多個順序由視頻設(shè)備和終端進(jìn)行協(xié)商確 定。較佳的方式是在劃分?jǐn)?shù)據(jù)包時, 一幀中需要第一個發(fā)送的數(shù)據(jù)包(即含有 幀頭標(biāo)識的數(shù)據(jù)包)的容量不大于預(yù)先設(shè)定的容量。比如設(shè)定的容量可以是8Byte或16Byte,這樣要第一個發(fā)送的數(shù)據(jù)包的容量可以是8Byte或16Byte(或 者小于犯yte或16Byte),這樣可以提高第一個數(shù)據(jù)包傳輸?shù)某晒β省P枰f明的是,可以根據(jù)需要設(shè)定相應(yīng)的容量,而設(shè)定的容量越小,第一 個數(shù)據(jù)包傳輸?shù)某晒β试礁?。幀頭標(biāo)識的作用是讓終端可以區(qū)分哪些數(shù)據(jù)包屬于同一幀視頻數(shù)據(jù),所以 只要與數(shù)據(jù)包中的數(shù)據(jù)不同的信息都可以作為幀頭標(biāo)識,比如一些特殊數(shù)字 FFD34等。幀頭標(biāo)識可以是預(yù)先設(shè)定;也可以由視頻設(shè)備和終端協(xié)商后確定。 每一 幀對應(yīng)的幀頭標(biāo)識可以相同也可以不同。相應(yīng)的,步驟40l中,終端將接收到的相鄰的兩個含有幀頭標(biāo)識的數(shù)據(jù)包 之間的數(shù)據(jù)包,以及兩個含有幀頭標(biāo)識的數(shù)據(jù)包中的前一個數(shù)據(jù)包作為同一幀 的數(shù)據(jù)包,將屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù);具體可以參 見圖1B。在具體實施過程中,視頻設(shè)備還可以在發(fā)送的一幀視頻數(shù)據(jù)中的最后一個 數(shù)據(jù)包中添加幀尾標(biāo)識,這樣終端可以將接收到的含有幀頭標(biāo)識和幀尾標(biāo)識的 相鄰的兩個數(shù)據(jù)包,以及這兩個數(shù)據(jù)包之間的數(shù)據(jù)包作為同一幀的數(shù)據(jù)包;具 體可以參見圖1C。幀尾標(biāo)識和幀頭標(biāo)識的特點類似,不再贅述。于同一幀視頻數(shù)據(jù)的方式,其他能夠確定數(shù)據(jù)包屬于同一幀視頻數(shù)據(jù)的方式都 適用本實施例。步驟402中,終端可以根據(jù)下列方式判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整在視頻幀長度固定的情況下,根據(jù)視頻幀的長度來判斷視頻是否完整正13確;
視頻幀長度不固定的情況下,有多種判斷方式,下面列舉幾種
方式一、視頻設(shè)備在含有幀頭標(biāo)識的數(shù)據(jù)包中增加長度信息,該長度信息
表示含有幀頭標(biāo)識的數(shù)據(jù)包所在的一幀視頻數(shù)據(jù)的長度;這樣終端根據(jù)長度信
息就可以確定所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整。
方式二、針對特定的視頻數(shù)據(jù),比如MJPG視頻數(shù)據(jù),由于終端需要將視
頻數(shù)據(jù)解碼,轉(zhuǎn)換成非壓縮的通用視頻數(shù)據(jù),如RGB24, YUY2等,這樣終端
比如視頻設(shè)備在MJPG視頻數(shù)據(jù)中攜帶壓縮之前的一幀視頻數(shù)據(jù)的長度, 判斷模塊220查看確定組合模塊210所形成的當(dāng)前幀視頻數(shù)據(jù)的長度與壓縮之 前的一幀視頻數(shù)據(jù)的長度是否相同,如果相同,則確定幀視頻數(shù)據(jù)完整;否則 確定幀視頻數(shù)據(jù)不完整。
需要說明的是,本發(fā)明實施例確定當(dāng)前幀視頻數(shù)據(jù)是否完整并不局限于上 述方式,其他能夠確定當(dāng)前幀視頻數(shù)據(jù)是否完整的方是否適用本實施例。
步驟403中,終端在確定所形成的當(dāng)前幀;現(xiàn)頻數(shù)據(jù)不完整時,將緩存的幀 視頻數(shù)據(jù)中與當(dāng)前幀視頻數(shù)據(jù)在生成時間上最接近的一幀視頻數(shù)據(jù)發(fā)送給處 理系統(tǒng)。
其中,終端有兩種緩存方式
方式一、終端可以預(yù)先只存儲一幀視頻數(shù)據(jù),并且不再存儲新的視頻數(shù)據(jù);
方式二、終端還可以在有完整的一幀視頻數(shù)據(jù)后,就緩存完整的一幀視頻 數(shù)據(jù),這樣會不斷緩存幀一見頻數(shù)據(jù),當(dāng)有不完整的幀視頻數(shù)據(jù)時,最后緩存的 一幀視頻數(shù)據(jù)在生成時間上肯定最接近當(dāng)前不完整的幀視頻數(shù)據(jù)。
如果采用方式二,步驟402之后還可以進(jìn)一步包括
步驟a403、終端在確定所形成的當(dāng)前幀;f見頻數(shù)據(jù)完整時,緩存所形成的當(dāng) 前幀視頻數(shù)據(jù),并將所形成的當(dāng)前幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
在具體實施過程中,終端預(yù)先緩存一幀視頻數(shù)據(jù),然后再有新的一幀視頻數(shù)據(jù)需要緩存時,可以替換掉已經(jīng)緩存的一幀視頻數(shù)據(jù);終端還可以預(yù)先緩存 一幀視頻數(shù)據(jù),然后再繼續(xù)緩存新的一幀視頻數(shù)據(jù),而不替換掉已緩存的一幀 視頻數(shù)據(jù)。
因為接收的視頻幀數(shù)據(jù)是實時產(chǎn)生的,所以新緩存的一幀視頻數(shù)據(jù)在生成 時間上一定最接近當(dāng)前幀視頻數(shù)據(jù)。
比如第一幀視頻數(shù)據(jù)是完整的,則終端可以將第一幀一見頻數(shù)據(jù)替換掉預(yù) 先緩存的幀視頻數(shù)據(jù),也可以同時緩存第一幀視頻數(shù)據(jù)和預(yù)先緩存的幀視頻數(shù) 據(jù)。
如果第二幀視頻數(shù)據(jù)不完整,終端不論采用哪種緩存方式,第一幀視頻數(shù) 據(jù)在生成時間上一定最接近第二幀視頻數(shù)據(jù)。
如果第 一幀視頻數(shù)據(jù)不完整,則終端預(yù)先緩存的幀視頻數(shù)據(jù)在生成時間上 一定最接近第一幀視頻數(shù)據(jù);如果第二幀視頻數(shù)據(jù)還是不完整,則終端預(yù)先緩 存的幀視頻數(shù)據(jù)在生成時間上一定最接近第二幀視頻數(shù)據(jù)。
當(dāng)然,終端也可以從緩存的多個幀視頻數(shù)據(jù)中隨機(jī)選擇一幀視頻數(shù)據(jù)發(fā)送 給處理系統(tǒng)。
如圖5所示,本發(fā)明實施例視頻設(shè)M輸視頻數(shù)據(jù)的流程包括
步驟500、視頻設(shè)備保存設(shè)置的幀速率。
步驟501、視頻設(shè)備按照設(shè)置的幀速率,產(chǎn)生視頻流。
步驟502、視頻設(shè)備在收到產(chǎn)生信號后,將一幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包, 將屬于同一幀的多個數(shù)據(jù)包按照預(yù)先設(shè)定的順序連續(xù)發(fā)送,其中連續(xù)發(fā)送的屬 于同 一幀的多個數(shù)據(jù)包中的第 一個數(shù)據(jù)包含有幀頭標(biāo)識。
步驟503、視頻設(shè)備繼續(xù)對下一幀視頻數(shù)據(jù)進(jìn)行處理(即返回步驟502)。
如圖6所示,本發(fā)明實施例終端傳輸視頻數(shù)據(jù)的流程包括
步驟600、終端保存設(shè)置的幀速率。
步驟601、終端按照設(shè)置的幀速率,接收來自視頻設(shè)備的數(shù)據(jù)包。
步驟602、終端將接收到的相鄰的兩個含有幀頭標(biāo)識的數(shù)據(jù)包之間的數(shù)據(jù)包,以及兩個含有幀頭標(biāo)識的數(shù)據(jù)包中的前一個數(shù)據(jù)包作為同一幀的數(shù)據(jù)包, 將屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù)。步驟603、終端判斷當(dāng)前幀視頻數(shù)據(jù)是否完整,如果是,則執(zhí)行步驟604; 否則,執(zhí)行步驟605。步驟604、終端緩存當(dāng)前幀視頻數(shù)據(jù),并將當(dāng)前幀視頻數(shù)據(jù)發(fā)送給處理系 統(tǒng),并執(zhí)行步驟606。步驟605、終端丟棄當(dāng)前幀視頻數(shù)據(jù),將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處 理系統(tǒng),執(zhí)行步驟606。步驟606、終端繼續(xù)對接收的下一幀視頻數(shù)據(jù)進(jìn)行處理(即返回步驟602 )。從上述實施例中可以看出本發(fā)明實施例終端將接收到的來自視頻設(shè)備的 屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù);所述終端判斷所形成的 當(dāng)前幀視頻數(shù)據(jù)是否完整在確定所形成的當(dāng)前幀視頻數(shù)據(jù)不完整時,將已緩存 的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。由于在數(shù)據(jù)傳輸出錯時,能夠?qū)⒕彺娴囊粠?視頻數(shù)據(jù)發(fā)送給處理系統(tǒng),從而能夠保持幀率的穩(wěn)定性,進(jìn)而能夠避免由于幀 率的不穩(wěn)定,造成音頻和視頻不同步的情況;同時還能夠避免對于實時性要求 很高,且對時頻幀率有依賴的處理系統(tǒng)的處理系統(tǒng),由于幀率不穩(wěn)定造成處理 系統(tǒng)無法工作的情況。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā) 明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。1權(quán)利要求
1、一種傳輸視頻數(shù)據(jù)的方法,其特征在于,該方法包括終端將接收到的來自視頻設(shè)備的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù);所述終端判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整,在確定所形成的當(dāng)前幀視頻數(shù)據(jù)不完整時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
2、 如權(quán)利要求l所述的方法,其特征在于,該方法還包括 所述終端在確定所形成的當(dāng)前幀視頻數(shù)據(jù)完整時,緩存所述所形成的當(dāng)前幀視頻數(shù)據(jù),并將所述所形成的當(dāng)前幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
3、 如權(quán)利要求1或2所述的方法,其特征在于,所述終端將緩存的一幀 視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)包括所述終端將已緩存的幀視頻數(shù)據(jù)中與當(dāng)前幀視頻數(shù)據(jù)在生成時間上最接 近的 一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
4、 如權(quán)利要求l所述的方法,其特征在于,該方法還包括 所述視頻設(shè)備將每幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包,將屬于同 一幀的多個數(shù)據(jù)包按照預(yù)先設(shè)定的順序連續(xù)發(fā)送,其中連續(xù)發(fā)送的屬于同一幀的多個數(shù)據(jù)包中 的第 一個數(shù)據(jù)包含有幀頭標(biāo)識。
5、 如權(quán)利要求4所述的方法,其特征在于,所述終端形成當(dāng)前幀視頻數(shù) 據(jù)之前還包括所述終端將接收到的相鄰的兩個含有所述幀頭標(biāo)識的數(shù)據(jù)包之間的數(shù)據(jù) 包,以及兩個含有所述幀頭標(biāo)識的數(shù)據(jù)包中的前一個數(shù)據(jù)包作為同一幀的數(shù)據(jù) 包。
6、 如權(quán)利要求4所述的方法,其特征在于,含有幀頭標(biāo)識的數(shù)據(jù)包的容 量不大于預(yù)先設(shè)定的容量。
7、 一種傳輸;f見頻數(shù)據(jù)的系統(tǒng),其特征在于,該系統(tǒng)包括 視頻設(shè)備,用于將幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包并發(fā)送;終端,用于將接收到的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù) 據(jù),判斷所形成的當(dāng)前幀-f見頻數(shù)據(jù)是否完整,在確定所形成的當(dāng)前幀-f見頻數(shù)據(jù) 不完整時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
8、 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述終端包括 存儲模塊,用于緩存幀視頻數(shù)據(jù);組合模塊,用于將接收到的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視 頻數(shù)據(jù);判斷模塊,用于判斷所述組合模塊所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整; 第一發(fā)送才莫塊,用于在所述判斷模塊確定所形成的當(dāng)前幀3見頻數(shù)據(jù)不完整 時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
9、 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述終端還包括 第二發(fā)送模塊,在所述判斷模塊確定所形成的當(dāng)前幀;f見頻數(shù)據(jù)完整時,將所述所形成的當(dāng)前幀—見頻數(shù)據(jù)緩存到所述存儲模塊中,并將所述所形成的當(dāng)前 幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
10、 如權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述第一發(fā)送模塊用于 將所述存儲模塊中已緩存的幀視頻數(shù)據(jù)中與當(dāng)前幀視頻數(shù)據(jù)在生成時間上最接近的 一幀-f見頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
11、 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述視頻設(shè)備用于 將每幀視頻數(shù)據(jù)分成多個數(shù)據(jù)包,將屬于同一幀的多個數(shù)據(jù)包按照預(yù)先設(shè)定的順序連續(xù)發(fā)送,其中連續(xù)發(fā)送的屬于同一幀的多個數(shù)據(jù)包中的第一個數(shù)據(jù) 包含有幀頭標(biāo)識。
12、 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述組合模塊用于 將接收到的相鄰的兩個含有所述幀頭標(biāo)識的數(shù)據(jù)包之間的數(shù)據(jù)包,以及兩個含有所述幀頭標(biāo)識的數(shù)據(jù)包中的前一個數(shù)據(jù)包作為同 一幀的數(shù)據(jù)包,將屬于 同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù)。
13、 如權(quán)利要求11所述的系統(tǒng),其特征在于,含有幀頭標(biāo)識的數(shù)據(jù)包的容量不大于預(yù)先設(shè)定的容量。
14、 一種終端,其特征在于,該終端包括 存儲4莫塊,用于纟爰存幀-f見頻數(shù)據(jù);組合模塊,用于將接收到的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視 頻數(shù)據(jù);判斷模塊,用于判斷所述組合模塊所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整; 第一發(fā)送模塊,用于在所述判斷模塊確定所形成的當(dāng)前幀視頻數(shù)據(jù)不完整 時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
15、 如權(quán)利要求14所述的終端,其特征在于,所述終端還包括 第二發(fā)送模塊,在所述判斷模塊確定所形成的當(dāng)前幀視頻數(shù)據(jù)完整時,將所述所形成的當(dāng)前幀視頻數(shù)據(jù)緩存到所述存儲才莫塊中,并將所述所形成的當(dāng)前 幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。
16、 如權(quán)利要求14或15所述的終端,其特征在于,所述第一發(fā)送模塊用于在確定所形成的當(dāng)前幀視頻數(shù)據(jù)不完整時,將所述存儲模塊中已緩存的幀 視頻數(shù)據(jù)中與當(dāng)前幀視頻數(shù)據(jù)在生成時間上最接近的一幀視頻數(shù)據(jù)發(fā)送給處 理系統(tǒng)。
17、 如權(quán)利要求14所述的終端,其特征在于,所述組合模塊用于 將接收到的相鄰的兩個含有所述幀頭標(biāo)識的數(shù)據(jù)包之間的數(shù)據(jù)包,以及兩個含有所述幀頭標(biāo)識的數(shù)據(jù)包中的前一個數(shù)據(jù)包作為同一幀的數(shù)據(jù)包,將屬于 同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù)。
全文摘要
本發(fā)明涉及電子技術(shù)領(lǐng)域,特別涉及一種傳輸視頻數(shù)據(jù)的方法、系統(tǒng)和裝置,用以在數(shù)據(jù)傳輸出錯時,降低處理系統(tǒng)處理視頻數(shù)據(jù)的難度,從而減少音頻和視頻不同步的情況。本發(fā)明實施例的方法包括終端將接收到的來自視頻設(shè)備的屬于同一幀的數(shù)據(jù)包進(jìn)行組合,形成當(dāng)前幀視頻數(shù)據(jù);所述終端判斷所形成的當(dāng)前幀視頻數(shù)據(jù)是否完整,在確定所形成的當(dāng)前幀視頻數(shù)據(jù)不完整時,將已緩存的一幀視頻數(shù)據(jù)發(fā)送給處理系統(tǒng)。采用本發(fā)明實施例的方法能夠減少音頻和視頻不同步的情況對于實時性要求很高的處理系統(tǒng),還能夠減少了處理系統(tǒng)無法工作的情況。
文檔編號H04N7/52GK101651838SQ200910085008
公開日2010年2月17日 申請日期2009年5月20日 優(yōu)先權(quán)日2009年5月20日
發(fā)明者曹玉弟 申請人:北京中星微電子有限公司