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

視頻分段加載方法和裝置與流程

文檔序號(hào):12068787閱讀:1380來(lái)源:國(guó)知局
視頻分段加載方法和裝置與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種視頻分段加載方法和裝置。



背景技術(shù):

現(xiàn)有的例如html5 video(一種通過(guò)網(wǎng)頁(yè)播放視頻的技術(shù))等視頻播放器是只有當(dāng)整個(gè)視頻全部加載完成才能進(jìn)行播放,如果一個(gè)視頻很大,用戶網(wǎng)絡(luò)速度如果很慢,可能需要等待很長(zhǎng)時(shí)間才能正常播放,這樣極有可能用戶因?yàn)闊o(wú)法忍受較長(zhǎng)時(shí)間的加載而放棄觀看視頻。所以視頻網(wǎng)站為了改善用戶觀看體驗(yàn),在播放視頻時(shí)對(duì)視頻進(jìn)行分段加載而不是一次加載整個(gè)完整視頻,這樣用戶不需要等待很長(zhǎng)時(shí)間就可以觀看視頻,在觀看的過(guò)程中加載即將播放的視頻片段。

目前對(duì)視頻分段都是采用固定分段的方式,即在制作視頻時(shí)就將視頻分成若干段,并將分段信息(分段時(shí)長(zhǎng)、分段大小、分段地址等)保存到服務(wù)器,用戶端播放器在進(jìn)行視頻播放時(shí)首先獲取視頻的分段信息,然后根據(jù)播放的進(jìn)度獲取分段視頻進(jìn)行播放。

雖然上述固定的視頻分段方式能夠避免從服務(wù)器下載不看的視頻內(nèi)容,節(jié)省網(wǎng)絡(luò)資源,但由于視頻分段是在制作視頻時(shí)已經(jīng)確定,當(dāng)用戶的網(wǎng)絡(luò)狀況較差時(shí)還是會(huì)需要較長(zhǎng)時(shí)間的等待時(shí)間,而且由于在制作視頻時(shí)確定分段信心,因此需要在服務(wù)器中保存分段信息,在用戶端播放視頻時(shí)也無(wú)法在調(diào)整分段信息。因此需要一種更加智能的視頻分段加載方式,來(lái)解決上述問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分 地解決上述問(wèn)題的視頻分段加載方法和裝置。

依據(jù)本發(fā)明的一個(gè)方面,提供了一種視頻分段加載方法,包括:根據(jù)加載第一段視頻的時(shí)間信息,以及所述第一段視頻的長(zhǎng)度,計(jì)算加載所述第一段視頻時(shí)的加載速度;所述第一段視頻由服務(wù)器從預(yù)設(shè)視頻上切分得到;在播放所述第一段視頻至預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)所述第一段視頻的剩余長(zhǎng)度以及所述第一段視頻的加載速度,計(jì)算待向所述服務(wù)器請(qǐng)求加載的第二段視頻的長(zhǎng)度;根據(jù)所述第二段視頻的長(zhǎng)度,向所述服務(wù)器發(fā)出加載所述第二段視頻的請(qǐng)求;加載所述服務(wù)器發(fā)送的從所述預(yù)設(shè)視頻上切分得到的所述第二段視頻以用于播放。

可選地,前述的視頻分段加載方法,根據(jù)所述第二段視頻的長(zhǎng)度,向所述服務(wù)器發(fā)出加載所述第二段視頻的請(qǐng)求,具體包括:根據(jù)所述第一段視頻的結(jié)束時(shí)間設(shè)置所述第二段視頻的開(kāi)始時(shí)間,根據(jù)所述第一段視頻的結(jié)束時(shí)間與所述第二段視頻的長(zhǎng)度設(shè)置所述第二段視頻的結(jié)束時(shí)間,并將所述第二段視頻的開(kāi)始時(shí)間和結(jié)束時(shí)間加入所述請(qǐng)求進(jìn)行發(fā)送。

可選地,前述的視頻分段加載方法,在根據(jù)所述第二段視頻的長(zhǎng)度,向所述服務(wù)器發(fā)出加載所述第二段視頻的請(qǐng)求之前,還包括:將所述第二段視頻的長(zhǎng)度與預(yù)設(shè)的表示網(wǎng)絡(luò)狀況的系數(shù)的乘積,作為新的所述第二段視頻的長(zhǎng)度。

可選地,前述的視頻分段加載方法,在根據(jù)所述第二段視頻的長(zhǎng)度,向所述服務(wù)器發(fā)出加載所述第二段視頻的請(qǐng)求之前,還包括:在所述第二段視頻的長(zhǎng)度小于預(yù)設(shè)第一長(zhǎng)度時(shí),將所述第二段視頻的長(zhǎng)度修改為所述預(yù)設(shè)第一長(zhǎng)度。

可選地,前述的視頻分段加載方法,還包括:在未加載所述預(yù)設(shè)視頻的任何部分時(shí),向所述服務(wù)器發(fā)出加載所述預(yù)設(shè)視頻中的預(yù)設(shè)第二長(zhǎng)度的一段視頻的請(qǐng)求。

依據(jù)本發(fā)明的另一方面,還提供了一種視頻分段加載裝置,包括:加載速度計(jì)算模塊,用于根據(jù)加載第一段視頻的時(shí)間信息,以及所述第一段視頻的長(zhǎng)度,計(jì)算加載所述第一段視頻時(shí)的加載速度;所述第一段視頻由服務(wù)器從預(yù)設(shè)視頻上切分得到;視頻長(zhǎng)度計(jì)算模塊,用于在播放所述第一段視頻至 預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)所述第一段視頻的剩余長(zhǎng)度以及所述第一段視頻的加載速度,計(jì)算待向所述服務(wù)器請(qǐng)求加載的第二段視頻的長(zhǎng)度;請(qǐng)求模塊,用于根據(jù)所述第二段視頻的長(zhǎng)度,向所述服務(wù)器發(fā)出加載所述第二段視頻的請(qǐng)求;加載模塊,用于加載所述服務(wù)器發(fā)送的從所述預(yù)設(shè)視頻上切分得到的所述第二段視頻以用于播放。

可選地,前述的視頻分段加載裝置,所述請(qǐng)求模塊根據(jù)所述第一段視頻的結(jié)束時(shí)間設(shè)置所述第二段視頻的開(kāi)始時(shí)間,根據(jù)所述第一段視頻的結(jié)束時(shí)間與所述第二段視頻的長(zhǎng)度設(shè)置所述第二段視頻的結(jié)束時(shí)間,并將所述第二段視頻的開(kāi)始時(shí)間和結(jié)束時(shí)間加入所述請(qǐng)求進(jìn)行發(fā)送。

可選地,前述的視頻分段加載裝置,所述視頻長(zhǎng)度計(jì)算模塊還將所述第二段視頻的長(zhǎng)度與預(yù)設(shè)的表示網(wǎng)絡(luò)狀況的系數(shù)的乘積,作為新的所述第二段視頻的長(zhǎng)度。

可選地,前述的視頻分段加載裝置,所述視頻長(zhǎng)度計(jì)算模塊還在所述第二段視頻的長(zhǎng)度小于預(yù)設(shè)第一長(zhǎng)度時(shí),將所述第二段視頻的長(zhǎng)度修改為所述預(yù)設(shè)第一長(zhǎng)度。

可選地,前述的視頻分段加載裝置,所述請(qǐng)求模塊還在未加載所述預(yù)設(shè)視頻的任何部分時(shí),向所述服務(wù)器發(fā)出加載所述預(yù)設(shè)視頻中的預(yù)設(shè)第二長(zhǎng)度的一段視頻的請(qǐng)求。

根據(jù)以上技術(shù)方案,本發(fā)明的視頻分段加載方法和裝置至少具有以下優(yōu)點(diǎn):

根據(jù)本發(fā)明的技術(shù)方案,能夠根據(jù)實(shí)時(shí)網(wǎng)絡(luò)狀態(tài)自動(dòng)調(diào)整下載視頻段的長(zhǎng)度,無(wú)論是終端還是服務(wù)器均不需要保存視頻分段信息,也不需要預(yù)先對(duì)視頻進(jìn)行分段,減輕了服務(wù)器的負(fù)擔(dān),也提升了用戶體驗(yàn)。

上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

附圖說(shuō)明

通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:

圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的視頻分段加載方法的流程圖;

圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的視頻分段加載方法的流程圖;

圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的視頻分段加載方法的流程圖。

具體實(shí)施方式

下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

如圖1所示,本發(fā)明的一個(gè)實(shí)施例中提供了一種視頻分段加載方法,包括:

步驟110,根據(jù)加載第一段視頻的時(shí)間信息,以及第一段視頻的長(zhǎng)度,計(jì)算加載第一段視頻時(shí)的加載速度;第一段視頻由服務(wù)器從預(yù)設(shè)視頻上切分得到。第一段視頻的時(shí)間信息可以包括加載第一段視頻的開(kāi)始請(qǐng)求時(shí)間和加載完成時(shí)間,由此可以根據(jù)第一段視頻的時(shí)間信息計(jì)算得到加載第一段視頻的耗時(shí)時(shí)間。在本實(shí)施例中,第一段視頻的數(shù)量可以是一個(gè)也可以是多個(gè)。根據(jù)本實(shí)施例的技術(shù)方案,計(jì)算視頻加載速度的原理在于:當(dāng)播放器用戶端向服務(wù)器發(fā)出請(qǐng)求以獲取視頻片段時(shí),記錄開(kāi)始請(qǐng)求時(shí)間ts1,當(dāng)該分段視頻加載完成后記錄一個(gè)時(shí)間te1,使用te1-ts1可以得到加載該段視頻的耗時(shí)時(shí)間為t1;該段視頻的長(zhǎng)度為L(zhǎng)1,那么就可以得到t1秒內(nèi)獲取了L1秒長(zhǎng)度的視頻,這樣大概可以估算出每秒加載的視頻長(zhǎng)度為L(zhǎng)1/t1,例如如果獲取20秒的視頻花費(fèi)了5秒鐘,那么可以簡(jiǎn)單的認(rèn)為每秒鐘該用戶的網(wǎng)速可以為用戶獲取4秒的視頻內(nèi)容。

步驟120,在播放第一段視頻至預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)第一段視頻的剩余長(zhǎng)度 以及第一段視頻的加載速度,計(jì)算待向服務(wù)器請(qǐng)求加載的第二段視頻的長(zhǎng)度。第一段視頻與第二段視頻是預(yù)設(shè)視頻中相互鄰接的兩個(gè)視頻段,且第一視頻段的結(jié)束時(shí)間與第二視頻段的開(kāi)始時(shí)間相同。在本實(shí)施例中,在第一段視頻播放過(guò)程中,當(dāng)視頻播放到該段視頻長(zhǎng)度的50%時(shí)(該值可以調(diào)整),開(kāi)始加載下一段視頻。由于還剩余50%的視頻未播放,假如第一段視頻的長(zhǎng)度為20秒鐘,則剩余視頻大概可以播放10秒鐘;因?yàn)槊棵氪蟾趴梢垣@取4秒的視頻,那么在接下來(lái)的播放時(shí)間內(nèi)大概用戶獲取40秒長(zhǎng)度的視頻。當(dāng)然如果視頻的總長(zhǎng)度小于結(jié)束位置,結(jié)束位置為視頻總長(zhǎng)度的位置。

預(yù)設(shè)長(zhǎng)度除了可以為各視頻段時(shí)長(zhǎng)的設(shè)定比例外,還可以是各視頻段中的設(shè)定長(zhǎng)度(例如該視頻段中的第10秒)或設(shè)定幀數(shù)(例如該視頻段中的第120幀)等。

步驟130,根據(jù)第二段視頻的長(zhǎng)度,向服務(wù)器發(fā)出加載第二段視頻的請(qǐng)求。

步驟140,加載服務(wù)器發(fā)送的從預(yù)設(shè)視頻上切分得到的第二段視頻以用于播放。本實(shí)施例的技術(shù)方案可以循環(huán)地執(zhí)行,直至整個(gè)視頻加載完成。例如,視頻播放器獲取第二段視頻后,記錄開(kāi)始時(shí)間ts2和視頻加載完成的時(shí)間te2,從而計(jì)算出加載第二段L2=32秒視頻的時(shí)間t2,比如t2=6s,根據(jù)第一段視頻的加載速度和第二段視頻的加載速度,計(jì)算出平均每秒鐘可以加載的視頻長(zhǎng)度,(L1+L2)/(t1+t2)=(20+32)/(5+6)=4.7。這樣當(dāng)?shù)诙我曨l播放到該段視頻的50%時(shí),開(kāi)始加載第三段視頻。如果視頻的總長(zhǎng)度小于結(jié)束位置,結(jié)束位置為視頻總長(zhǎng)度的位置。可見(jiàn)按照上述計(jì)算步驟,能夠依次計(jì)算下一個(gè)將要播放的視頻片段的長(zhǎng)度,直到整個(gè)視頻播放完成。

如圖2所示,本發(fā)明的一個(gè)實(shí)施例中提供了一種視頻分段加載方法,包括:

步驟210,在未加載預(yù)設(shè)視頻的任何部分時(shí),向服務(wù)器發(fā)出加載預(yù)設(shè)視頻中的預(yù)設(shè)第二長(zhǎng)度的一段視頻的請(qǐng)求。獲取的該段視頻可作為首個(gè)第一段視頻。以html5video視頻播放器為例,當(dāng)用戶打開(kāi)一個(gè)頁(yè)面進(jìn)行視頻觀看時(shí),頁(yè)面上的html5video視頻播放器先從服務(wù)器獲取整個(gè)視頻的信息,包括視頻名稱(chēng)、視頻總長(zhǎng)度、視頻大小、視頻url(地址)等。如果一個(gè)視頻很小,比 如小于1M,就沒(méi)有必要對(duì)視頻進(jìn)行分段播放;如果視頻相對(duì)較大,就需要對(duì)視頻進(jìn)行分段。具體地,當(dāng)需要加載第一個(gè)分段時(shí),可以固定加載一個(gè)長(zhǎng)度,例如20秒鐘。這樣在設(shè)置視頻播放器的url時(shí)需要帶上開(kāi)始位置0和結(jié)束位置20這兩個(gè)參數(shù)。例如該視頻的url為www.videourl.com/12345,發(fā)送的獲取視頻的請(qǐng)求中包含第一個(gè)分段的url為www.videourl.com/12345?st=0&et=20,其中st=20表示開(kāi)始位置為0秒,et=20表示結(jié)束位置為20秒。

服務(wù)器接收到包含www.videourl.com/12345?st=0&et=20的請(qǐng)求后,根據(jù)www.videourl.com/12345可以知道原視頻的所在位置,然后服務(wù)器對(duì)該視頻進(jìn)行切割生成一個(gè)0~20秒的臨時(shí)視頻,并將數(shù)據(jù)流返回給播放器;當(dāng)數(shù)據(jù)流返回完成之后,刪除該臨時(shí)視頻;或者在切割視頻時(shí)不將生成的臨時(shí)視頻保存到硬盤(pán)上,而是直接保存到內(nèi)存中,服務(wù)器返回視頻流時(shí)直接使用內(nèi)存中的數(shù)據(jù),服務(wù)器返回完成后清除數(shù)據(jù)。

步驟220,根據(jù)加載第一段視頻的時(shí)間信息,以及第一段視頻的長(zhǎng)度,計(jì)算加載第一段視頻時(shí)的加載速度;第一段視頻由服務(wù)器從預(yù)設(shè)視頻上切分得到。

步驟230,在播放第一段視頻至預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)第一段視頻的剩余長(zhǎng)度以及第一段視頻的加載速度,計(jì)算待向服務(wù)器請(qǐng)求加載的第二段視頻的長(zhǎng)度。

步驟240,將第二段視頻的長(zhǎng)度與預(yù)設(shè)的表示網(wǎng)絡(luò)狀況的系數(shù)的乘積,作為新的第二段視頻的長(zhǎng)度。結(jié)合前述的實(shí)施例可知,如果計(jì)算出的第二段視頻的長(zhǎng)度為40秒,此時(shí)再考慮一些其他網(wǎng)絡(luò)不穩(wěn)定因素,給該長(zhǎng)度乘以一個(gè)系數(shù),例如80%,那么第二段視頻的時(shí)間長(zhǎng)度是40×0.8=32,那么第二段視頻的url為www.videourl.com/12345?st=20&et=52。

與前述實(shí)施例相同地,在根據(jù)第二段視頻的加載速度來(lái)加載新的視頻時(shí),當(dāng)?shù)诙我曨l播放到該段視頻的50%,計(jì)算得到需加載的第三段視頻長(zhǎng)度為4.7×32×0.5×0.8=60,這樣第三段視頻的長(zhǎng)度為60秒,開(kāi)始位置為20+32=52,結(jié)束位置為52+60=112,請(qǐng)求的url為www.videourl.com/12345?st=52&et=112。

步驟250,在第二段視頻的長(zhǎng)度小于預(yù)設(shè)第一長(zhǎng)度時(shí),將第二段視頻的長(zhǎng)度修改為預(yù)設(shè)第一長(zhǎng)度。根據(jù)本實(shí)施例的技術(shù)方案,如果某個(gè)用戶的網(wǎng)速非常慢,計(jì)算出來(lái)的即將加載的第二段視頻長(zhǎng)度可能很小,這樣為了降低服務(wù) 器的壓力,當(dāng)加載長(zhǎng)度小于某個(gè)值時(shí),應(yīng)該取另一個(gè)較大的固定值。例如每次加載長(zhǎng)度不能小于10秒,如果計(jì)算出來(lái)的加載長(zhǎng)度為8秒,需要使用10秒進(jìn)行加載。

步驟260,根據(jù)第一段視頻的結(jié)束時(shí)間設(shè)置第二段視頻的開(kāi)始時(shí)間,根據(jù)第一段視頻的結(jié)束時(shí)間與第二段視頻的長(zhǎng)度設(shè)置第二段視頻的結(jié)束時(shí)間,并將第二段視頻的開(kāi)始時(shí)間和結(jié)束時(shí)間加入請(qǐng)求進(jìn)行發(fā)送。

步驟270,加載服務(wù)器發(fā)送的從預(yù)設(shè)視頻上切分得到的第二段視頻以用于播放。

如圖3所示,本發(fā)明的一個(gè)實(shí)施例中提供了一種視頻分段加載裝置,包括:

加載速度計(jì)算模塊310,根據(jù)加載第一段視頻的時(shí)間信息,以及第一段視頻的長(zhǎng)度,計(jì)算加載第一段視頻時(shí)的加載速度;第一段視頻由服務(wù)器從預(yù)設(shè)視頻上切分得到。第一段視頻的時(shí)間信息可以包括加載第一段視頻的開(kāi)始請(qǐng)求時(shí)間和加載完成時(shí)間,由此可以根據(jù)第一段視頻的時(shí)間信息計(jì)算得到加載第一段視頻的耗時(shí)時(shí)間。在本實(shí)施例中,第一段視頻的數(shù)量可以是一個(gè)也可以是多個(gè)。根據(jù)本實(shí)施例的技術(shù)方案,計(jì)算視頻加載速度的原理在于:當(dāng)播放器用戶端向服務(wù)器發(fā)出請(qǐng)求以獲取視頻片段時(shí),記錄開(kāi)始請(qǐng)求時(shí)間ts1,當(dāng)該分段視頻加載完成后記錄一個(gè)時(shí)間te1,使用te1-ts1可以得到加載該段視頻的耗時(shí)時(shí)間為t1;該段視頻的長(zhǎng)度為L(zhǎng)1,那么就可以得到t1秒內(nèi)獲取了L1秒長(zhǎng)度的視頻,這樣大概可以估算出每秒加載的視頻長(zhǎng)度為L(zhǎng)1/t1,例如如果獲取20秒的視頻花費(fèi)了5秒鐘,那么可以簡(jiǎn)單的認(rèn)為每秒鐘該用戶的網(wǎng)速可以為用戶獲取4秒的視頻內(nèi)容。

視頻長(zhǎng)度計(jì)算模塊320,在播放第一段視頻至預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)第一段視頻的剩余長(zhǎng)度以及第一段視頻的加載速度,計(jì)算待向服務(wù)器請(qǐng)求加載的第二段視頻的長(zhǎng)度。在本實(shí)施例中,在第一段視頻播放過(guò)程中,當(dāng)視頻播放到該段視頻長(zhǎng)度的50%時(shí)(該值可以調(diào)整),開(kāi)始加載下一段視頻。由于還剩余50%的視頻未播放,假如第一段視頻的長(zhǎng)度為20秒鐘,則剩余視頻大概可以播放10秒鐘;因?yàn)槊棵氪蟾趴梢垣@取4秒的視頻,那么在接下來(lái)的播放時(shí)間 內(nèi)大概用戶獲取40秒長(zhǎng)度的視頻。當(dāng)然如果視頻的總長(zhǎng)度小于結(jié)束位置,結(jié)束位置為視頻總長(zhǎng)度的位置。

請(qǐng)求模塊330,根據(jù)第二段視頻的長(zhǎng)度,向服務(wù)器發(fā)出加載第二段視頻的請(qǐng)求。

加載模塊340,加載服務(wù)器發(fā)送的從預(yù)設(shè)視頻上切分得到的第二段視頻以用于播放。本實(shí)施例的技術(shù)方案可以循環(huán)地執(zhí)行,直至整個(gè)視頻加載完成。例如,視頻播放器獲取第二段視頻后,記錄開(kāi)始時(shí)間ts2和視頻加載完成的時(shí)間te2,從而計(jì)算出加載第二段L2=32秒視頻的時(shí)間t2,比如t2=6s,根據(jù)第一段視頻的加載速度和第二段視頻的加載速度,計(jì)算出平均每秒鐘可以加載的視頻長(zhǎng)度,(L1+L2)/(t1+t2)=(20+32)/(5+6)=4.7。這樣當(dāng)?shù)诙我曨l播放到該段視頻的50%是,開(kāi)始加載第三段視頻。如果視頻的總長(zhǎng)度小于結(jié)束位置,結(jié)束位置為視頻總長(zhǎng)度的位置??梢?jiàn)按照上述計(jì)算步驟,能夠依次計(jì)算下一個(gè)將要播放的視頻片段的長(zhǎng)度,直到整個(gè)視頻播放完成。

如圖3所示,本發(fā)明的一個(gè)實(shí)施例中提供了一種視頻分段加載裝置,包括:

加載模塊340,在未加載預(yù)設(shè)視頻的任何部分時(shí),向服務(wù)器發(fā)出加載預(yù)設(shè)視頻中的預(yù)設(shè)第二長(zhǎng)度的一段視頻的請(qǐng)求。獲取的該段視頻可作為首個(gè)第一段視頻。以html5video視頻播放器為例,當(dāng)用戶打開(kāi)一個(gè)頁(yè)面進(jìn)行視頻觀看時(shí),頁(yè)面上的html5video視頻播放器先從服務(wù)器獲取整個(gè)視頻的信息,包括視頻名稱(chēng)、視頻總長(zhǎng)度、視頻大小、視頻url(地址)等。如果一個(gè)視頻很小,比如小于1M,就沒(méi)有必要對(duì)視頻進(jìn)行分段播放;如果視頻相對(duì)較大,就需要對(duì)視頻進(jìn)行分段。具體地,當(dāng)需要加載第一個(gè)分段時(shí),可以固定加載一個(gè)長(zhǎng)度,例如20秒鐘。這樣在設(shè)置視頻播放器的url時(shí)需要帶上開(kāi)始位置0和結(jié)束位置20這兩個(gè)參數(shù)。例如該視頻的url為www.videourl.com/12345,發(fā)送的獲取視頻的請(qǐng)求中包含第一個(gè)分段的url為www.videourl.com/12345?st=0&et=20,其中st=20表示開(kāi)始位置為0秒,et=20表示結(jié)束位置為20秒。

服務(wù)器接收到包含www.videourl.com/12345?st=0&et=20的請(qǐng)求后,根據(jù) www.videourl.com/12345可以知道原視頻的所在位置,然后服務(wù)器對(duì)該視頻進(jìn)行切割生成一個(gè)0~20秒的臨時(shí)視頻,并將數(shù)據(jù)流返回給播放器;當(dāng)數(shù)據(jù)流返回完成之后,刪除該臨時(shí)視頻;或者在切割視頻時(shí)不將生成的臨時(shí)視頻保存到硬盤(pán)上,而是直接保存到內(nèi)存中,服務(wù)器返回視頻流時(shí)直接使用內(nèi)存中的數(shù)據(jù),服務(wù)器返回完成后清除數(shù)據(jù)。

加載速度計(jì)算模塊310,根據(jù)加載第一段視頻的時(shí)間信息,以及第一段視頻的長(zhǎng)度,計(jì)算加載第一段視頻時(shí)的加載速度;第一段視頻由服務(wù)器從預(yù)設(shè)視頻上切分得到。

視頻長(zhǎng)度計(jì)算模塊320,在播放第一段視頻至預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)第一段視頻的剩余長(zhǎng)度以及第一段視頻的加載速度,計(jì)算待向服務(wù)器請(qǐng)求加載的第二段視頻的長(zhǎng)度。

視頻長(zhǎng)度計(jì)算模塊320,將第二段視頻的長(zhǎng)度與預(yù)設(shè)的表示網(wǎng)絡(luò)狀況的系數(shù)的乘積,作為新的第二段視頻的長(zhǎng)度。結(jié)合前述的實(shí)施例可知,如果計(jì)算出的第二段視頻的長(zhǎng)度為40秒,此時(shí)再考慮一些其他網(wǎng)絡(luò)不穩(wěn)定因素,給該長(zhǎng)度乘以一個(gè)系數(shù),例如80%,那么第二段視頻的時(shí)間長(zhǎng)度是40×0.8=32,那么第二段視頻的url為www.videourl.com/12345?st=20&et=52。

與前述實(shí)施例相同地,在根據(jù)第二段視頻的加載速度來(lái)加載新的視頻時(shí),當(dāng)?shù)诙我曨l播放到該段視頻的50%,計(jì)算得到需加載的第三段視頻長(zhǎng)度為4.7×32×0.5×0.8=60,這樣第三段視頻的長(zhǎng)度為60秒,開(kāi)始位置為20+32=52,結(jié)束位置為52+60=112,請(qǐng)求的url為www.videourl.com/12345?st=52&et=112。

視頻長(zhǎng)度計(jì)算模塊320,在第二段視頻的長(zhǎng)度小于預(yù)設(shè)第一長(zhǎng)度時(shí),將第二段視頻的長(zhǎng)度修改為預(yù)設(shè)第一長(zhǎng)度。根據(jù)本實(shí)施例的技術(shù)方案,如果某個(gè)用戶的網(wǎng)速非常慢,計(jì)算出來(lái)的即將加載的第二段視頻長(zhǎng)度可能很小,這樣為了降低服務(wù)器的壓力,當(dāng)加載長(zhǎng)度小于某個(gè)值時(shí),應(yīng)該取另一個(gè)較大的固定值。例如每次加載長(zhǎng)度不能小于10秒,如果計(jì)算出來(lái)的加載長(zhǎng)度為8秒,需要使用10秒進(jìn)行加載。

請(qǐng)求模塊330,根據(jù)第一段視頻的結(jié)束時(shí)間設(shè)置第二段視頻的開(kāi)始時(shí)間,根據(jù)第一段視頻的結(jié)束時(shí)間與第二段視頻的長(zhǎng)度設(shè)置第二段視頻的結(jié)束時(shí)間,并將第二段視頻的開(kāi)始時(shí)間和結(jié)束時(shí)間加入請(qǐng)求進(jìn)行發(fā)送。

加載模塊340,加載服務(wù)器發(fā)送的從預(yù)設(shè)視頻上切分得到的第二段視頻以用于播放。

在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。

在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。

類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。

本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。

此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它 實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。

本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的視頻分段加載裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。

應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1