一種在線視頻播放方法及裝置制造方法
【專利摘要】本發(fā)明適用于視頻播放領(lǐng)域,提供了一種在線視頻播放方法及裝置。所述方法包括:接收播放器發(fā)送的播放請(qǐng)求;查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)為視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀;在緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),將預(yù)先生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。本發(fā)明實(shí)施例能夠縮短播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間。
【專利說(shuō)明】一種在線視頻播放方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于視頻播放領(lǐng)域,尤其涉及一種在線視頻播放方法及裝置。
【背景技術(shù)】
[0002]隨著近年來(lái)終端,特別是移動(dòng)終端的飛速發(fā)展,在智能手機(jī)、平板等便攜設(shè)備上觀看在線視頻成為一種趨勢(shì)。移動(dòng)終端管理在線視頻的視頻數(shù)據(jù)有以下兩種方式:一是將一個(gè)視頻文件中的視頻數(shù)據(jù)逐段緩存到內(nèi)存中,如愛(ài)奇藝,樂(lè)視,騰訊,優(yōu)酷等主流在線視頻網(wǎng)站提供的移動(dòng)端應(yīng)用;二是將一個(gè)視頻文件中的全部視頻數(shù)據(jù)存儲(chǔ)到移動(dòng)終端的本地存儲(chǔ)中,如快播等移動(dòng)端應(yīng)用。
[0003]對(duì)于第一種方式,若用戶在視頻播放過(guò)程中退出,則內(nèi)存中已緩沖且未播放的視頻數(shù)據(jù)將被丟棄,在用戶隔一段時(shí)間再觀看該視頻時(shí),需要重新向在線視頻發(fā)送請(qǐng)求才能從中斷點(diǎn)繼續(xù)播放。由于需要重新向在線視頻發(fā)送請(qǐng)求,因此播放器需要等待在線視頻響應(yīng)才能重新加載、跳轉(zhuǎn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),從而導(dǎo)致播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間過(guò)長(zhǎng)。而對(duì)于第二種方式,由于視頻文件比較大(尤其是高清視頻普及后),若將全部視頻數(shù)據(jù)存儲(chǔ)到移動(dòng)終端的本地存儲(chǔ)中,則將大量占用移動(dòng)終端有限的存儲(chǔ)空間,降低了移動(dòng)終端存儲(chǔ)空間的使用效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種在線視頻播放方法,旨在解決現(xiàn)有方法在播放視頻文件時(shí),播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間過(guò)長(zhǎng)的問(wèn)題。
[0005]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種在線視頻播放方法,所述方法包括下述步驟:
[0006]接收播放器發(fā)送的播放請(qǐng)求;
[0007]查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀;
[0008]在查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),生成緩存的視頻數(shù)據(jù)所在的地址,并將所述生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
[0009]本發(fā)明實(shí)施例的另一目的在于提供一種在線視頻播放裝置,所述裝置包括:
[0010]播放請(qǐng)求接收單元,用于接收播放器發(fā)送的播放請(qǐng)求;
[0011]緩存數(shù)據(jù)判斷單元,用于查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀;
[0012]視頻數(shù)據(jù)地址發(fā)送單元,用于在查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),生成緩存的視頻數(shù)據(jù)所在的地址,并將所述生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
[0013]在本發(fā)明實(shí)施例中,由于緩存了中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),因此播放器無(wú)需等待視頻網(wǎng)站響應(yīng)播放請(qǐng)求就能重新加載、跳轉(zhuǎn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),縮短播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間。
[0014]此外,由于只緩存了中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),沒(méi)有緩存整個(gè)視頻文件的視頻數(shù)據(jù),因此不會(huì)占用過(guò)多的存儲(chǔ)空間,提高存儲(chǔ)空間的使用效率。
【專利附圖】
【附圖說(shuō)明】
[0015]圖1是本發(fā)明第一實(shí)施例提供的一種在線視頻播放方法的流程圖;
[0016]圖2是本發(fā)明第一實(shí)施例提供一個(gè)數(shù)據(jù)分片的示意圖;
[0017]圖3是本發(fā)明第一實(shí)施例提供的代理服務(wù)器從視頻網(wǎng)站獲取視頻數(shù)據(jù),并組成不同數(shù)據(jù)分片發(fā)送給播放器的示意圖;
[0018]圖4是本發(fā)明第二實(shí)施例提供的另一種在線視頻播放方法的流程;
[0019]圖5是本發(fā)明第二實(shí)施例提供的一種緩存檔案的組織結(jié)構(gòu)示意圖;
[0020]圖6是本發(fā)明第三實(shí)施例提供的一種在線視頻播放裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0021]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0022]本發(fā)明實(shí)施例中,代理服務(wù)器接收到播放器發(fā)送的播放請(qǐng)求時(shí),查找其本身是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),若已緩存,則將緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使該播放器訪問(wèn)接收到的地址,播放相應(yīng)的視頻數(shù)據(jù);若未緩存,則從視頻網(wǎng)站獲取與該播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),并緩存在其創(chuàng)建的緩存檔案中,以便用戶在中斷播放視頻文件時(shí),可在緩存檔案中直接訪問(wèn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù)。
[0023]為了說(shuō)明本發(fā)明所述的技術(shù)方案,下面通過(guò)具體實(shí)施例來(lái)進(jìn)行說(shuō)明。
[0024]實(shí)施例一:
[0025]圖1示出了本發(fā)明第一實(shí)施例提供的一種在線視頻播放方法的流程圖,本實(shí)施例中,在代理服務(wù)器緩存了視頻文件時(shí),若播放器希望播放該視頻文件,則可直接訪問(wèn)代理服務(wù)器緩存的視頻文件;在代理服務(wù)器沒(méi)有緩存視頻文件時(shí),代理服務(wù)器首先從視頻網(wǎng)站獲取相應(yīng)的視頻文件并緩存,播放器再訪問(wèn)緩存的視頻文件。詳述如下:
[0026]步驟Sll,接收播放器發(fā)送的播放請(qǐng)求。
[0027]該步驟中,用戶希望觀看視頻文件時(shí),觸發(fā)播放器發(fā)送播放請(qǐng)求給代理服務(wù)器。該播放請(qǐng)求攜帶有需要播放的視頻文件的唯一標(biāo)識(shí),該視頻文件的唯一標(biāo)識(shí)為代理服務(wù)器創(chuàng)建的緩存檔案的通用唯一識(shí)別碼(Universally Unique Identifier, UUID)。
[0028]步驟S12,查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀。
[0029]該步驟中,用戶打開(kāi)過(guò)但沒(méi)播放結(jié)束的視頻文件對(duì)應(yīng)的視頻數(shù)據(jù)將緩存在代理服務(wù)器創(chuàng)建的緩存檔案中,代理服務(wù)器接收到播放器發(fā)送的播放請(qǐng)求后,根據(jù)該播放請(qǐng)求攜帶的視頻文件的唯一標(biāo)識(shí),查找其創(chuàng)建的緩存檔案中是否緩存有對(duì)應(yīng)的視頻文件。其中,該步驟的視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀及解析所述音視頻幀所需的信息,中斷點(diǎn)是指用戶停止播放視頻文件的時(shí)間點(diǎn);解析音視頻幀所需的信息包括:視頻文件的格式,軌道數(shù)、音視頻格式等基本信息。通過(guò)這些信息,能夠正確地從視頻文件中提取出音視頻幀。進(jìn)一步地,如果視頻文件的格式中包含有索引信息,則需要依賴索引信息來(lái)解析音視頻幀數(shù)據(jù)。
[0030]步驟S13,在查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),生成緩存的視頻數(shù)據(jù)所在的地址,并將所述生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
[0031]該步驟中,緩存的視頻數(shù)據(jù)所在的地址是由代理服務(wù)器根據(jù)其緩存的視頻數(shù)據(jù)所在主機(jī)名、所在的緩存檔案及唯一指向該視頻數(shù)據(jù)的名稱等信息生成。播放器接收到代理服務(wù)器發(fā)送的視頻數(shù)據(jù)的緩存地址后,訪問(wèn)該地址就能播放緩存的視頻數(shù)據(jù)中的音視頻幀,從而無(wú)需等待視頻網(wǎng)站響應(yīng)播放器發(fā)送的播放請(qǐng)求就能重新加載、跳轉(zhuǎn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),縮短播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間。
[0032]進(jìn)一步地,在代理服務(wù)器沒(méi)有查找到已緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),創(chuàng)建緩存檔案,以便緩存從視頻網(wǎng)站獲取的與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),再將緩存的視頻數(shù)據(jù)所在的地址轉(zhuǎn)發(fā)至播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
[0033]該步驟中,若視頻數(shù)據(jù)為用戶第一次打開(kāi)播放,則代理服務(wù)器沒(méi)有緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),代理服務(wù)器將接收的播放請(qǐng)求轉(zhuǎn)發(fā)至視頻網(wǎng)站,視頻網(wǎng)站再返回與所述播放請(qǐng)求對(duì)應(yīng)的視頻文件所在的統(tǒng)一資源定位符(Uniform Resource Locator,URL)地址,代理服務(wù)器再訪問(wèn)該URL地址以獲取相應(yīng)的視頻數(shù)據(jù),并創(chuàng)建一個(gè)緩存檔案用于緩存獲取的視頻數(shù)據(jù),再將緩存的視頻數(shù)據(jù)所在的地址轉(zhuǎn)發(fā)至播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。創(chuàng)建的緩存檔案通過(guò)分配的通用唯一識(shí)別碼(Universally Unique Identifier, UUID)作為索引,用于區(qū)分不同的緩存檔案。
[0034]本實(shí)施例中,代理服務(wù)器接收到播放器發(fā)送的播放請(qǐng)求時(shí),查找其本身是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),若已緩存,則將緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使該播放器訪問(wèn)接收到的地址,播放相應(yīng)的視頻數(shù)據(jù);若未緩存,則從視頻網(wǎng)站獲取與該播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),并緩存在其創(chuàng)建的緩存檔案中,以便用戶在中斷播放視頻文件時(shí),可在緩存檔案中直接訪問(wèn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù)。由于代理服務(wù)器緩存了中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),因此播放器無(wú)需等待視頻網(wǎng)站響應(yīng)播放請(qǐng)求就能重新加載、跳轉(zhuǎn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),縮短播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間。并且,由于代理服務(wù)器只緩存了中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),沒(méi)有緩存整個(gè)視頻文件的視頻數(shù)據(jù),因此不會(huì)占用過(guò)多的存儲(chǔ)空間,提高存儲(chǔ)空間的使用效率。
[0035]作為本發(fā)明一優(yōu)選實(shí)施例,在代理服務(wù)器緩存從視頻網(wǎng)站獲取的與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)的步驟之后,包括下述步驟:判斷獲取的視頻數(shù)據(jù)中的音視頻幀中哪一個(gè)幀是視頻I幀;緩存檔案依據(jù)判斷結(jié)果,以數(shù)據(jù)分片的形式緩存獲取的音視頻幀;每一個(gè)數(shù)據(jù)分片以一個(gè)視頻I幀開(kāi)始,以所述視頻I幀的下一個(gè)視頻I幀的前一幀結(jié)束。
[0036]本實(shí)施例中,代理服務(wù)器在獲取視頻數(shù)據(jù)之后,判斷獲取的視頻數(shù)據(jù)中的音頻幀和視頻幀中,哪一個(gè)幀是視頻I幀,每當(dāng)判斷出一個(gè)視頻I幀時(shí),就創(chuàng)建一個(gè)數(shù)據(jù)分片,每個(gè)數(shù)據(jù)分片都以一個(gè)視頻I幀開(kāi)始,以開(kāi)始的視頻I幀的下一個(gè)I幀的前一幀結(jié)束。圖2示出了一個(gè)數(shù)據(jù)分片的示意圖,在圖2中,數(shù)據(jù)分片是以音頻幀結(jié)束的,但實(shí)際情況中,若開(kāi)始的視頻I幀的下一個(gè)I幀是視頻幀時(shí),則以視頻幀結(jié)束,此處不作限定。創(chuàng)建的數(shù)據(jù)分片依序形成一個(gè)隊(duì)列緩沖池,均勻發(fā)送給播放器。
[0037]優(yōu)選地,緩存檔案緩存一個(gè)數(shù)據(jù)分片的時(shí)間設(shè)定為大于播放器播放所述數(shù)據(jù)分片的時(shí)間。
[0038]圖3示出了代理服務(wù)器從視頻網(wǎng)站獲取視頻數(shù)據(jù),并組成不同數(shù)據(jù)分片發(fā)送給播放器的示意圖,在圖3中,一個(gè)數(shù)據(jù)分片發(fā)送給播放器之后還會(huì)緩存一段時(shí)間,這是由于代理服務(wù)器獲取一個(gè)數(shù)據(jù)分片的時(shí)間通常大于播放器播放該數(shù)據(jù)分片的時(shí)間,即播放器當(dāng)前播放的數(shù)據(jù)分片通常是代理服務(wù)器在前一段時(shí)間發(fā)送給播放器的,因此為了保證播放器在中斷播放視頻文件后,還能在代理服務(wù)器訪問(wèn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),則代理服務(wù)器在將一個(gè)數(shù)據(jù)分片發(fā)送給播放器之后,還將緩存這個(gè)數(shù)據(jù)分片一段時(shí)間再丟棄。例如,可將緩存一個(gè)數(shù)據(jù)分片的時(shí)間設(shè)定為大于播放器播放該數(shù)據(jù)分片的時(shí)間的數(shù)值。
[0039]實(shí)施例二:
[0040]圖4示出了本發(fā)明第二實(shí)施例提供的另一種在線視頻播放方法的流程圖,本實(shí)施例中,步驟S41、步驟S45以及步驟S46與實(shí)施例一的步驟S11、步驟S12、以及步驟S13相同,此處不再贅述:
[0041]步驟S41,接收播放器發(fā)送的播放請(qǐng)求。
[0042]步驟S42,將所述播放請(qǐng)求轉(zhuǎn)發(fā)至視頻網(wǎng)站,并接收所述視頻網(wǎng)站返回的與所述播放請(qǐng)求對(duì)應(yīng)的視頻文件所在的統(tǒng)一資源定位符URL地址。
[0043]該步驟中,視頻文件的URL用于指向存放該視頻文件的具體位置,只要訪問(wèn)該URL就能訪問(wèn)到該URL指向的視頻文件,進(jìn)而獲取該視頻文件的視頻數(shù)據(jù)。
[0044]步驟S43,發(fā)送獲取預(yù)設(shè)長(zhǎng)度數(shù)據(jù)請(qǐng)求給所述視頻網(wǎng)站,以獲取所述URL地址指向的視頻文件的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)。
[0045]該步驟中,代理服務(wù)器訪問(wèn)接收的URL地址,并發(fā)送獲取預(yù)設(shè)長(zhǎng)度數(shù)據(jù)請(qǐng)求給視頻網(wǎng)站。這里的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)可為視頻文件的前IK字節(jié)對(duì)應(yīng)的數(shù)據(jù)。當(dāng)然,若判斷出視頻文件的大小小于1K,則這里的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)是指視頻文件的所有數(shù)據(jù)。
[0046]步驟S44,計(jì)算獲取的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)的散列值,計(jì)算得到的散列值作為所述預(yù)設(shè)長(zhǎng)度數(shù)據(jù)所在的視頻文件的散列值,所述視頻文件的散列值用于唯一標(biāo)識(shí)所述視頻文件。
[0047]該步驟中,利用MD5或SHA-1等散列函數(shù)計(jì)算預(yù)設(shè)長(zhǎng)度數(shù)據(jù)(例如視頻文件的前IK字節(jié)對(duì)應(yīng)的數(shù)據(jù))的散列值,并將得到的散列值作為預(yù)設(shè)長(zhǎng)度數(shù)據(jù)所在的視頻文件的散列值,以用于唯一標(biāo)識(shí)該視頻文件。由于經(jīng)過(guò)散列函數(shù)計(jì)算得到的兩個(gè)散列值不相同時(shí),用于計(jì)算這兩個(gè)散列值的原始輸入數(shù)據(jù)也不相同,因此可通過(guò)判斷視頻文件對(duì)應(yīng)的散列值來(lái)判斷兩個(gè)視頻文件是否為同一個(gè)視頻文件。
[0048]步驟S45,查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀。
[0049]作為本發(fā)明一優(yōu)選實(shí)施例,所述查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)的步驟具體包括:
[0050]逐個(gè)查找創(chuàng)建的緩存檔案中的散列值;判斷查找的散列值與新計(jì)算的散列值是否相等;若相等,判定創(chuàng)建的緩存檔案中緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);若不相等,則判定創(chuàng)建的緩存檔案中沒(méi)有緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)[0051]其中,緩存檔案的組織結(jié)構(gòu)可如圖5所示,在圖5中,緩存檔案都分配有一個(gè)UUID作為區(qū)分不同的緩存檔案,此外,該緩存檔案在圖5中“hash”的位置還記錄著存儲(chǔ)于該緩存檔案的視頻文件對(duì)應(yīng)的散列值,在“cache description”記錄著視頻大小,類型,播放時(shí)長(zhǎng),緩存數(shù)據(jù)的訪問(wèn)路徑等基本信息,“data description”記錄著緩存數(shù)據(jù)大小等數(shù)據(jù)描述信息,“cache data”對(duì)應(yīng)著具體的緩存數(shù)據(jù)。
[0052]由于視頻文件的散列值能夠唯一標(biāo)識(shí)視頻文件,因此代理服務(wù)器在計(jì)算新獲取的視頻數(shù)據(jù)的散列值之后,可通過(guò)判斷存儲(chǔ)了視頻數(shù)據(jù)的散列值的緩存檔案中是否存在與新計(jì)算得到的散列值相同的散列值來(lái)判斷代理服務(wù)器是否已緩存有該新獲取的視頻數(shù)據(jù)。并且,視頻文件的散列值的可靠性與用于計(jì)算散列值的視頻數(shù)據(jù)的長(zhǎng)度是成正比的,當(dāng)用于計(jì)算散列值的視頻數(shù)據(jù)的長(zhǎng)度達(dá)到一定程度后,兩個(gè)不同視頻文件的散列值相同的可能性幾乎為0,因此,提高了視頻文件判斷的準(zhǔn)確性。
[0053]步驟S46,在查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),生成緩存的視頻數(shù)據(jù)所在的地址,并將所述生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
[0054]本實(shí)施例中,代理服務(wù)器接收播放器發(fā)送的播放請(qǐng)求后,將所述播放請(qǐng)求轉(zhuǎn)發(fā)至視頻網(wǎng)站,該視頻網(wǎng)站將播放請(qǐng)求對(duì)比的URL地址返回給代理服務(wù)器,代理服務(wù)器再請(qǐng)求獲取該URL地址對(duì)應(yīng)的視頻文件中的預(yù)設(shè)長(zhǎng)度數(shù)據(jù),并用獲取的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)計(jì)算該視頻文件的散列值,最后將計(jì)算得到的散列值與緩存檔案存儲(chǔ)的散列值比較,若存在相同的散列值,則代理服務(wù)器緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),該代理服務(wù)器生成緩存該視頻數(shù)據(jù)所在的地址,并將生成的地址發(fā)送給播放器,否則,代理服務(wù)器從視頻網(wǎng)站獲取相應(yīng)的視頻數(shù)據(jù)并緩存在新創(chuàng)建的緩存檔案中,并將緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器。由于計(jì)算的散列值重復(fù)性極低,因此通過(guò)判斷散列值是否相同來(lái)判斷兩個(gè)視頻文件是否相同能夠提高判斷的準(zhǔn)確性。
[0055]進(jìn)一步地,在視頻文件播放結(jié)束之后,代理服務(wù)器刪除該視頻文件對(duì)應(yīng)的緩存檔案,釋放存儲(chǔ)空間。
[0056]該步驟中,刪除緩存了播放結(jié)束的視頻文件對(duì)應(yīng)緩存檔案,有利于提高存儲(chǔ)空間的利用率。
[0057]實(shí)施例三:
[0058]圖6示出了本發(fā)明第三實(shí)施例提供的一種在線視頻播放裝置的結(jié)構(gòu)圖,該在線視頻播放裝置是與上述實(shí)施例的在線視頻播放方法對(duì)應(yīng)的,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。
[0059]在線視頻播放裝置包括:播放請(qǐng)求接收單元61、緩存數(shù)據(jù)判斷單元62、視頻數(shù)據(jù)地址發(fā)送單元63。其中:
[0060]播放請(qǐng)求接收單元61,用于接收播放器發(fā)送的播放請(qǐng)求。
[0061 ] 其中,播放請(qǐng)求攜帶了播放器將要播放的視頻文件的唯一標(biāo)識(shí)。
[0062]緩存數(shù)據(jù)判斷單元62,用于查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀。
[0063]本實(shí)施例的視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀及解析音視頻幀所需的信息。其中,解析音視頻幀所需的信息包括:該音視頻幀所在的視頻文件的播放時(shí)長(zhǎng)、軌道數(shù)、音視頻格式等基本信息。當(dāng)然,若視頻文件本身的視頻格式需要有索引才可以解碼的話,解析音視頻幀所需的信息包括解碼該視頻文件的索引。
[0064]視頻數(shù)據(jù)地址發(fā)送單元63,用于在查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),生成緩存的視頻數(shù)據(jù)所在的地址,并將所述生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
[0065]其中,緩存的視頻數(shù)據(jù)所在的地址是由代理服務(wù)器根據(jù)其緩存的視頻數(shù)據(jù)所在主機(jī)名、所在的緩存檔案及唯一指向該視頻數(shù)據(jù)的名稱等信息生成。進(jìn)一步地,所述裝置還包括:
[0066]視頻數(shù)據(jù)緩存單元,用于在沒(méi)有查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),創(chuàng)建緩存檔案,以便緩存從視頻網(wǎng)站獲取的與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),再將緩存的視頻數(shù)據(jù)所在的地址轉(zhuǎn)發(fā)至播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
[0067]在該在線視頻播放裝置沒(méi)有緩存有播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),該在線視頻播放裝置從視頻網(wǎng)站獲取對(duì)應(yīng)的視頻數(shù)據(jù),并將獲取的視頻數(shù)據(jù)緩存在新創(chuàng)建的緩存檔案中,以使播放器能通過(guò)訪問(wèn)該在線視頻播放裝置就能獲取對(duì)應(yīng)的視頻數(shù)據(jù)。
[0068]本實(shí)施例中,由于緩存了視頻文件播放中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),因此播放器無(wú)需等待視頻網(wǎng)站響應(yīng)播放請(qǐng)求就能重新加載、跳轉(zhuǎn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),縮短播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間。并且,由于只緩存了中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),沒(méi)有緩存整個(gè)視頻文件的視頻數(shù)據(jù),因此不會(huì)占用過(guò)多的存儲(chǔ)空間,提高存儲(chǔ)空間的使用效率。
[0069]作為本發(fā)明一優(yōu)選實(shí)施例,所述在線視頻播放裝置包括:播放請(qǐng)求轉(zhuǎn)發(fā)單元、預(yù)設(shè)長(zhǎng)度視頻數(shù)據(jù)獲取單元、視頻文件散列值計(jì)算單元。其中:
[0070]播放請(qǐng)求轉(zhuǎn)發(fā)單元用于將所述播放請(qǐng)求轉(zhuǎn)發(fā)至視頻網(wǎng)站,并接收所述視頻網(wǎng)站返回的與所述播放請(qǐng)求對(duì)應(yīng)的視頻文件所在的統(tǒng)一資源定位符URL地址。
[0071]預(yù)設(shè)長(zhǎng)度視頻數(shù)據(jù)獲取單元用于發(fā)送獲取預(yù)設(shè)長(zhǎng)度數(shù)據(jù)請(qǐng)求給所述視頻網(wǎng)站,以獲取所述URL地址指向的視頻文件的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)。
[0072]視頻文件散列值計(jì)算單元用于計(jì)算獲取的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)的散列值,計(jì)算得到的散列值作為所述預(yù)設(shè)長(zhǎng)度數(shù)據(jù)所在的視頻文件的散列值,所述視頻文件的散列值用于唯一標(biāo)識(shí)所述視頻文件。
[0073]作為本發(fā)明另一優(yōu)選實(shí)施例,所述緩存數(shù)據(jù)判斷單元62包括:
[0074]散列值查找模塊,用于逐個(gè)查找創(chuàng)建的緩存檔案中的散列值。
[0075]散列值比較模塊,用于判斷查找的散列值與新計(jì)算的散列值是否相等;若相等,判定創(chuàng)建的緩存檔案中緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);若不相等,則判定創(chuàng)建的緩存檔案中沒(méi)有緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)。
[0076]本實(shí)施例中,通過(guò)獲取視頻文件的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)計(jì)算該視頻文件的散列值,由于散列值不同時(shí),用于計(jì)算該散列值的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)也不同,因此通過(guò)判斷散列值是否相同能夠判斷兩個(gè)視頻文件是否相同。并且,由于兩個(gè)不同視頻文件的散列值相同的可能性幾乎為0,因此,通過(guò)散列值判斷不同視頻提高了視頻文件判斷的準(zhǔn)確性。
[0077]在本發(fā)明實(shí)施例中,由于緩存了中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),因此播放器無(wú)需等待視頻網(wǎng)站響應(yīng)播放請(qǐng)求就能重新加載、跳轉(zhuǎn)到中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),縮短播放器跳轉(zhuǎn)定位到相應(yīng)視頻數(shù)據(jù)的時(shí)間。并且,由于只緩存了中斷點(diǎn)對(duì)應(yīng)的視頻數(shù)據(jù),沒(méi)有緩存整個(gè)視頻文件的視頻數(shù)據(jù),因此不會(huì)占用過(guò)多的存儲(chǔ)空間,提高存儲(chǔ)空間的使用效率。
[0078]本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以在存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如R0M/RAM、磁盤、光盤等。
[0079]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種在線視頻播放方法,其特征在于,所述方法包括下述步驟: 接收播放器發(fā)送的播放請(qǐng)求; 查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀; 在查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),生成緩存的視頻數(shù)據(jù)所在的地址,并將所述生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
2.如權(quán)利要求1所述的方法,其特征在于,在沒(méi)有查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),創(chuàng)建緩存檔案,以便緩存從視頻網(wǎng)站獲取的與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),再將緩存的視頻數(shù)據(jù)所在的地址轉(zhuǎn)發(fā)至播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
3.如權(quán)利要求2所述的方法,其特征在于,在緩存從視頻網(wǎng)站獲取的與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)的步驟之后,包括下述步驟: 判斷獲取的視頻數(shù)據(jù)中的音視頻幀中哪一個(gè)幀是視頻I幀; 緩存檔案依據(jù)判斷結(jié)果,以數(shù)據(jù)分片的形式緩存獲取的音視頻幀; 每一個(gè)數(shù)據(jù)分片以一個(gè)視頻I幀開(kāi)始,以所述視頻I幀的下一個(gè)視頻I幀的前一幀結(jié)束。
4.如權(quán)利要求3所述的方法,其特征在于,緩存檔案緩存一個(gè)數(shù)據(jù)分片的時(shí)間設(shè)定為大于播放器播放所述數(shù)據(jù)分片的時(shí)間。
5.如權(quán)利要求1所述的方法,其特征在于,在所述接收播放器發(fā)送的播放請(qǐng)求的步驟之后,進(jìn)一步包括步驟: 將所述播放請(qǐng)求轉(zhuǎn)發(fā)至視頻網(wǎng)站,并接收所述視頻網(wǎng)站返回的與所述播放請(qǐng)求對(duì)應(yīng)的視頻文件所在的統(tǒng)一資源定位符URL地址; 發(fā)送獲取預(yù)設(shè)長(zhǎng)度數(shù)據(jù)請(qǐng)求給所述視頻網(wǎng)站,以獲取所述URL地址指向的視頻文件的預(yù)設(shè)長(zhǎng)度數(shù)據(jù); 計(jì)算獲取的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)的散列值,計(jì)算得到的散列值作為所述預(yù)設(shè)長(zhǎng)度數(shù)據(jù)所在的視頻文件的散列值,所述視頻文件的散列值用于唯一標(biāo)識(shí)所述視頻文件。
6.如權(quán)利要求5所述的方法,其特征在于,所述查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)的步驟具體包括: 逐個(gè)查找創(chuàng)建的緩存檔案中的散列值; 判斷查找的散列值與新計(jì)算的散列值是否相等;若相等,判定創(chuàng)建的緩存檔案中緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);若不相等,則判定創(chuàng)建的緩存檔案中沒(méi)有緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)。
7.—種在線視頻播放裝置,其特征在于,所述裝置包括: 播放請(qǐng)求接收單元,用于接收播放器發(fā)送的播放請(qǐng)求; 緩存數(shù)據(jù)判斷單元,用于查找創(chuàng)建的緩存檔案中是否緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);所述視頻數(shù)據(jù)包括視頻文件播放中斷時(shí)的中斷點(diǎn)對(duì)應(yīng)的音視頻幀; 視頻數(shù)據(jù)地址發(fā)送單元,用于在查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),生成緩存的視頻數(shù)據(jù)所在的地址,并將所述生成的緩存的視頻數(shù)據(jù)所在的地址發(fā)送給播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
8.如權(quán)利要求7所述的裝置,其特征在于,所述裝置包括: 視頻數(shù)據(jù)緩存單元,用于在沒(méi)有查找到與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)時(shí),創(chuàng)建緩存檔案,以便緩存從視頻網(wǎng)站獲取的與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù),再將緩存的視頻數(shù)據(jù)所在的地址轉(zhuǎn)發(fā)至播放器,以使所述播放器訪問(wèn)所述緩存的視頻數(shù)據(jù)所在的地址。
9.如權(quán)利要求7所述的裝置,其特征在于,所述裝置包括: 播放請(qǐng)求轉(zhuǎn)發(fā)單元,用于將所述播放請(qǐng)求轉(zhuǎn)發(fā)至視頻網(wǎng)站,并接收所述視頻網(wǎng)站返回的與所述播放請(qǐng)求對(duì)應(yīng)的視頻文件所在的統(tǒng)一資源定位符URL地址; 預(yù)設(shè)長(zhǎng)度視頻數(shù)據(jù)獲取單元,用于發(fā)送獲取預(yù)設(shè)長(zhǎng)度數(shù)據(jù)請(qǐng)求給所述視頻網(wǎng)站,以獲取所述URL地址指向的視頻文件的預(yù)設(shè)長(zhǎng)度數(shù)據(jù); 視頻文件散列值計(jì)算單元,用于計(jì)算獲取的預(yù)設(shè)長(zhǎng)度數(shù)據(jù)的散列值,計(jì)算得到的散列值作為所述預(yù)設(shè)長(zhǎng)度數(shù)據(jù)所在的視頻文件的散列值,所述視頻文件的散列值用于唯一標(biāo)識(shí)所述視頻文件。
10.如權(quán)利要求9所述的裝置,其特征在于,所述緩存數(shù)據(jù)判斷單元包括: 散列值查找模塊,用于逐個(gè)查找創(chuàng)建的緩存檔案中的散列值; 散列值比較模塊,用于判斷查找的散列值與新計(jì)算的散列值是否相等;若相等,判定創(chuàng)建的緩存檔案中緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù);若不相等,則判定創(chuàng)建的緩存檔案中沒(méi)有緩存有與所述播放請(qǐng)求對(duì)應(yīng)的視頻數(shù)據(jù)。
【文檔編號(hào)】H04N21/858GK103945259SQ201410129185
【公開(kāi)日】2014年7月23日 申請(qǐng)日期:2014年3月31日 優(yōu)先權(quán)日:2014年3月31日
【發(fā)明者】洪瑜, 徐雋, 蘇娟, 康輝 申請(qǐng)人:Tcl集團(tuán)股份有限公司