亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

視頻流切換方法、裝置及系統(tǒng)的制作方法

文檔序號:7986388閱讀:203來源:國知局
視頻流切換方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種視頻流切換方法、裝置及系統(tǒng),屬于多媒體處理領(lǐng)域。所述方法包括:保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;從當(dāng)前視頻流切換至備選視頻流時,用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);發(fā)送所述被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。本發(fā)明通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),達到了兩個視頻數(shù)據(jù)流可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流的無縫切換的效果。
【專利說明】視頻流切換方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體處理領(lǐng)域,特別涉及一種視頻流切換方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]FLV (Flash Video,流媒體)是現(xiàn)在應(yīng)用非常廣泛的一種視頻格式,可以采用不同的碼率和分辨率來編碼FLV流。
[0003]在進行視頻直播的場景下,可能會同時存在多路FLV流可供播放,比如,在奧運會網(wǎng)絡(luò)直播系統(tǒng)中,可能會接收到正在同時進行的足球直播和籃球直播兩路FLV流,此時存在在兩路FLV流之間來回切換的問題。現(xiàn)有的視頻流切換方法主要包括:第一,切斷當(dāng)前一路FLV流的連接;第二,重新連接服務(wù)器獲取另外一路FLV流的數(shù)據(jù)。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:重新鏈接服務(wù)器就像是從一個頻道切換到另外一個頻道一樣,會導(dǎo)致數(shù)據(jù)緩沖,產(chǎn)生視頻播放的中斷,嚴重影響用戶體驗。

【發(fā)明內(nèi)容】

[0005]為了解決現(xiàn)有視頻流切換方法容易產(chǎn)生中斷的問題,本發(fā)明實施例提供了一種視頻流切換方法、裝置及系統(tǒng)。所述技術(shù)方案如下:
[0006]第一方面,提供了一種視頻流切換方法,所述方法包括:
[0007]保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0008]從當(dāng)前視頻流切換至備選視頻流時,用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0009]發(fā)送所述被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0010]發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。
[0011]進一步地,所述用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)之前,還包括:
[0012]判斷所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)和所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)是否相同;
[0013]如果相同,則直接執(zhí)行所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器的步驟;
[0014]如果不相同,則執(zhí)行所述用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)的步驟。
[0015]進一步地,所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器之前,還包括:
[0016]保存所述當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳;
[0017]所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器,對應(yīng)包括:
[0018]修改所述備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于所述保存的最后一個時間戳;
[0019]將修改時間戳后的待播放數(shù)據(jù)發(fā)送給所述視頻播放器。
[0020]進一步地,所述從當(dāng)前視頻流切換至備選視頻流之前,還包括:
[0021]獲取通往所述視頻編碼器的傳輸速率;
[0022]根據(jù)所述傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流;
[0023]如果是,則執(zhí)行所述從當(dāng)前視頻流切換至備選視頻流的步驟。
[0024]進一步地,所述根據(jù)所述傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流,具體包括:
[0025]檢測所述傳輸速率是否大于第一預(yù)定閾值;
[0026]若檢測到大于第一預(yù)定閾值,則從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率大于所述當(dāng)前視頻流的碼率;
[0027]和/ 或,
[0028]檢測所述傳輸速率是否小于第二預(yù)定閾值;
[0029]若檢測到小于第二預(yù)定閾值,則從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率小于所述當(dāng)前視頻流的碼率。
[0030]第二方面,提供了一種視頻流切換裝置,所述裝置包括:
[0031]標(biāo)簽保存模塊,用于保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0032]參數(shù)替換模塊,用于從當(dāng)前視頻流切換至備選視頻流時,用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0033]參數(shù)發(fā)送模塊,用于發(fā)送所述被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0034]數(shù)據(jù)發(fā)送模塊,用于發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。
[0035]進一步地,所述視頻流切換裝置,還包括:
[0036]參數(shù)判斷模塊;
[0037]所述參數(shù)判斷模塊,用于判斷所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)和所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)是否相同;
[0038]所述數(shù)據(jù)發(fā)送模塊,還用于如果所述參數(shù)判斷模塊的判斷結(jié)果為相同,則直接執(zhí)行所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器的步驟;
[0039]所述參數(shù)發(fā)送模塊,具體用于如果所述參數(shù)判斷模塊的判斷結(jié)果為不相同,則執(zhí)行所述用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)的步驟。
[0040]進一步地,所述視頻流切換裝置,還包括:
[0041]時間保存模塊;
[0042]所述時間保存模塊,用于保存所述當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳;
[0043]所述數(shù)據(jù)發(fā)送模塊,對應(yīng)包括:
[0044]時間修改單元和數(shù)據(jù)發(fā)送單元;
[0045]所述時間修改單元,用于修改所述備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于所述保存的最后一個時間戳;[0046]所述數(shù)據(jù)發(fā)送單元,用于將修改時間戳后的待播放數(shù)據(jù)發(fā)送給所述視頻播放器。
[0047]進一步地,所述視頻流切換裝置,還包括:
[0048]速率獲取模塊和切換判斷模塊;
[0049]所述速率獲取模塊,用于獲取通往所述視頻編碼器的傳輸速率;
[0050]所述切換判斷模塊,用于根據(jù)所述傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流;
[0051]所述參數(shù)修改模塊,用于如果所述切換判斷模塊的判斷結(jié)果為是,則執(zhí)行所述從當(dāng)前視頻流切換至備選視頻流的步驟。
[0052]進一步地,所述切換判斷模塊,具體用于:
[0053]檢測所述傳輸速率是否大于第一預(yù)定閾值;若檢測到大于第一預(yù)定閾值,則需要從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率大于所述當(dāng)前視頻流的碼率;
[0054]和/ 或,
[0055]檢測所述傳輸速率是否小于第二預(yù)定閾值;若檢測到小于第二預(yù)定閾值,則需要從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率小于所述當(dāng)前視頻流的碼率。
[0056]第三方面,提供了一種視頻播放系統(tǒng),其特征在于,所述系統(tǒng)包括:至少兩個視頻流提供服務(wù)器、視頻流切換裝置和包含視頻播放器的客戶端;
[0057]所述視頻流切換裝置是如第二方面或者第二方面的各種進一步實施方案中任一所述的視頻流切換裝置。
[0058]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
[0059]通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,達到節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且需要重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。
【專利附圖】

【附圖說明】
[0060]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0061]圖1是本發(fā)明實施例一提供的視頻流切換方法的方法流程圖;
[0062]圖2A是本發(fā)明實施例二提供的視頻流切換方法的實施環(huán)境示意圖;
[0063]圖2B是本發(fā)明實施例二提供的視頻流切換方法的方法流程圖;
[0064]圖3A是本發(fā)明實施例三提供的視頻流切換方法的實施環(huán)境示意圖;
[0065]圖3B是本發(fā)明實施例三提供的視頻流切換方法的方法流程圖;
[0066]圖4是本發(fā)明實施例四提供的視頻流切換裝置的結(jié)構(gòu)示意圖;[0067]圖5是本發(fā)明實施例五提供的視頻流切換裝置的結(jié)構(gòu)示意圖;
[0068]圖6是本發(fā)明實施例六提供的視頻流切換裝置的結(jié)構(gòu)示意圖;
[0069]圖7是本發(fā)明實施例七提供的視頻播放系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0070]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0071]FLV (Flash Video,流媒體)流是一種用于封裝視頻編碼數(shù)據(jù)的流媒體格式,其內(nèi)部的視頻編碼數(shù)據(jù)可以用H.264標(biāo)準(zhǔn)編碼。當(dāng)視頻編碼數(shù)據(jù)采用H.264編碼時,F(xiàn)LV流包括三種類型的標(biāo)簽,分別為音頻標(biāo)簽、視頻標(biāo)簽和元數(shù)據(jù)(Metadata)標(biāo)簽。元數(shù)據(jù)標(biāo)簽中通常都包含有解碼參數(shù)SPS (sequence parameterset序列參數(shù)集)和解碼參數(shù)PPS (pictureparameter set,圖像參數(shù)集)。其中:
[0072]解碼參數(shù)SPS是指:將一個視頻序列(從一個IDR幀開始到下一個IDR幀之前的數(shù)據(jù)稱之為一個視頻序列)中的全部圖像的共同特征抽取出來,存放在SPS語法單元中。也即,只有兩個視頻序列之間才能切換SPS。換句話說,只有IDR幀的第一個片可以切換SPS?!肮餐卣鳌卑ǚ直媛屎痛a率之類的信息,通常在一個視頻序列里保持不變,并可用于解碼。
[0073]解碼參數(shù)PPS是指:將各個圖像的典型特征抽取出來,存放在PPS語法單元中。也即,只有圖像之間才能切換PPS。換句話說,只有每幀圖像的第一個片可以切換PPS。
[0074]其中,IDR幀屬于一種特殊的I幀。解碼器收到IDR幀時,將所有的參考幀隊列丟棄。這點是所有I幀共有的特性,但是收到IDR幀時,解碼器另外需要做的工作就是:把所有的解碼參數(shù)PPS和SPS進行更新,使得解碼器的解碼參數(shù)得到更新。
[0075]請參考圖1,其示出了本發(fā)明實施例一提供的視頻流切換方法的方法流程圖。該視頻流切換方法,包括:
[0076]步驟102,保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0077]步驟104,從當(dāng)前視頻流切換至備選視頻流時,用備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0078]步驟106,發(fā)送被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0079]步驟108,發(fā)送備選視頻流中的待播放數(shù)據(jù)給視頻播放器。
[0080]綜上所述,本發(fā)明實施例提供的視頻流切換方法,通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。
[0081]在上一實施例中,視頻流是否需要切換,可以是由其它設(shè)備觸發(fā)當(dāng)前設(shè)備進行切換;也可以是由當(dāng)前設(shè)備自身觸發(fā)進行切換。為了對由其它設(shè)備觸發(fā)當(dāng)前設(shè)備進行切換的情形做詳細描述,請參考如下:
[0082]見圖2A,其示出了本發(fā)明實施例二提供的視頻流切換方法所涉及的一種實施環(huán)境的結(jié)構(gòu)示意圖。該實施環(huán)境為一個視頻播放系統(tǒng),該視頻播放系統(tǒng)包括:第一視頻流提供服務(wù)器21、第二視頻流提供服務(wù)器22、第三視頻流提供服務(wù)器23、直播服務(wù)器24、導(dǎo)播臺25、Q)N (Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))網(wǎng)絡(luò)26和包含視頻播放器的客戶端27。
[0083]其中,第一視頻流提供服務(wù)器21、第二視頻流提供服務(wù)器22和第三視頻流提供服務(wù)器23各自分別提供一路FLV流給直播服務(wù)器24,這三路FLV流的分辨率和碼率可以相同,也可以互不相同。
[0084]直播服務(wù)器24可以接收到來自第一視頻流提供服務(wù)器21、第二視頻流提供服務(wù)器22和第三視頻流提供服務(wù)器23的三路FLV流,然后根據(jù)導(dǎo)播臺25的切換控制信號,選擇其中一路FLV流輸出給⑶N網(wǎng)絡(luò)26,以便由⑶N網(wǎng)絡(luò)26轉(zhuǎn)發(fā)給包含視頻播放器的客戶端27。
[0085]見圖2B,其示出了本發(fā)明實施例二提供的視頻流切換方法的方法流程圖。本實施例主要以該視頻流切換方法應(yīng)用于如圖2A所示的直播服務(wù)器24中來舉例說明。同時,本實施例也僅以FLV為視頻流的封裝格式來舉例說明,對于該視頻流切換方法應(yīng)用于其他具有相同或者相類似結(jié)構(gòu)的流媒體切換場景的實施例,為本領(lǐng)域技術(shù)人員所易于思及的部分,不再一一贅述。該視頻流切換方法,包括:
[0086]步驟201,保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0087]直播服務(wù)器可以接收到來自第一視頻流提供服務(wù)器、第二視頻流提供服務(wù)器和第三視頻流提供服務(wù)器的三路FLV流,每個FLV流分別用于承載不同的視頻內(nèi)容。此時,直播服務(wù)器可以提取各路FLV流中包含解碼參數(shù)的視頻流標(biāo)簽,并且存儲至預(yù)定位置。另外,直播服務(wù)器也可以先將一路FLV流輸出給⑶N網(wǎng)絡(luò),以便實時播放。
[0088]步驟202,接收導(dǎo)播臺的切換控制信號;
[0089]導(dǎo)播臺可以在需要進行視頻內(nèi)容切換時,向直播服務(wù)器發(fā)出切換控制信號。該切換控制信號用于指示直播服務(wù)器從當(dāng)前播放的FLV流切換至另外一個備選的FLV流。比如,切換控制信號用于指示直播服務(wù)器從當(dāng)前播放的、來自第一視頻流提供服務(wù)器的FLV流切換至來自第二轉(zhuǎn)碼播放器的FLV流。
[0090]步驟203,保存當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳;
[0091]播放數(shù)據(jù)包括音頻標(biāo)簽和視頻標(biāo)簽,時間戳(Timestamp)是音視頻標(biāo)簽中存在的一個數(shù)據(jù),其并不一定與實際時間有聯(lián)系,僅用于標(biāo)識各個音視頻標(biāo)簽的先后順序。在直播服務(wù)器接收到切換控制信號之后,可以保存當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳。具體地講,可以是當(dāng)前正在播放的視頻序列中的最后一個音頻標(biāo)簽或者視頻標(biāo)簽內(nèi)的時間戳。
[0092]步驟204,判斷備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)和當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)是否相同;如果相同,則進入步驟205 ;如果不相同,則進入步驟206 ;
[0093]當(dāng)前視頻流的視頻流標(biāo)簽可以是當(dāng)前視頻流中當(dāng)前播放的視頻序列之后的下一視頻序列中的第一個包含編碼參數(shù)的視頻流標(biāo)簽,也即與下一個IDR幀的第一個片有關(guān)的視頻流標(biāo)簽,編碼參數(shù)包括PPS和SPS ;備選視頻流的視頻流標(biāo)簽可以是備選視頻流中最近接收到的視頻序列中的第一個包含編碼參數(shù)的視頻流標(biāo)簽,也即與最近已接收IDR幀的第一個片有關(guān)的視頻流標(biāo)簽,編碼參數(shù)同樣包括PPS和SPS。直播服務(wù)器可以判斷兩者的解碼參數(shù)是否相同。
[0094]步驟205,發(fā)送備選視頻流中的待播放數(shù)據(jù)給視頻播放器;
[0095]如果兩者的解碼參數(shù)相同,則直播服務(wù)器可以將備選視頻流中的最近接收到的視頻序列作為待播放數(shù)據(jù)發(fā)送給視頻播放器。具體在本實施例中,直播服務(wù)器可以經(jīng)由CDN網(wǎng)絡(luò)的傳遞,將備選視頻流發(fā)送給包含視頻播放器的客戶端。具體地講,本步驟可以包括如下兩個子步驟:
[0096]第一,修改備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于保存的最后一個時間戳;
[0097]由于備選視頻流中音視頻標(biāo)簽的時間戳可能會小于當(dāng)前視頻流中音視頻標(biāo)簽的時間戳,所以,需要修改備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于步驟203保存的最后一個時間戳。
[0098]第二,將修改時間戳后的待播放數(shù)據(jù)發(fā)送給視頻播放器。
[0099]在備選視頻流中音視頻標(biāo)簽的時間戳均被修改之后,直播服務(wù)器可以將修改時間戳后的待播放數(shù)據(jù)發(fā)送給視頻播放器。
[0100]步驟206,用備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0101]如果兩者的解碼參數(shù)不相同,直播服務(wù)器可以用備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)。
[0102]步驟207,發(fā)送被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0103]直播服務(wù)器可以發(fā)送被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器。這時,視頻播放器可以自然地利用現(xiàn)有IDR更新機制重置解碼參數(shù),而重置后的解碼參數(shù)實質(zhì)上已經(jīng)由當(dāng)前視頻流的解碼參數(shù)切換為了備選視頻流的解碼參數(shù)。
[0104]步驟205,發(fā)送備選視頻流中的待播放數(shù)據(jù)給視頻播放器。
[0105]如果兩者的解碼參數(shù)不相同,但是直播服務(wù)器將當(dāng)前視頻流的解碼參數(shù)進行了替換,直播服務(wù)器仍然可以發(fā)送備選視頻流中的待播放數(shù)據(jù)給視頻播放器。具體的發(fā)送過程參考前述。由于此時視頻播放器中的解碼參數(shù)實質(zhì)上已經(jīng)切換為了備選視頻流的解碼參數(shù),盡管兩者的分辨率或者碼率之類的數(shù)據(jù)不同,但是視頻播放器仍然可以直接對備選視頻流進行播放。
[0106]顯然,整個切換過程是無縫進行的,不需要進行重新連接服務(wù)器等操作,除去網(wǎng)絡(luò)速率的影響,不會產(chǎn)生卡頓現(xiàn)象。
[0107]綜上所述,本發(fā)明實施例提供的視頻流切換方法,通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,達到節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。[0108]視頻流是否需要切換,也可以是由當(dāng)前設(shè)備自身觸發(fā)進行切換。為了對由當(dāng)前設(shè)備自身觸發(fā)進行切換的情形做詳細描述,請參考如下:
[0109]見圖3A,其示出了本發(fā)明實施例三提供的視頻流切換方法所涉及的一種實施環(huán)境的結(jié)構(gòu)示意圖。該實施環(huán)境為一個直播系統(tǒng),該直播系統(tǒng)包括:第一視頻流提供服務(wù)器31、第二視頻流提供服務(wù)器32、第三視頻流提供服務(wù)器33、直播服務(wù)器34、⑶N (ContentDelivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))網(wǎng)絡(luò)36和客戶端37。
[0110]其中,第一視頻流提供服務(wù)器31、第二視頻流提供服務(wù)器32和第三視頻流提供服務(wù)器33各自分別提供一路FLV流給直播服務(wù)器34,這三路FLV流的內(nèi)容可以完全一樣,但是分辨率和碼率可以互不相同。比如,第一視頻流提供服務(wù)器31提供的分辨率和碼率最高,可以簡稱為當(dāng)前視頻的高清版本;第二視頻流提供服務(wù)器32提供的分辨率和碼率中等,可以簡稱為當(dāng)前視頻的標(biāo)清版本;第三視頻流提供服務(wù)器33提供的分辨率和碼率最小,可以簡稱為當(dāng)前視頻的普清版本。
[0111]直播服務(wù)器34可以接收到來自第一視頻流提供服務(wù)器31、第二視頻流提供服務(wù)器32和第三視頻流提供服務(wù)器33的三路FLV流,然后同時將三路FLV流輸出給⑶N網(wǎng)絡(luò)36,以便由⑶N網(wǎng)絡(luò)36選擇其中一路FLV流轉(zhuǎn)發(fā)給包含視頻播放器的客戶端37進行播放。
[0112]見圖3B,其示出了本發(fā)明實施例二提供的視頻流切換方法的方法流程圖。本實施例主要以該視頻流切換方法應(yīng)用于如圖3A所示的CDN網(wǎng)絡(luò)36中來舉例說明。同時,本實施例也僅以FLV為視頻流的封裝格式來舉例說明,對于該視頻流切換方法應(yīng)用于其他具有相同或者相類似結(jié)構(gòu)的流媒體切換場景的實施例,為本領(lǐng)域技術(shù)人員所易于思及的部分,不再一一贅述。該視頻流切換方法,包括:
[0113]步驟301,保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0114]⑶N網(wǎng)絡(luò)可以接收到由直播服務(wù)器發(fā)送的、來自第一視頻流提供服務(wù)器、第二視頻流提供服務(wù)器和第三視頻流提供服務(wù)器的三路FLV流,每個FLV流的內(nèi)容可以完全一樣,但是分辨率和碼率可以互不相同。此時,CDN網(wǎng)絡(luò)可以提取各路FLV流中包含解碼參數(shù)的視頻流標(biāo)簽,并且存儲至預(yù)定位置。另外,CDN網(wǎng)絡(luò)也可以先將一路FLV流輸出給客戶端,以便實時播放。比如,⑶N網(wǎng)絡(luò)可以選擇標(biāo)清視頻發(fā)送給客戶端,或者,⑶N網(wǎng)絡(luò)可以根據(jù)客戶端當(dāng)前的網(wǎng)絡(luò)速率選擇一路合適的FLV流發(fā)送給客戶端。
[0115]步驟302,獲取通往視頻編碼器的傳輸速率;
[0116]⑶N網(wǎng)絡(luò)可以獲取通往視頻編碼器的傳輸速率,也即⑶N網(wǎng)絡(luò)與客戶端之間的網(wǎng)絡(luò)速率。因為實際使用中,CDN網(wǎng)絡(luò)與客戶端之間的網(wǎng)絡(luò)速率可能會隨時波動。
[0117]步驟303,根據(jù)傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流;
[0118]CDN網(wǎng)絡(luò)可以根據(jù)傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流。具體地講,本步驟可以包括如下兩種實現(xiàn)方式中的任一一種:
[0119]第一,檢測傳輸速率是否大于第一預(yù)定閾值;若檢測到大于第一預(yù)定閾值,則從當(dāng)前視頻流切換至備選視頻流,備選視頻流的碼率大于當(dāng)前視頻流的碼率;
[0120]此種情況下,⑶N網(wǎng)絡(luò)與客戶端之間的網(wǎng)絡(luò)速率由差變好,⑶N網(wǎng)絡(luò)可以判斷到當(dāng)前視頻流需要切換至具有更高的碼率的備選視頻流,比如:從標(biāo)清視頻切換至高清視頻,或者,從普清視頻切換至標(biāo)清視頻。[0121]第二,檢測傳輸速率是否小于第二預(yù)定閾值;若檢測到小于第二預(yù)定閾值,則從當(dāng)前視頻流切換至備選視頻流,備選視頻流的碼率小于當(dāng)前視頻流的碼率
[0122]此種情況下,⑶N網(wǎng)絡(luò)與客戶端之間的網(wǎng)絡(luò)速率由好變差,⑶N網(wǎng)絡(luò)可以判斷到當(dāng)前視頻流需要切換至具有更低的碼率的備選視頻流,比如:從標(biāo)清視頻切換至普清視頻,或者,從高清視頻切換至標(biāo)清視頻。
[0123]步驟304,保存當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳;
[0124]播放數(shù)據(jù)包括音頻標(biāo)簽和視頻標(biāo)簽,時間戳(Timestamp)是音視頻標(biāo)簽中存在的一個數(shù)據(jù),其并不一定與實際時間有聯(lián)系,僅用于標(biāo)識各個音視頻標(biāo)簽的先后順序。在CDN網(wǎng)絡(luò)判斷到需要切換視頻流之后,可以保存當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳。具體地講,可以是當(dāng)前正在播放的視頻序列中的最后一個音頻標(biāo)簽或者視頻標(biāo)簽內(nèi)的時間戳。
[0125]步驟305,用備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0126]由于本實施例中當(dāng)前視頻流和備選視頻流兩者的解碼參數(shù)不相同,CDN網(wǎng)絡(luò)可以用備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)。
[0127]其中,當(dāng)前視頻流的視頻流標(biāo)簽可以是當(dāng)前視頻流中當(dāng)前播放的視頻序列之后的下一視頻序列中的第一個包含編碼參數(shù)的視頻流標(biāo)簽,也即與下一個IDR幀的第一個片有關(guān)的視頻流標(biāo)簽,編碼參數(shù)包括PPS和SPS ;備選視頻流的視頻流標(biāo)簽可以是備選視頻流中最近接收到的視頻序列中的第一個包含編碼參數(shù)的視頻流標(biāo)簽,也即與最近已接收IDR幀的第一個片有關(guān)的視頻流標(biāo)簽,編碼參數(shù)同樣包括PPS和SPS。
[0128]步驟306,發(fā)送被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0129]CDN網(wǎng)絡(luò)可以發(fā)送被替換解碼參數(shù)后的視頻流標(biāo)簽給客戶端。這時,客戶端可以自然地利用現(xiàn)有IDR更新機制重置解碼參數(shù),而重置后的解碼參數(shù)實質(zhì)上已經(jīng)由當(dāng)前視頻流的解碼參數(shù)切換為了備選視頻流的解碼參數(shù)。
[0130]步驟307,發(fā)送備選視頻流中的待播放數(shù)據(jù)給視頻播放器。
[0131]CDN網(wǎng)絡(luò)發(fā)送備選視頻流中的待播放數(shù)據(jù)給客戶端的具體發(fā)送過程,可以參考如下:
[0132]第一,修改備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于保存的最后一個時間戳;
[0133]由于備選視頻流中音視頻標(biāo)簽的時間戳可能會小于當(dāng)前視頻流中音視頻標(biāo)簽的時間戳,所以,需要修改備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于步驟304保存的最后一個時間戳。
[0134]第二,將修改時間戳后的待播放數(shù)據(jù)發(fā)送給視頻播放器。
[0135]在備選視頻流中音視頻標(biāo)簽的時間戳均被修改之后,CDN網(wǎng)絡(luò)可以將修改時間戳后的待播放數(shù)據(jù)發(fā)送給客戶端。
[0136]由于此時客戶端中的解碼參數(shù)實質(zhì)上已經(jīng)切換為了備選視頻流的解碼參數(shù),盡管兩者的分辨率或者碼率之類的數(shù)據(jù)不同,但是客戶端仍然可以直接對備選視頻流進行播放。
[0137]顯然,整個切換過程是無縫進行的,不需要進行重新連接服務(wù)器等操作,除去網(wǎng)絡(luò)速率的影響,不會產(chǎn)生卡頓現(xiàn)象。
[0138]綜上所述,本發(fā)明實施例提供的視頻流切換方法,通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,達到節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且需要重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。另外,還通過根據(jù)客戶端的網(wǎng)絡(luò)速率,動態(tài)調(diào)整視頻切換,可以為客戶端提供最佳的播放效果。
[0139]需要說明的是,盡管在本實施例中以CDN網(wǎng)絡(luò)預(yù)先知道每路視頻流的分辨率和碼率來舉例說明。但是事實上,仍然可以增加由CDN網(wǎng)絡(luò)判斷各路視頻流中的解碼參數(shù)是否相同的步驟,以便CDN網(wǎng)絡(luò)可以判斷和識別各路視頻流的分辨率和碼率。此乃本領(lǐng)域技術(shù)人員易于思及的內(nèi)容,不再一一贅述。
[0140]實施例四
[0141]請參考圖4,其示出了本發(fā)明實施例四提供的視頻流切換裝置的結(jié)構(gòu)方框圖。該視頻流切換裝置可以實現(xiàn)成為直播服務(wù)器或者CDN網(wǎng)絡(luò)中的一部分。該視頻流切換裝置,包括:標(biāo)簽保存模塊420、參數(shù)替換模塊440、參數(shù)發(fā)送模塊460和數(shù)據(jù)發(fā)送模塊480。
[0142]標(biāo)簽保存模塊420,用于保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0143]參數(shù)替換模塊440,用于從當(dāng)前視頻流切換至備選視頻流時,用所述標(biāo)簽保存模塊420保存的備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述標(biāo)簽保存模塊420保存的當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0144]參數(shù)發(fā)送模塊460,用于發(fā)送所述被參數(shù)替換模塊440替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0145]數(shù)據(jù)發(fā)送模塊480,用于在所述參數(shù)發(fā)送模塊460發(fā)送替換解碼參數(shù)后的視頻流標(biāo)簽之后,發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。
[0146]綜上所述,本發(fā)明實施例提供的視頻流切換裝置,通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,達到節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且需要重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。
[0147]實施例五
[0148]請參考圖5,其示出了本發(fā)明實施例五提供的視頻流切換裝置的結(jié)構(gòu)方框圖。該視頻流切換裝置可以實現(xiàn)成為直播服務(wù)器或者CDN網(wǎng)絡(luò)中的一部分。該視頻流切換裝置,包括:標(biāo)簽保存模塊420、時間保存模塊432、參數(shù)判斷模塊434、參數(shù)替換模塊440、參數(shù)發(fā)送模塊460和數(shù)據(jù)發(fā)送模塊480。
[0149]標(biāo)簽保存模塊420,用于保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0150]時間保存模塊432,用于從當(dāng)前視頻流切換至備選視頻流之前,保存所述當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳;
[0151]參數(shù)判斷模塊434,用于從當(dāng)前視頻流切換至備選視頻流之前,判斷所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)和所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)是否相同;
[0152]參數(shù)替換模塊440,具體用于如果所述參數(shù)判斷模塊434的判斷結(jié)果為不相同,則用所述標(biāo)簽保存模塊420保存的備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述標(biāo)簽保存模塊420保存的當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0153]參數(shù)發(fā)送模塊460,用于發(fā)送所述被參數(shù)替換模塊440替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0154]數(shù)據(jù)發(fā)送模塊480,用于在所述參數(shù)發(fā)送模塊460發(fā)送替換解碼參數(shù)后的視頻流標(biāo)簽之后,發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。
[0155]所述數(shù)據(jù)發(fā)送模塊480,還用于如果所述參數(shù)判斷模塊434的判斷結(jié)果為相同,則直接執(zhí)行所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器的步驟。
[0156]所述數(shù)據(jù)發(fā)送模塊480,可以包括:時間修改單元482和數(shù)據(jù)發(fā)送單元484 ;
[0157]所述時間修改單元482,用于修改所述備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于所述時間保存模塊432保存的最后一個時間戳;
[0158]所述數(shù)據(jù)發(fā)送單元484,用于將修改時間戳后的待播放數(shù)據(jù)發(fā)送給所述視頻播放器。
[0159]綜上所述,本發(fā)明實施例提供的視頻流切換裝置,通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,達到節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且需要重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。
[0160]實施例六
[0161]請參考圖6,其示出了本發(fā)明實施例六提供的視頻流切換裝置的結(jié)構(gòu)方框圖。該視頻流切換裝置可以實現(xiàn)成為直播服務(wù)器或者CDN網(wǎng)絡(luò)中的一部分。該視頻流切換裝置,包括:標(biāo)簽保存模塊420、速率獲取模塊436、切換判斷模塊438、時間保存模塊432、參數(shù)替換模塊440、參數(shù)發(fā)送模塊460和數(shù)據(jù)發(fā)送模塊480。
[0162]標(biāo)簽保存模塊420,用于保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;
[0163]速率獲取模塊436,用于獲取通往視頻編碼器的傳輸速率;
[0164]切換判斷模塊438,用于根據(jù)所述速率獲取模塊436獲取到的傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流;
[0165]時間保存模塊432,具體用于如果所述切換判斷模塊438的判斷結(jié)果為需要時,保存所述當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳;
[0166]參數(shù)替換模塊440,具體用于如果所述切換判斷模塊438的判斷結(jié)果為需要時,則用所述標(biāo)簽保存模塊420保存的備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述標(biāo)簽保存模塊420保存的當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);
[0167]參數(shù)發(fā)送模塊460,用于發(fā)送所述被參數(shù)替換模塊440替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器;
[0168]數(shù)據(jù)發(fā)送模塊480,用于在所述參數(shù)發(fā)送模塊460發(fā)送替換解碼參數(shù)后的視頻流標(biāo)簽之后,發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。
[0169]所述數(shù)據(jù)發(fā)送模塊480,可以包括:時間修改單元482和數(shù)據(jù)發(fā)送單元484 ;
[0170]所述時間修改單元482,用于修改所述備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于所述時間保存模塊432保存的最后一個時間戳;
[0171]所述數(shù)據(jù)發(fā)送單元484,用于將修改時間戳后的待播放數(shù)據(jù)發(fā)送給所述視頻播放器。
[0172]更進一步地講,上述切換判斷模塊438,具體用于:
[0173]檢測所述傳輸速率是否大于第一預(yù)定閾值;若檢測到大于第一預(yù)定閾值,則需要從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率大于所述當(dāng)前視頻流的碼率;
[0174]和/ 或,
[0175]檢測所述傳輸速率是否小于第二預(yù)定閾值;若檢測到小于第二預(yù)定閾值,則需要從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率小于所述當(dāng)前視頻流的碼率。
[0176]綜上所述,本發(fā)明實施例提供的視頻流切換裝置,通過利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,達到節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且需要重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。另外,還通過根據(jù)視頻播放器的網(wǎng)絡(luò)速率,動態(tài)調(diào)整視頻切換,可以為客戶端提供最佳的播放效果。
[0177]實施例七
[0178]請參考圖7,其示出了本發(fā)明實施例七提供的視頻播放系統(tǒng)的結(jié)構(gòu)方框圖。該視頻播放系統(tǒng),包括:至少兩個視頻流提供服務(wù)器720、視頻流切換裝置740和包含視頻播放器的客戶端760。
[0179]至少兩個視頻流提供服務(wù)器720用于分別提供一路視頻流給視頻流切換裝置740,各個視頻流提供服務(wù)器720向視頻流切換裝置740提供的視頻流的內(nèi)容、分辨率和碼率可以相同,也可以各不相同。
[0180]包含視頻播放器的客戶端760用于在接收到視頻流切換裝置740發(fā)送的數(shù)據(jù)后進行視頻播放。
[0181]由圖2A和圖3A可知,視頻流切換裝置740可以實現(xiàn)成為直播服務(wù)器、⑶N網(wǎng)絡(luò)、直播服務(wù)器中的一部分或者⑶N網(wǎng)絡(luò)中的一部分。其中:
[0182]第一,當(dāng)視頻流切換裝置740實現(xiàn)成為直播服務(wù)器或者直播服務(wù)器中的一部分時;
[0183]由至少兩個視頻流提供服務(wù)器720提供兩路或者兩路以上視頻流給視頻流切換裝置740。視頻流切換裝置740具體用于保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;然后從當(dāng)前視頻流切換至備選視頻流時,用備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);再者,可以經(jīng)由CDN網(wǎng)絡(luò)的傳遞,發(fā)送所述替換解碼參數(shù)后的視頻流標(biāo)簽給包含視頻播放器的客戶端760 ;最后,在發(fā)送替換解碼參數(shù)后的視頻流標(biāo)簽之后,還可以經(jīng)由CDN網(wǎng)絡(luò)的傳遞,繼續(xù)發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給包含視頻播放器的客戶端760。
[0184]第二,當(dāng)視頻流切換裝置740實現(xiàn)成為⑶N網(wǎng)絡(luò)或者⑶N網(wǎng)絡(luò)中的一部分時;
[0185]至少兩個視頻流提供服務(wù)器720發(fā)送兩路或者兩路以上的視頻流,并且可以經(jīng)由直播服務(wù)器的傳遞后,發(fā)送至視頻流切換裝置740。視頻流切換裝置740具體用于保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽;然后從當(dāng)前視頻流切換至備選視頻流時,用備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù);再者,發(fā)送所述替換解碼參數(shù)后的視頻流標(biāo)簽給包含視頻播放器的客戶端760 ;最后,在發(fā)送替換解碼參數(shù)后的視頻流標(biāo)簽之后,還發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給包含視頻播放器的客戶端760。
[0186]本領(lǐng)域技術(shù)人員所易于思及的是,上述視頻流提供服務(wù)器720還可以是實施例四、實施例五或者實施例六提供的視頻流提供服務(wù)器。
[0187]綜上所述,本發(fā)明實施例提供的視頻播放系統(tǒng),通過使視頻流切換裝置利用替換當(dāng)前視頻流中的視頻流標(biāo)簽中的解碼參數(shù),來使得視頻播放器可以自動重置解碼參數(shù),解決了現(xiàn)有視頻流切換方法重新連接服務(wù)器容易產(chǎn)生中斷的問題,達到節(jié)省了現(xiàn)有視頻流切換方法在兩個視頻流切換時,直播服務(wù)器需要斷開對應(yīng)于當(dāng)前視頻流的網(wǎng)絡(luò)連接,重新再建立對應(yīng)于備選視頻流的網(wǎng)絡(luò)連接,并且需要重新讀取備選視頻流的相關(guān)數(shù)據(jù)(比如頭文件)所耗費的較多時間,達到了無需重新建立連接,兩個視頻數(shù)據(jù)流就可以無縫切換,特別是兩個解碼參數(shù)不相同的視頻數(shù)據(jù)流可以無縫切換的效果。
[0188]需要說明的是:上述實施例提供的視頻流切換裝置在切換視頻流時,僅以上述各功能模塊的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的視頻流切換裝置與視頻流切換方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
[0189]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0190]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0191]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種視頻流切換方法,其特征在于,所述方法包括: 保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽; 從當(dāng)前視頻流切換至備選視頻流時,用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù); 發(fā)送所述被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器; 發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。
2.根據(jù)權(quán)利要求1所述的視頻流切換方法,其特征在于,所述用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)之前,還包括: 判斷所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)和所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)是否相同; 如果相同,則直接執(zhí)行所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器的步驟; 如果不相同,則執(zhí)行所述用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)的步驟。
3.根據(jù)權(quán)利要求1或2所述的視頻流切換方法,其特征在于,所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器之前,還包括: 保存所述當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳; 所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器,對應(yīng)包括: 修改所述備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于所述保存的最后一個時間戳; 將修改時間戳后的待播放數(shù)據(jù)發(fā)送給所述視頻播放器。
4.根據(jù)權(quán)利要求1或2所述的視頻流切換方法,其特征在于,所述從當(dāng)前視頻流切換至備選視頻流之前,還包括: 獲取通往所述視頻編碼器的傳輸速率; 根據(jù)所述傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流; 如果是,則執(zhí)行所述從當(dāng)前視頻流切換至備選視頻流的步驟。
5.根據(jù)權(quán)利要求4所述的視頻流切換方法,其特征在于,所述根據(jù)所述傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流,具體包括: 檢測所述傳輸速率是否大于第一預(yù)定閾值; 若檢測到大于第一預(yù)定閾值,則從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率大于所述當(dāng)前視頻流的碼率; 和/或, 檢測所述傳輸速率是否小于第二預(yù)定閾值; 若檢測到小于第二預(yù)定閾值,則從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率小于所述當(dāng)前視頻流的碼率。
6.一種視頻流切換裝置,其特征在于,所述裝置包括: 標(biāo)簽保存模塊,用于保存接收到的兩路或者兩路以上視頻流中包含解碼參數(shù)的視頻流標(biāo)簽; 參數(shù)替換模塊,用于從當(dāng)前視頻流切換至備選視頻流時,用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù); 參數(shù)發(fā)送模塊,用于發(fā)送所述被替換解碼參數(shù)后的視頻流標(biāo)簽給視頻播放器; 數(shù)據(jù)發(fā)送模塊,用于發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器。
7.根據(jù)權(quán)利要求6所述的視頻流切換裝置,其特征在于,所述視頻流切換裝置,還包括: 參數(shù)判斷模塊; 所述參數(shù)判斷模塊,用于判斷所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)和所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)是否相同; 所述數(shù)據(jù)發(fā)送模塊,還用于如果所述參數(shù)判斷模塊的判斷結(jié)果為相同,則直接執(zhí)行所述發(fā)送所述備選視頻流中的待播放數(shù)據(jù)給所述視頻播放器的步驟; 所述參數(shù)發(fā)送模塊,具體用于如果所述參數(shù)判斷模塊的判斷結(jié)果為不相同,則執(zhí)行所述用所述備選視頻流的視頻流標(biāo)簽中的解碼參數(shù)替換所述當(dāng)前視頻流的視頻流標(biāo)簽中的解碼參數(shù)的步驟。
8.根據(jù)權(quán)利要求6或7所述的視頻流切換裝置,其特征在于,所述視頻流切換裝置,還包括: 時間保存模塊; 所述時間保存模塊,用于保存所述當(dāng)前視頻流中被切換前所播放數(shù)據(jù)中的最后一個時間戳; 所述數(shù)據(jù)發(fā)送模塊,對應(yīng)包括: 時間修改單元和數(shù)據(jù)發(fā)送單元; 所述時間修改單元,用于修改所述備選視頻流中的待播放數(shù)據(jù)中的所有時間戳,使修改后的時間戳均大于所述保存的最后一個時間戳; 所述數(shù)據(jù)發(fā)送單元,用于將修改時間戳后的待播放數(shù)據(jù)發(fā)送給所述視頻播放器。
9.根據(jù)權(quán)利要求6或7所述的視頻流切換裝置,其特征在于,所述視頻流切換裝置,還包括: 速率獲取模塊和切換判斷模塊; 所述速率獲取模塊,用于獲取通往所述視頻編碼器的傳輸速率; 所述切換判斷模塊,用于根據(jù)所述傳輸速率判斷是否需要從當(dāng)前視頻流切換至備選視頻流; 所述參數(shù)修改模塊,用于如果所述切換判斷模塊的判斷結(jié)果為是,則執(zhí)行所述從當(dāng)前視頻流切換至備選視頻流的步驟。
10.根據(jù)權(quán)利要求9所述的視頻流切換裝置,其特征在于,所述切換判斷模塊,具體用于: 檢測所述傳輸速率是否大于第一預(yù)定閾值;若檢測到大于第一預(yù)定閾值,則需要從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率大于所述當(dāng)前視頻流的碼率; 和/或, 檢測所述傳輸速率是否小于第二預(yù)定閾值;若檢測到小于第二預(yù)定閾值,則需要從所述當(dāng)前視頻流切換至所述備選視頻流,所述備選視頻流的碼率小于所述當(dāng)前視頻流的碼率。
11.一種視頻播放系統(tǒng),其特征在于,所述系統(tǒng)包括:至少兩個視頻流提供服務(wù)器、視頻流切換裝置和包含視頻播放器的客戶端; 所述視頻流切換裝置是如權(quán)利要 求6至10任一所述的視頻流切換裝置。
【文檔編號】H04N21/438GK103856806SQ201210495363
【公開日】2014年6月11日 申請日期:2012年11月28日 優(yōu)先權(quán)日:2012年11月28日
【發(fā)明者】賴晶 申請人:騰訊科技(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1