專利名稱:流視頻的傳輸和播放方法及其實現(xiàn)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種流視頻的傳輸和播放方法及其實現(xiàn)裝置。
背景技術(shù):
流視頻在網(wǎng)絡(luò)上的傳輸一般有兩種方式,一種是采用可靠的TCP (Transmission Control Protocol,傳輸控制協(xié)議)傳輸,另一種采用不可靠的UDP (User Datagram I^otocol,用戶數(shù)據(jù)包協(xié)議)傳輸。其中,TCP傳輸過程中,當網(wǎng)絡(luò)負載加大,TCP出現(xiàn)數(shù)據(jù)丟包時,會進行重發(fā),這會進一步加大網(wǎng)絡(luò)的負載,丟包頻率會更加頻繁,重發(fā)量加大,形成惡性循環(huán)。UDP輸出,由于該協(xié)議不可靠,因此意味著視頻流會被網(wǎng)絡(luò)丟包,在網(wǎng)速較低的環(huán)境下傳輸視頻流,接收端會因為視頻流丟包而發(fā)生圖像停頓、馬賽克甚至黑屏等現(xiàn)象。目前解決UDP丟包問題的方法是調(diào)節(jié)編碼器圖像分辨率和幀發(fā)送頻率,該方法存在的缺陷是當上述參數(shù)已經(jīng)調(diào)到極限值,而網(wǎng)速還在降低時,仍然會出現(xiàn)丟包問題,接收端仍然會出現(xiàn)圖像停頓、馬賽克甚至黑屏等現(xiàn)象。
發(fā)明內(nèi)容
為此,本發(fā)明所要解決的技術(shù)問題是提供一種流視頻的傳輸和播放方法及其實現(xiàn)裝置,有效解決了接收端出現(xiàn)圖像停頓、馬賽克甚至黑屏等問題。于是,本發(fā)明提供了一種流視頻的傳輸和播放方法,該方法包括
檢測流視頻數(shù)據(jù)的丟包率和包時延,當其超出預(yù)置值時,通知發(fā)送端和接收端,并啟動 I幀刷新檢測模塊;
發(fā)送端采用TCP協(xié)議傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),接收端采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),并播放。上述方法還包括
當I幀刷新檢測模塊發(fā)現(xiàn)其沒有最新I幀數(shù)據(jù)時,通知發(fā)送端; 發(fā)送端減少幀發(fā)送周期,并放棄重傳不成功I幀數(shù)據(jù),繼續(xù)傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),以保證最新1個I幀數(shù)據(jù)發(fā)送出去。其中,在檢測到流視頻數(shù)據(jù)丟包率和包延時率超出預(yù)置值之前,還包括 發(fā)送端采用UDP協(xié)議傳輸流視頻數(shù)據(jù),接收端采用UDP協(xié)議接收流視頻數(shù)據(jù)。其中,接收端采用UDP協(xié)議接收流視頻數(shù)據(jù)后還包括對所述接收的流視頻數(shù)據(jù)中的I幀數(shù)據(jù)進行備份。其中,所述接收端采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),并播放包括 接收端采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù)后先備份;
從備份的I幀數(shù)據(jù)中提取流視頻數(shù)據(jù),并播放。
本發(fā)明還提供了一種實現(xiàn)流視頻傳輸和播放的裝置,該裝置包括 圖像幀發(fā)送模塊,用于發(fā)送流視頻數(shù)據(jù);
圖像幀接收模塊,用于接收圖像幀發(fā)送模塊發(fā)送的流視頻數(shù)據(jù); I幀備份模塊,用于將圖像幀接收模塊接收的流視頻數(shù)據(jù)中的I幀進行備份,并僅保存 I幀數(shù)據(jù);
視頻播放模塊,用于播放視頻幀數(shù)據(jù);
網(wǎng)速檢測模塊,用于對圖像幀接收模塊接收到的流視頻數(shù)據(jù)進行檢測,若其丟包率和包時延超出預(yù)置值時,通知圖像幀發(fā)送模塊、圖像幀接收模塊、和視頻播放模塊;
當圖像幀發(fā)送模塊、圖像幀接收模塊和視頻播放模塊接收到網(wǎng)速檢測模塊發(fā)送的信息時,圖像幀發(fā)送模塊采用TCP協(xié)議傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),圖像幀接收模塊采用TCP 協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),視頻播放模塊從I幀備份模塊中提取I幀數(shù)據(jù)進行播放。上述裝置還可以包括1幀刷新檢測模塊,用于監(jiān)測I幀備份模塊中是否有最新I 幀數(shù)據(jù),若沒有,則通知圖像幀發(fā)送模塊減少幀發(fā)送周期,并放棄重傳不成功I幀數(shù)據(jù),繼續(xù)傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),以保證最新1個I幀數(shù)據(jù)發(fā)送出去。本發(fā)明所述流視頻的傳輸和播放方法及其實現(xiàn)裝置,在低速網(wǎng)絡(luò)環(huán)境中,通過采用TCP協(xié)議,并僅傳輸流視頻中的I幀數(shù)據(jù)的方式,保證了流視頻的有效傳輸,解決了接收端出現(xiàn)圖像停頓、馬賽克甚至黑屏等問題。進一步,當網(wǎng)絡(luò)環(huán)境繼續(xù)變差時,通過減少發(fā)送端幀發(fā)送周期,并放棄重傳不成功 I幀數(shù)據(jù),保證最新1個I幀數(shù)據(jù)發(fā)送出去的方法,保證了流視頻的有效傳輸。
圖1為本發(fā)明實施例所述流視頻的傳輸和播放方法流程示意圖; 圖2為本發(fā)明實施例所述實現(xiàn)流視頻傳輸和播放裝置的結(jié)構(gòu)示意圖。
具體實施例方式下面,結(jié)合附圖對本發(fā)明進行詳細描述。如圖1,本實施例提供了一種流視頻的傳輸和播放方法,該方法分在正常網(wǎng)速環(huán)境下、低速環(huán)境下和極低速環(huán)境下三個階段來描述,包括
在正常網(wǎng)速環(huán)境下
步驟1,發(fā)送端的圖像幀發(fā)送模塊采用UDP協(xié)議傳輸流視頻數(shù)據(jù),接收端的圖像幀接收模塊采用UDP接收流視頻數(shù)據(jù);
步驟2,接收端的視頻播放模塊播放圖像幀接收模塊接收的各類圖像幀,包括I幀、P幀和B幀;
這里,MPEG (Moving Pictures Experts Group,動態(tài)圖像專家組)編碼將圖像畫面(即幀)分為I幀、P幀、B幀三種,其中I幀是一個完整的畫面,沒有I幀,P幀和B幀就無法解碼。步驟3,接收端的I幀備份模塊備份最新的流視頻數(shù)據(jù)中的I幀數(shù)據(jù); 步驟4,接收端的網(wǎng)速檢測模塊統(tǒng)計丟包率和包時延。在低速環(huán)境下步驟5,當網(wǎng)速檢測模塊監(jiān)測到丟包率和包時延超出預(yù)置值時,執(zhí)行步驟6. 1到步驟
6. 4 ;
步驟6. 1,網(wǎng)速檢測模塊通知圖像幀接收模塊,使其改用TCP協(xié)議接收數(shù)據(jù); 步驟6. 2,網(wǎng)速檢測模塊通知圖像幀發(fā)送模塊,使其改用TCP協(xié)議發(fā)送數(shù)據(jù); 步驟6. 3,網(wǎng)速檢測模塊通知視頻播放模塊,使其從I幀備份模塊提取流視頻數(shù)據(jù)進行播放;
步驟6. 4,網(wǎng)速檢測模塊通知I幀刷新檢測模塊,使其啟動; 這里,步驟6. 1到步驟6. 4沒有時間順序,可以認為是同時進行。步驟7,發(fā)送端的圖像幀發(fā)送模塊使用TCP協(xié)議傳輸流視頻數(shù)據(jù)給到發(fā)送端; 步驟8,接收端的圖像幀接收流視頻數(shù)據(jù),并在I幀備份模塊中備份最新的I幀數(shù)據(jù); 步驟9,接收端的視頻播放模塊從I幀備份模塊證提取I幀數(shù)據(jù)進行播放。
在極低速環(huán)境下
步驟10,I幀刷新檢測模塊定時或者實時檢測I幀數(shù)據(jù)是否是最新,若不是最新I幀數(shù)據(jù),則執(zhí)行步驟11 ;
步驟11,I幀刷新檢測模塊通知發(fā)送端圖像幀發(fā)送模塊;
步驟12,圖像幀發(fā)送模塊減少幀發(fā)送周期,并放棄重傳不成功I幀數(shù)據(jù),繼續(xù)傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),以保證最新1個I幀數(shù)據(jù)發(fā)送出去??梢?,在低速網(wǎng)絡(luò)環(huán)境中,通過采用改變傳輸協(xié)議,使用TCP協(xié)議傳輸流視頻數(shù)據(jù),并僅傳輸流視頻中的I幀數(shù)據(jù)的方式,保證了流視頻的有效傳輸,解決了接收端出現(xiàn)圖像停頓、馬賽克甚至黑屏等問題。如圖2所示,使用上述流視頻傳輸方法,本實施例還提供了一種實現(xiàn)流視頻傳輸和播放的裝置,該裝置包括
圖像幀發(fā)送模塊11,用于發(fā)送流視頻數(shù)據(jù); 圖像幀接收模塊21,用于接收圖像幀發(fā)送模塊發(fā)送的流視頻數(shù)據(jù); I幀備份模塊M,用于將圖像幀接收模塊接收的流視頻數(shù)據(jù)中的I幀進行備份,并僅保存I幀數(shù)據(jù);
視頻播放模塊22,用于播放視頻幀數(shù)據(jù);
網(wǎng)速檢測模塊23,用于對圖像幀接收模塊接收到的流視頻數(shù)據(jù)進行檢測,若其丟包率和包時延超出預(yù)置值時,通知圖像幀發(fā)送模塊、圖像幀接收模塊、I幀刷新檢測模塊和視頻播放模塊;
當圖像幀發(fā)送模塊11、圖像幀接收模塊21和視頻播放模塊22接收到網(wǎng)速檢測模塊23 發(fā)送的信息時,圖像幀發(fā)送模塊23采用TCP協(xié)議傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),圖像幀接收模塊21采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),視頻播放模塊22從I幀幀備份模塊 24中提取I幀數(shù)據(jù)進行播放。本實施例當網(wǎng)速降低,其丟包率和包時延超出預(yù)置值時,采用發(fā)送端僅傳輸流視頻中的I幀數(shù)據(jù),播放端也僅播放流視頻中I幀數(shù)據(jù)的方式,雖然犧牲了視頻流暢性,但是卻提高了視頻畫面的清晰度。為了監(jiān)測網(wǎng)速變化情況,本實施例所述裝置還可以包括一 I幀刷新檢測模塊25,
5用于監(jiān)測I幀備份模塊M中是否有最新I幀數(shù)據(jù),若沒有,則通知圖像幀發(fā)送模塊11減少幀發(fā)送周期,并放棄重傳不成功I幀數(shù)據(jù),繼續(xù)傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),以保證最新 1個I幀數(shù)據(jù)發(fā)送出去。綜上所述,本實施例所述流視頻的傳輸和播放方法及其實現(xiàn)裝置,在低速網(wǎng)絡(luò)環(huán)境中,通過采用TCP協(xié)議,并僅傳輸流視頻中的I幀數(shù)據(jù)的方式,保證了流視頻的有效傳輸, 解決了接收端出現(xiàn)圖像停頓、馬賽克甚至黑屏等問題。進一步,當網(wǎng)絡(luò)環(huán)境繼續(xù)變差時,通過減少發(fā)送端幀發(fā)送周期,并放棄重傳不成功 I幀數(shù)據(jù),保證最新1個I幀數(shù)據(jù)發(fā)送出去的方法,保證了流視頻的有效傳輸。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種流視頻的傳輸和播放方法,其特征在于,包括檢測流視頻數(shù)據(jù)的丟包率和包時延,當其超出預(yù)置值時,通知發(fā)送端和接收端,并啟動 I幀刷新檢測模塊;發(fā)送端采用TCP協(xié)議傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),接收端采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),并播放。
2.根據(jù)權(quán)利要求1所述的傳輸方法,其特征在于,還包括當I幀刷新檢測模塊發(fā)現(xiàn)其沒有最新I幀數(shù)據(jù)時,通知發(fā)送端;發(fā)送端減少幀發(fā)送周期,并放棄重傳不成功I幀數(shù)據(jù),繼續(xù)傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),以保證最新1個I幀數(shù)據(jù)發(fā)送出去。
3.根據(jù)權(quán)利要求1所述的傳輸方法,其特征在于,在檢測到流視頻數(shù)據(jù)丟包率和包延時率超出預(yù)置值之前,還包括發(fā)送端采用UDP協(xié)議傳輸流視頻數(shù)據(jù),接收端采用UDP協(xié)議接收流視頻數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的傳輸方法,其特征在于,接收端采用UDP協(xié)議接收流視頻數(shù)據(jù)后,還包括對所述接收的流視頻數(shù)據(jù)中的I幀數(shù)據(jù)進行備份。
5.根據(jù)權(quán)利要求1所述的傳輸方法,其特征在于,所述接收端采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),并播放包括接收端采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù)后先備份;從備份的I幀數(shù)據(jù)中提取流視頻數(shù)據(jù),并播放。
6.一種實現(xiàn)流視頻傳輸和播放的裝置,其特征在于,包括圖像幀發(fā)送模塊,用于發(fā)送流視頻數(shù)據(jù);圖像幀接收模塊,用于接收圖像幀發(fā)送模塊發(fā)送的流視頻數(shù)據(jù);I幀備份模塊,用于將圖像幀接收模塊接收的流視頻數(shù)據(jù)中的I幀進行備份,并僅保存 I幀數(shù)據(jù);視頻播放模塊,用于播放視頻幀數(shù)據(jù);網(wǎng)速檢測模塊,用于對圖像幀接收模塊接收到的流視頻數(shù)據(jù)進行檢測,若其丟包率和包時延超出預(yù)置值時,通知圖像幀發(fā)送模塊、圖像幀接收模塊、和視頻播放模塊;當圖像幀發(fā)送模塊、圖像幀接收模塊和視頻播放模塊接收到網(wǎng)速檢測模塊發(fā)送的信息時,圖像幀發(fā)送模塊采用TCP協(xié)議傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),圖像幀接收模塊采用TCP 協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),視頻播放模塊從I幀備份模塊中提取I幀數(shù)據(jù)進行播放。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括1幀刷新檢測模塊,用于監(jiān)測I 幀備份模塊中是否有最新I幀數(shù)據(jù),若沒有,則通知圖像幀發(fā)送模塊減少幀發(fā)送周期,并放棄重傳不成功I幀數(shù)據(jù),繼續(xù)傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),以保證最新1個I幀數(shù)據(jù)發(fā)送出去。
全文摘要
本發(fā)明提供了一種流視頻的傳輸和播放方法及其實現(xiàn)裝置,所述方法包括檢測流視頻數(shù)據(jù)的丟包率和包時延,當其超出預(yù)置值時,通知發(fā)送端和接收端,并啟動I幀刷新檢測模塊;發(fā)送端采用TCP協(xié)議傳輸流視頻數(shù)據(jù)中的I幀數(shù)據(jù),接收端采用TCP協(xié)議接收視頻數(shù)據(jù)中的I幀數(shù)據(jù),并播放。所述裝置包括圖像幀發(fā)送模塊、圖像幀接收模塊、I幀備份模塊、視頻播放模塊和網(wǎng)速檢測模塊。本發(fā)明所述流視頻的傳輸和播放方法及其實現(xiàn)裝置,在低速網(wǎng)絡(luò)環(huán)境中,通過采用TCP協(xié)議,并僅傳輸流視頻中的I幀數(shù)據(jù)的方式,保證了流視頻的有效傳輸,解決了接收端出現(xiàn)圖像停頓、馬賽克甚至黑屏等問題。
文檔編號H04N21/462GK102547411SQ20101058694
公開日2012年7月4日 申請日期2010年12月14日 優(yōu)先權(quán)日2010年12月14日
發(fā)明者冉大為 申請人:康佳集團股份有限公司