本發(fā)明實(shí)施例涉及電子設(shè)備技術(shù)領(lǐng)域,尤其涉及一種視頻的碼流切換方法、裝置及電子設(shè)備。
背景技術(shù):
視頻是一種被廣大用戶普遍接受的通信形式,具有廣泛的應(yīng)用。例如,用戶在休閑時(shí)間可通過(guò)觀看娛樂(lè)類的視頻,豐富自己的娛樂(lè)生活,另外,用戶還可以觀看教學(xué)類的視頻,獲取多種知識(shí)。
目前,用戶通常利用客戶端訪問(wèn)服務(wù)器的方式觀看視頻,例如,用戶可通過(guò)手機(jī)訪問(wèn)樂(lè)視網(wǎng)站,觀看樂(lè)視網(wǎng)站提供的視頻。為了滿足用戶觀看視頻的需求,各個(gè)服務(wù)器往往為用戶提供多種形式的碼流,如標(biāo)清、高清和超清等,在視頻播放時(shí),服務(wù)器根據(jù)用戶的選擇,向客戶端反饋相應(yīng)形式的碼流。其中,用戶對(duì)視頻的清晰度要求較高,則可選擇超清形式的碼流;若用戶對(duì)視頻的流暢度要求較高,則可選擇標(biāo)清形式的碼流。
但是,通過(guò)對(duì)現(xiàn)有技術(shù)的研究,發(fā)明人發(fā)現(xiàn),用戶在觀看視頻的過(guò)程中,有時(shí)需要切換碼流,在切換后往往會(huì)打斷視頻的播放過(guò)程。例如,在視頻播放一段時(shí)間后,用戶希望觀看清晰度更高的視頻,而當(dāng)前播放的視頻為標(biāo)清形式,則可通過(guò)對(duì)客戶端進(jìn)行操作,將碼流由標(biāo)清形式切換至高清形式或超清形式,而碼流切換后,視頻會(huì)暫時(shí)中斷一段時(shí)間,影響用戶的觀看體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例中提供了一種視頻的碼流切換方法、裝置及電子設(shè)備,以解決現(xiàn)有技術(shù)中,切換碼流會(huì)打斷視頻的播放過(guò)程的問(wèn)題。
本發(fā)明實(shí)施例公開了如下技術(shù)方案:
第一方面,本發(fā)明實(shí)施例提供了一種視頻的碼流切換方法,包括:
接收到當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息;
根據(jù)所述目標(biāo)碼流的播放信息,獲取所述目標(biāo)碼流的播放地址,并在當(dāng)前碼流的播放過(guò)程中,通過(guò)訪問(wèn)所述目標(biāo)碼流的播放地址,緩存所述目標(biāo)碼流;
在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。
通過(guò)本發(fā)明實(shí)施例提供的視頻的碼流切換方法,能夠?qū)崿F(xiàn)視頻的碼流切換,并且,切換過(guò)程不會(huì)中斷視頻播放,從而解決了現(xiàn)有技術(shù)中,碼流在切換時(shí)會(huì)出現(xiàn)中斷,影響用戶觀看體驗(yàn)的問(wèn)題。
可選的,在所述切換至所述目標(biāo)碼流并播放之前,還包括:
確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
可選的,所述確定所述目標(biāo)碼流的預(yù)設(shè)緩存值,包括:
接收緩存值設(shè)置操作,并根據(jù)所述緩存值設(shè)置操作確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
通過(guò)該步驟,能夠根據(jù)用戶的操作確定所述預(yù)設(shè)緩存值,從而滿足用戶需求。
可選的,所述確定所述目標(biāo)碼流的預(yù)設(shè)緩存值,包括:
根據(jù)所述目標(biāo)碼流的播放信息,確定所述目標(biāo)碼流的容量;
根據(jù)所述目標(biāo)碼流的容量以及當(dāng)前網(wǎng)絡(luò)狀態(tài),計(jì)算所述目標(biāo)碼流在順暢播放的情況下,需要緩存的目標(biāo)碼流的容量,并將所述需要緩存的目標(biāo)碼流的容量作為所述目標(biāo)碼流的預(yù)設(shè)緩存值。
通過(guò)該步驟,能夠使獲取到的目標(biāo)碼流的預(yù)設(shè)緩存值符合當(dāng)前的網(wǎng)絡(luò)狀態(tài)。其中,若當(dāng)前網(wǎng)絡(luò)狀態(tài)較好,網(wǎng)速較快,則所述需要緩存的目標(biāo)碼流的容量較小,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較少,這種情況下,能夠在較短時(shí)間內(nèi)達(dá)到目標(biāo)碼流的預(yù)設(shè)緩存值,則能夠盡快完成碼流的切換;若當(dāng)前網(wǎng)絡(luò)狀態(tài)較差,網(wǎng)絡(luò)較慢,則所述需要緩存的目標(biāo)碼流的容量較大,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較大,才能保證切換至目標(biāo)碼流進(jìn)行播放后,目標(biāo)碼流能夠順暢播放。
可選的,若所述目標(biāo)碼流的播放信息中包含兩個(gè)以上播放地址,所述獲取所述目標(biāo)碼流的播放地址,包括:
獲取電子設(shè)備的IP地址;
根據(jù)所述IP地址,從所述兩個(gè)以上播放地址中選擇反饋所述目標(biāo)碼流速度最快的播放地址,并確定所述反饋所述目標(biāo)碼流速度最快的播放地址為所述目標(biāo)碼流的播放地址。
通過(guò)上述步驟,能夠在目標(biāo)碼流的播放信息中包含兩個(gè)以上播放地址的情況下,選擇其中反饋目標(biāo)碼流速度最高的播放地址,從而提高電子設(shè)備獲取目標(biāo)碼流的速度。
可選的,所述在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,包括:
設(shè)定所述目標(biāo)傳送流TS流為所述當(dāng)前視頻對(duì)應(yīng)的第t個(gè)TS流,在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,查找緩存的所述目標(biāo)碼流中的第(t+1)個(gè)TS流,并播放所述目標(biāo)碼流中的第(t+1)個(gè)TS流。
針對(duì)同一視頻,不同碼流往往包含相同數(shù)量的TS流。在當(dāng)前碼流中的目標(biāo)TS流播放完畢后,說(shuō)明當(dāng)前視頻的第t個(gè)TS流播放完畢。這種情況下,播放目標(biāo)碼流中的第(t+1)個(gè)TS流,能夠保障當(dāng)前視頻的流暢和完整的播放。
第二方面,本發(fā)明實(shí)施例提供了一種視頻的碼流切換裝置,包括:
播放信息獲取模塊,用于接收到當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息;
目標(biāo)碼流緩存模塊,用于根據(jù)所述目標(biāo)碼流的播放信息,獲取所述目標(biāo)碼流的播放地址,并在當(dāng)前碼流的播放過(guò)程中,通過(guò)訪問(wèn)所述目標(biāo)碼流的播放地址,緩存所述目標(biāo)碼流;
目標(biāo)碼流切換模塊,用于在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。
通過(guò)本發(fā)明實(shí)施例提供的視頻的碼流切換裝置,能夠?qū)崿F(xiàn)視頻的碼流切換,并且,切換過(guò)程不會(huì)中斷視頻播放,從而解決了現(xiàn)有技術(shù)中,碼流在切換時(shí)會(huì)出現(xiàn)中斷,影響用戶觀看體驗(yàn)的問(wèn)題。
可選的,還包括:
預(yù)設(shè)緩存值確定模塊,用于在切換至所述目標(biāo)碼流并播放之前,確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
可選的,所述目標(biāo)碼流切換模塊包括:
第一確定單元,用于接收緩存值設(shè)置操作,并根據(jù)所述緩存值設(shè)置操作確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
通過(guò)該模塊,能夠根據(jù)用戶的操作確定所述預(yù)設(shè)緩存值,從而滿足用戶需求。
可選的,所述目標(biāo)碼流切換模塊包括:
容量確定單元,用于根據(jù)所述目標(biāo)碼流的播放信息,確定所述目標(biāo)碼流的容量;
第二確定單元,用于根據(jù)所述目標(biāo)碼流的容量以及當(dāng)前網(wǎng)絡(luò)狀態(tài),計(jì)算所述目標(biāo)碼流在順暢播放的情況下,需要緩存的目標(biāo)碼流的容量,并將所述需要緩存的目標(biāo)碼流的容量作為所述目標(biāo)碼流的預(yù)設(shè)緩存值。
通過(guò)該裝置,能夠使獲取到的目標(biāo)碼流的預(yù)設(shè)緩存值符合當(dāng)前的網(wǎng)絡(luò)狀態(tài)。其中,若當(dāng)前網(wǎng)絡(luò)狀態(tài)較好,網(wǎng)速較快,則所述需要緩存的目標(biāo)碼流的容量較小,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較少,這種情況下,能夠在較短時(shí)間內(nèi)達(dá)到目標(biāo)碼流的預(yù)設(shè)緩存值,則能夠盡快完成碼流的切換;若當(dāng)前網(wǎng)絡(luò)狀態(tài)較差,網(wǎng)絡(luò)較慢,則所述需要緩存的目標(biāo)碼流的容量較大,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較大,才能保證切換至目標(biāo)碼流進(jìn)行播放后,目標(biāo)碼流能夠順暢播放。
可選的,若所述目標(biāo)碼流的播放信息中包含兩個(gè)以上播放地址,所述目標(biāo)碼流緩存模塊包括:
IP地址獲取單元,用于獲取電子設(shè)備的IP地址;
播放地址確定單元,用于根據(jù)所述IP地址,從所述兩個(gè)以上播放地址中選擇反饋所述目標(biāo)碼流速度最快的播放地址,并確定所述反饋所述目標(biāo)碼流速度最快的播放地址為所述目標(biāo)碼流的播放地址。
可選的,設(shè)定所述目標(biāo)傳送流TS流為所述當(dāng)前視頻對(duì)應(yīng)的第t個(gè)TS流,所述目標(biāo)碼流切換模塊用于,在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,查找緩存的所述目標(biāo)碼流中的第(t+1)個(gè)TS流,并播放所述目標(biāo)碼流中的第(t+1)個(gè)TS流。
針對(duì)同一視頻,不同碼流往往包含相同數(shù)量的TS流。在當(dāng)前碼流中的目標(biāo)TS流播放完畢后,說(shuō)明當(dāng)前視頻的第t個(gè)TS流播放完畢。這種情況下,播放目標(biāo)碼流中的第(t+1)個(gè)TS流,能夠保障當(dāng)前視頻的流暢和完整的播放。
第三方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備,包括:
至少一個(gè)處理器;以及,
與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
所述存儲(chǔ)器存儲(chǔ)有可被所述一個(gè)處理器執(zhí)行的指令,所述指令被被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠:
接收到當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息;
根據(jù)所述目標(biāo)碼流的播放信息,獲取所述目標(biāo)碼流的播放地址,并在當(dāng)前碼流的播放過(guò)程中,通過(guò)訪問(wèn)所述目標(biāo)碼流的播放地址,緩存所述目標(biāo)碼流;
在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。
第四方面,本發(fā)明實(shí)施例還提供了一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行上述第一方面任意一個(gè)實(shí)施例提供的所述視頻的碼流切換方法。
第五方面,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算程序,所述計(jì)算機(jī)程序包括程序指令,當(dāng)所述程序指令被計(jì)算機(jī)執(zhí)行時(shí),使所述計(jì)算機(jī)執(zhí)行上述第一方面任意一個(gè)實(shí)施例提供的所述視頻的碼流切換方法。
本發(fā)明實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
本發(fā)明實(shí)施例公開一種視頻的碼流切換方法、裝置及電子設(shè)備。該方案中,在接收到針對(duì)當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息,并根據(jù)該播放信息,獲取目標(biāo)碼流的播放地址,在當(dāng)前碼流的播放過(guò)程中,緩存所述目標(biāo)碼流,并在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。通過(guò)該方案,能夠?qū)崿F(xiàn)視頻的碼流切換,并且,切換過(guò)程不會(huì)中斷視頻播放,從而解決了現(xiàn)有技術(shù)中,碼流在切換時(shí)會(huì)出現(xiàn)中斷,影響用戶觀看體驗(yàn)的問(wèn)題。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說(shuō)明
此處的附圖被并入說(shuō)明書中并構(gòu)成本說(shuō)明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說(shuō)明書一起用于解釋本發(fā)明的原理。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
一個(gè)或多個(gè)實(shí)施例通過(guò)與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說(shuō)明,這些示例性說(shuō)明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。
圖1為本發(fā)明實(shí)施例提供的一種視頻的碼流切換方法的應(yīng)用場(chǎng)景示意圖;
圖2為本發(fā)明實(shí)施例提供的一種視頻的碼流切換方法的工作流程示意圖;
圖3為本發(fā)明實(shí)施例提供的又一種視頻的碼流切換方法的工作流程示意圖;
圖4為本發(fā)明實(shí)施例提供的一種視頻的碼流切換裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
本發(fā)明實(shí)施例公開一種視頻的碼流切換方法、裝置及電子設(shè)備,以解決現(xiàn)有技術(shù)中,切換碼流會(huì)打斷視頻的播放過(guò)程的問(wèn)題。
其中,本發(fā)明實(shí)施例視頻的碼流切換方法和裝置應(yīng)用于電子設(shè)備,參見(jiàn)圖1所示的場(chǎng)景示意圖,圖1中包括電子設(shè)備100和服務(wù)器200,其中,所述電子設(shè)備100能夠通過(guò)網(wǎng)絡(luò)與服務(wù)器200進(jìn)行通信,實(shí)現(xiàn)視頻的播放,例如,電子設(shè)備100通過(guò)網(wǎng)絡(luò)向服務(wù)器200發(fā)送請(qǐng)求信息,接收到請(qǐng)求信息的服務(wù)器200向所述電子設(shè)備100反饋相應(yīng)的視頻碼流,電子設(shè)備100在接收到服務(wù)器200的反饋后,播放視頻。
另外,在圖1中,所述電子設(shè)備100為智能手機(jī),在實(shí)際應(yīng)用場(chǎng)景中,所述電子設(shè)備還可以為其他種類,如平板電腦、智能電視和計(jì)算機(jī)等,本發(fā)明實(shí)施例對(duì)此不做限定。
本發(fā)明第一實(shí)施例公開一種視頻的碼流切換方法,參見(jiàn)圖2所示的工作流程示意圖,所述視頻的碼流切換方法包括以下步驟:
步驟S11、接收到當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息。
其中,電子設(shè)備在接收到用戶對(duì)當(dāng)前視頻的碼流切換操作后,會(huì)通過(guò)網(wǎng)絡(luò)向服務(wù)器傳輸碼流切換的請(qǐng)求信息。服務(wù)器在接收到該碼流切換的請(qǐng)求信息后,會(huì)向電子設(shè)備傳輸相應(yīng)的目標(biāo)碼流的播放信息,從而使電子設(shè)備獲取待切換的目標(biāo)碼流的播放信息。
所述目標(biāo)碼流的播放信息中,至少包括所述目標(biāo)碼流的播放地址,另外,還可以包括所述目標(biāo)碼流的集數(shù)、時(shí)長(zhǎng)和/或容量等信息,本發(fā)明實(shí)施例對(duì)此不做限定。
步驟S12、根據(jù)所述目標(biāo)碼流的播放信息,獲取所述目標(biāo)碼流的播放地址,并在當(dāng)前碼流的播放過(guò)程中,通過(guò)訪問(wèn)所述目標(biāo)碼流的播放地址,緩存所述目標(biāo)碼流。
在所述目標(biāo)碼流的播放信息中,包括所述目標(biāo)碼流的播放地址,通過(guò)查找所述目標(biāo)碼流的播放信息,即可獲取所述目標(biāo)碼流的播放地址,再通過(guò)訪問(wèn)該播放地址,即可將目標(biāo)碼流緩存至電子設(shè)備中。
步驟S13、在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。
本發(fā)明實(shí)施例中,為目標(biāo)碼流設(shè)置相應(yīng)的預(yù)設(shè)緩存值。當(dāng)目標(biāo)碼流在電子設(shè)備內(nèi)的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),通常認(rèn)為目標(biāo)碼流可實(shí)現(xiàn)平滑播放,不會(huì)出現(xiàn)卡頓現(xiàn)象。
另外,服務(wù)器向電子設(shè)備傳輸目標(biāo)碼流時(shí),通常按照TS(transport stream,傳送流)流的形式進(jìn)行傳輸。相應(yīng)的,電子設(shè)備以TS流的形式緩存所述目標(biāo)碼流。并且,電子設(shè)備通過(guò)依次播放各個(gè)TS流的形式,實(shí)現(xiàn)視頻的播放。
在所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值之后,電子設(shè)備查看當(dāng)前碼流中正在播放的目標(biāo)TS流是否播放完畢,若未完畢,則等待,直到所述目標(biāo)TS流播放完畢,再切換至目標(biāo)碼流并播放。
本發(fā)明實(shí)施例公開一種視頻的碼流切換方法。該方法中,在接收到針對(duì)當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息,并根據(jù)該播放信息,獲取目標(biāo)碼流的播放地址,在當(dāng)前碼流的播放過(guò)程中,緩存所述目標(biāo)碼流,并在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。通過(guò)該方案,能夠?qū)崿F(xiàn)視頻的碼流切換,并且,切換過(guò)程不會(huì)中斷視頻播放,從而解決了現(xiàn)有技術(shù)中,碼流在切換時(shí)會(huì)出現(xiàn)中斷,影響用戶觀看體驗(yàn)的問(wèn)題。
本發(fā)明另一實(shí)施例公開一種視頻的碼流切換方法,該方法中,在所述切換至所述目標(biāo)碼流并播放之前,還包括:確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。具體的,可參見(jiàn)圖3所示的工作流程示意圖,其中,該方法包括以下步驟:
步驟S21、接收到當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息。
步驟S22、根據(jù)所述目標(biāo)碼流的播放信息,獲取所述目標(biāo)碼流的播放地址,并在當(dāng)前碼流的播放過(guò)程中,通過(guò)訪問(wèn)所述目標(biāo)碼流的播放地址,緩存所述目標(biāo)碼流。
其中,步驟S21至步驟S22的操作過(guò)程與步驟S11至步驟S12的操作過(guò)程相同,可相互參照,此處不再贅述。
步驟S23、確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
其中,所述目標(biāo)碼流的預(yù)設(shè)緩存值可通過(guò)多種方式確定。
步驟S24、在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。
其中,步驟S24的操作過(guò)程與步驟S13的操作過(guò)程相同,可相互參照,此處不再贅述。
另外,在上述步驟S21至步驟S24的描述中,以及圖3所示的工作流程示意圖中,在緩存所述目標(biāo)碼流后,才執(zhí)行確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。在實(shí)際操作過(guò)程中,該步驟只要在步驟S24之前操作即可,本發(fā)明實(shí)施例對(duì)此不做限定。
其中,本發(fā)明實(shí)施例中,可通過(guò)多種方式確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。在其中一種方式中,所述確定所述目標(biāo)碼流的預(yù)設(shè)緩存值,包括:接收緩存值設(shè)置操作,并根據(jù)所述緩存值設(shè)置操作確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
這種情況下,用戶會(huì)對(duì)電子設(shè)備執(zhí)行緩存值設(shè)置操作,通過(guò)該操作,設(shè)置所述預(yù)設(shè)緩存值。例如,通過(guò)用戶的緩存值設(shè)置操作,可設(shè)定所述預(yù)設(shè)緩存值為20個(gè)TS流,則目標(biāo)碼流在電子設(shè)備中的緩存值達(dá)到20個(gè)TS流時(shí),確定目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值。
另外,接收到緩存值設(shè)置操作后,還可以存儲(chǔ)本次緩存值設(shè)置操作指示的預(yù)設(shè)緩存值,這種情況下,每次需要獲取目標(biāo)碼流的預(yù)設(shè)緩存值時(shí),通過(guò)查找存儲(chǔ)空間中存儲(chǔ)的所述預(yù)設(shè)緩存值即可。
通過(guò)該方式,能夠根據(jù)用戶的操作確定所述預(yù)設(shè)緩存值,從而滿足用戶需求。
在另外一種方式中,所述確定所述目標(biāo)碼流的預(yù)設(shè)緩存值,包括以下步驟:
首先,根據(jù)所述目標(biāo)碼流的播放信息,確定所述目標(biāo)碼流的容量。
然后,根據(jù)所述目標(biāo)碼流的容量以及當(dāng)前網(wǎng)絡(luò)狀態(tài),計(jì)算所述目標(biāo)碼流在順暢播放的情況下,需要緩存的目標(biāo)碼流的容量,并將所述需要緩存的目標(biāo)碼流的容量作為所述目標(biāo)碼流的預(yù)設(shè)緩存值。
該種方式中,所述播放信息中包含所述目標(biāo)碼流的容量。在獲取目標(biāo)碼流的容量后,需要根據(jù)所述目標(biāo)碼流的容量以及當(dāng)前網(wǎng)絡(luò)狀態(tài),計(jì)算所述目標(biāo)碼流在順暢播放的情況下,需要緩存的目標(biāo)碼流的容量。其中,若當(dāng)前網(wǎng)絡(luò)狀態(tài)較好,網(wǎng)速較快,則所述需要緩存的目標(biāo)碼流的容量較小,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較少,這種情況下,能夠在較短時(shí)間內(nèi)達(dá)到目標(biāo)碼流的預(yù)設(shè)緩存值,則能夠盡快完成碼流的切換;若當(dāng)前網(wǎng)絡(luò)狀態(tài)較差,網(wǎng)絡(luò)較慢,則所述需要緩存的目標(biāo)碼流的容量較大,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較大,才能保證切換至目標(biāo)碼流進(jìn)行播放后,目標(biāo)碼流能夠順暢播放。
通過(guò)該方式,能夠使獲取到的目標(biāo)碼流的預(yù)設(shè)緩存值符合當(dāng)前的網(wǎng)絡(luò)狀態(tài)。
進(jìn)一步的,在本發(fā)明實(shí)施例公開的方案中,需要獲取目標(biāo)碼流的播放地址。其中,若所述目標(biāo)碼流的播放信息中包含兩個(gè)以上播放地址,所述獲取所述目標(biāo)碼流的播放地址,包括:
首先,獲取電子設(shè)備的IP地址;
然后,根據(jù)所述IP地址,從所述兩個(gè)以上播放地址中選擇反饋所述目標(biāo)碼流速度最快的播放地址,并確定所述反饋所述目標(biāo)碼流速度最快的播放地址為所述目標(biāo)碼流的播放地址。
服務(wù)器向電子設(shè)備反饋的目標(biāo)碼流的播放信息中,包含目標(biāo)碼流的播放地址,有些情況下,播放信息中包含兩個(gè)以上的播放地址。為了選取較為合適的播放地址,需要獲取電子設(shè)備的IP地址,然后根據(jù)該IP地址,從所述兩個(gè)以上播放地址中查找反饋所述目標(biāo)碼流速度最快的播放地址,將其作為所述目標(biāo)碼流的播放地址。
例如,若根據(jù)電子設(shè)備的IP地址,確定電子設(shè)備所在區(qū)域?yàn)榧~約,而所述播放信息中包含的播放地址分別為紐約服務(wù)器的播放地址和北京服務(wù)器的地址,這種情況下,往往距離電子設(shè)備所在區(qū)域近的服務(wù)器向電子設(shè)備反饋目標(biāo)碼流的速度較快,則確定紐約服務(wù)器的播放地址為目標(biāo)碼流的播放地址。
通過(guò)上述步驟,能夠在目標(biāo)碼流的播放信息中包含兩個(gè)以上播放地址的情況下,選擇其中反饋目標(biāo)碼流速度最高的播放地址,從而提高電子設(shè)備獲取目標(biāo)碼流的速度。
進(jìn)一步的,在本發(fā)明實(shí)施例中,公開了在當(dāng)前碼流中的目標(biāo)TS流播放完畢后,切換至所述目標(biāo)碼流并播放的操作。其中,所述在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,包括:
設(shè)定所述目標(biāo)傳送流TS流為所述當(dāng)前視頻對(duì)應(yīng)的第t個(gè)TS流,在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,查找緩存的所述目標(biāo)碼流中的第(t+1)個(gè)TS流,并播放所述目標(biāo)碼流中的第(t+1)個(gè)TS流。
針對(duì)同一視頻,不同碼流往往包含相同數(shù)量的TS流。在當(dāng)前碼流中的目標(biāo)TS流播放完畢后,說(shuō)明當(dāng)前視頻的第t個(gè)TS流播放完畢。這種情況下,播放目標(biāo)碼流中的第(t+1)個(gè)TS流,能夠保障當(dāng)前視頻的流暢和完整的播放。
相應(yīng)的,本發(fā)明實(shí)施例還公開一種視頻的碼流切換裝置。參見(jiàn)圖4所示的結(jié)構(gòu)示意圖,所述視頻的碼流切換裝置包括:播放信息獲取模塊110、目標(biāo)碼流緩存模塊120和目標(biāo)碼流切換模塊130。
其中,所述播放信息獲取模塊110,用于接收到當(dāng)前視頻的碼流切換操作后,獲取待切換的目標(biāo)碼流的播放信息。
其中,電子設(shè)備在接收到用戶對(duì)當(dāng)前視頻的碼流切換操作后,會(huì)通過(guò)網(wǎng)絡(luò)向服務(wù)器傳輸碼流切換的請(qǐng)求信息。服務(wù)器在接收到該碼流切換的請(qǐng)求信息后,會(huì)向電子設(shè)備傳輸相應(yīng)的目標(biāo)碼流的播放信息,從而使電子設(shè)備獲取待切換的目標(biāo)碼流的播放信息。
另外,所述目標(biāo)碼流的播放信息中,至少包括所述目標(biāo)碼流的播放地址,還可以包括所述目標(biāo)碼流的集數(shù)、時(shí)長(zhǎng)和/或容量等信息,本發(fā)明實(shí)施例對(duì)此不做限定。
所述目標(biāo)碼流緩存模塊120,用于根據(jù)所述目標(biāo)碼流的播放信息,獲取所述目標(biāo)碼流的播放地址,并在當(dāng)前碼流的播放過(guò)程中,通過(guò)訪問(wèn)所述目標(biāo)碼流的播放地址,緩存所述目標(biāo)碼流。
在所述目標(biāo)碼流的播放信息中,包括所述目標(biāo)碼流的播放地址,通過(guò)查找所述目標(biāo)碼流的播放信息,即可獲取所述目標(biāo)碼流的播放地址,再通過(guò)訪問(wèn)該播放地址,即可將目標(biāo)碼流緩存至電子設(shè)備中。
所述目標(biāo)碼流切換模塊130,用于在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,切換至所述目標(biāo)碼流并播放,其中,所述目標(biāo)傳送流TS流為所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),所述當(dāng)前碼流中正在播放的TS流。
本發(fā)明實(shí)施例中,為目標(biāo)碼流設(shè)置相應(yīng)的預(yù)設(shè)緩存值。當(dāng)目標(biāo)碼流在電子設(shè)備內(nèi)的緩存值達(dá)到預(yù)設(shè)緩存值時(shí),通常認(rèn)為目標(biāo)碼流可實(shí)現(xiàn)平滑播放,不會(huì)出現(xiàn)卡頓現(xiàn)象。
另外,服務(wù)器向電子設(shè)備傳輸目標(biāo)碼流時(shí),通常按照TS(transport stream,傳送流)流的形式進(jìn)行傳輸。相應(yīng)的,電子設(shè)備以TS流的形式緩存所述目標(biāo)碼流。并且,電子設(shè)備通過(guò)依次播放各個(gè)TS流的形式,實(shí)現(xiàn)視頻的播放。
在所述目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值之后,電子設(shè)備查看當(dāng)前碼流中正在播放的目標(biāo)TS流是否播放完畢,若未完畢,則等待,直到所述目標(biāo)TS流播放完畢,再播放所述目標(biāo)碼流。
通過(guò)本發(fā)明實(shí)施例公開的視頻的碼流切換裝置,能夠?qū)崿F(xiàn)視頻的碼流切換,并且,切換過(guò)程不會(huì)中斷視頻播放,從而解決了現(xiàn)有技術(shù)中,碼流在切換時(shí)會(huì)出現(xiàn)中斷,影響用戶觀看體驗(yàn)的問(wèn)題。
進(jìn)一步的,所述視頻的碼流切換裝置還包括:
預(yù)設(shè)緩存值確定模塊,用于在切換至所述目標(biāo)碼流并播放之前,確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
其中,所述預(yù)設(shè)緩存值確定模塊可通過(guò)多種形式實(shí)現(xiàn)。
在其中一種形式中,所述目標(biāo)碼流切換模塊包括:
第一確定單元,用于接收緩存值設(shè)置操作,并根據(jù)所述緩存值設(shè)置操作確定所述目標(biāo)碼流的預(yù)設(shè)緩存值。
這種情況下,用戶會(huì)對(duì)電子設(shè)備執(zhí)行緩存值設(shè)置操作,通過(guò)該操作,設(shè)置所述預(yù)設(shè)緩存值。例如,通過(guò)用戶的緩存值設(shè)置操作,可設(shè)定所述預(yù)設(shè)緩存值為20個(gè)TS流,則目標(biāo)碼流在電子設(shè)備中的緩存值達(dá)到20個(gè)TS流時(shí),確定目標(biāo)碼流的緩存值達(dá)到預(yù)設(shè)緩存值。
在另一種形式中,所述目標(biāo)碼流切換模塊包括:
容量確定單元,用于根據(jù)所述目標(biāo)碼流的播放信息,確定所述目標(biāo)碼流的容量;
第二確定單元,用于根據(jù)所述目標(biāo)碼流的容量以及當(dāng)前網(wǎng)絡(luò)狀態(tài),計(jì)算所述目標(biāo)碼流在順暢播放的情況下,需要緩存的目標(biāo)碼流的容量,并將所述需要緩存的目標(biāo)碼流的容量作為所述目標(biāo)碼流的預(yù)設(shè)緩存值。
該種形式中,所述播放信息中包含所述目標(biāo)碼流的容量。在獲取目標(biāo)碼流的容量后,需要根據(jù)所述目標(biāo)碼流的容量以及當(dāng)前網(wǎng)絡(luò)狀態(tài),計(jì)算所述目標(biāo)碼流在順暢播放的情況下,需要緩存的目標(biāo)碼流的容量。其中,若當(dāng)前網(wǎng)絡(luò)狀態(tài)較好,網(wǎng)速較快,則所述需要緩存的目標(biāo)碼流的容量較小,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較少,這種情況下,能夠在較短時(shí)間內(nèi)達(dá)到目標(biāo)碼流的預(yù)設(shè)緩存值,則能夠盡快完成碼流的切換;若當(dāng)前網(wǎng)絡(luò)狀態(tài)較差,網(wǎng)絡(luò)較慢,則所述需要緩存的目標(biāo)碼流的容量較大,即所述目標(biāo)碼流的預(yù)設(shè)緩存值較大,才能保證切換至目標(biāo)碼流進(jìn)行播放后,目標(biāo)碼流能夠順暢播放。
這種情況下,能夠使獲取到的目標(biāo)碼流的預(yù)設(shè)緩存值符合當(dāng)前的網(wǎng)絡(luò)狀態(tài)。
另外,在本發(fā)明公開的視頻的碼流切換裝置中,若所述目標(biāo)碼流的播放信息中包含兩個(gè)以上播放地址,所述目標(biāo)碼流緩存模塊120包括:
IP地址獲取單元,用于獲取電子設(shè)備的IP地址;
播放地址確定單元,用于根據(jù)所述IP地址,從所述兩個(gè)以上播放地址中選擇反饋所述目標(biāo)碼流速度最快的播放地址,并確定所述反饋所述目標(biāo)碼流速度最快的播放地址為所述目標(biāo)碼流的播放地址。
另外,在本發(fā)明公開的視頻的碼流切換裝置中,設(shè)定所述目傳送流標(biāo)TS流為所述當(dāng)前視頻對(duì)應(yīng)的第t個(gè)TS流,所述目標(biāo)碼流切換模塊130用于,在所述當(dāng)前碼流中的目標(biāo)傳送流TS流播放完畢后,查找緩存的所述目標(biāo)碼流中的第(t+1)個(gè)TS流,并播放所述目標(biāo)碼流中的第(t+1)個(gè)TS流。
針對(duì)同一視頻,不同碼流往往包含相同數(shù)量的TS流。在當(dāng)前碼流中的目標(biāo)TS流播放完畢后,說(shuō)明當(dāng)前視頻的第t個(gè)TS流播放完畢。這種情況下,播放目標(biāo)碼流中的第(t+1)個(gè)TS流,能夠保障當(dāng)前視頻的流暢和完整的播放。
本發(fā)明實(shí)施例提供了一種非暫態(tài)計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,該計(jì)算機(jī)可執(zhí)行指令可執(zhí)行上述任意方法實(shí)施例中的視頻的碼流切換方法。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成。相應(yīng)的,本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算程序,所述計(jì)算機(jī)程序包括程序指令,當(dāng)所述程序指令被計(jì)算機(jī)執(zhí)行時(shí),使所述計(jì)算機(jī)執(zhí)行上述第一方面任意一個(gè)實(shí)施例提供的所述視頻的碼流切換方法。所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory,RAM)等。
圖5是本發(fā)明實(shí)施例七提供的執(zhí)行視頻的碼流切換方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖,如圖5所示,該設(shè)備包括:
一個(gè)或多個(gè)處理器510以及存儲(chǔ)器520,圖5中以一個(gè)處理器510為例。
執(zhí)行視頻的碼流切換的設(shè)備還可以包括:輸入裝置530和輸出裝置540。
處理器510、存儲(chǔ)器520、輸入裝置530和輸出裝置540可以通過(guò)總線或者其他方式連接,圖5中以通過(guò)總線連接為例。
存儲(chǔ)器520作為一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可用于存儲(chǔ)非易失性軟件程序、非易失性計(jì)算機(jī)可執(zhí)行程序以及模塊,如本發(fā)明實(shí)施例中的視頻的碼流切換方法對(duì)應(yīng)的程序指令/模塊(例如,附圖4所示的播放信息獲取模塊110、目標(biāo)碼流緩存模塊120和目標(biāo)碼流切換模塊130)。處理器510通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器520中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例中的視頻的碼流切換方法。
存儲(chǔ)器520可以包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需要的應(yīng)用程序;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)視頻的碼流切換裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲(chǔ)器520可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他非易失性固態(tài)存儲(chǔ)器件。在一些實(shí)施例中,存儲(chǔ)器520可選包括相對(duì)于處理器510遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過(guò)網(wǎng)絡(luò)連接至視頻的碼流切換裝置。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
輸入裝置530可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與視頻的碼流切換裝置的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。輸出裝置540可包括顯示屏等顯示設(shè)備。
所述一個(gè)或者多個(gè)模塊存儲(chǔ)在所述存儲(chǔ)器520中,當(dāng)被所述一個(gè)或者多個(gè)處理器510執(zhí)行時(shí),執(zhí)行上述任意方法實(shí)施例中的視頻的碼流切換方法。
上述產(chǎn)品可執(zhí)行本發(fā)明實(shí)施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見(jiàn)本發(fā)明實(shí)施例所提供的方法。
本發(fā)明實(shí)施例的電子設(shè)備以多種形式存在,包括但不限于:
(1)移動(dòng)通信設(shè)備:這類設(shè)備的特點(diǎn)是具備移動(dòng)通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(jī)(例如iPhone)、多媒體手機(jī)、功能性手機(jī),以及低端手機(jī)等。
(2)超移動(dòng)個(gè)人計(jì)算機(jī)設(shè)備:這類設(shè)備屬于個(gè)人計(jì)算機(jī)的范疇,有計(jì)算和處理功能,一般也具備移動(dòng)上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
(3)便攜式娛樂(lè)設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機(jī),電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
(4)服務(wù)器:提供計(jì)算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計(jì)算機(jī)架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子裝置。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)相關(guān)技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。