專利名稱:一種網(wǎng)絡視頻加載的加速方法、設備及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡視頻點播技術,尤其涉及一種網(wǎng)絡視頻加載的加速方法、設備及系統(tǒng)。
背景技術:
隨著互聯(lián)網(wǎng)技術的發(fā)展,人們對網(wǎng)頁響應速度的要求越來越高,尤其是進行網(wǎng)絡 視頻點播時,希望視頻加載的速度越快越好?,F(xiàn)有技術中一般采用Web緩存加速的方法來 實現(xiàn)視頻加載的加速。Web緩存加速是指在內(nèi)網(wǎng)完成第一次到某網(wǎng)頁的請求之后,將響應的 數(shù)據(jù)緩存到緩存服務器中,當內(nèi)網(wǎng)其他用戶訪問相同的外網(wǎng)資源時,直接由緩存服務器發(fā) 送數(shù)據(jù)給請求者,因此無需再次從互聯(lián)網(wǎng)上請求及下載該資源。現(xiàn)有技術中,Web緩存加速 一般是通過計算URL(Universal Resource Locator,統(tǒng)一資源定位符,也稱為網(wǎng)頁地址)的 散列值或其他能標示URL數(shù)據(jù)內(nèi)容唯一性的值(例如URL的MD5值、URL的SHA-I值、URL 字符串本身等)來查找緩存對象的,只要URL的散列值或其他能標示數(shù)據(jù)內(nèi)容唯一性的值 匹配,就能直接從緩存服務器中加載該視頻。但是,為了加強網(wǎng)絡安全,對于web視頻應用,一些主流視頻網(wǎng)站對視頻的URL做 了防盜鏈的處理。防盜鏈是一種采用服務器端編程,通過URL過濾技術實現(xiàn)的防止盜鏈的 軟件。使用防盜鏈后,訪問同一視頻的URL是不同的,導致無法通過URL查找到視頻緩存對 象,無法快速加載網(wǎng)絡視頻。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題在于,針對現(xiàn)有技術無法繞過防盜鏈實現(xiàn)視頻加載的加 速這一缺陷,提供一種能繞過防盜鏈實現(xiàn)網(wǎng)絡視頻加載的加速的方法、設備及系統(tǒng)。本發(fā)明解決其技術問題所采用的技術方案是提供一種網(wǎng)絡視頻加載的加速方法,包括以下步驟Si、從客戶端接收視頻請求信息,并將所述視頻請求信息發(fā)送給視頻服務器;S2、從所述視頻服務器接收所請求視頻的視頻數(shù)據(jù)流;S3、接收到預定大小的視頻片段后,根據(jù)所述視頻片段計算所請求視頻的標識碼, 所述標識碼能唯一標識所述視頻;S4、根據(jù)所述標識碼查找已緩存的視頻,若找到與所述標識碼匹配的視頻數(shù)據(jù),停 止從視頻服務器接收視頻數(shù)據(jù)流,并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端;若沒有找到與所 述標識碼匹配的視頻數(shù)據(jù),繼續(xù)從所述視頻服務器接收視頻數(shù)據(jù)流,緩存接收的視頻數(shù)據(jù), 并將所述視頻數(shù)據(jù)傳送給所述客戶端。本發(fā)明一種網(wǎng)絡視頻加載的加速方法中,步驟Sl中進一步包括S11、從客戶端接收請求信息;S12、根據(jù)所述請求信息使用的傳輸協(xié)議解析所述請求信息,判斷所述請求信息是 否為視頻請求,若是,執(zhí)行步驟S13 ;
S13、將所述請求信息發(fā)送給視頻服務器。本發(fā)明一種網(wǎng)絡視頻加載的加速方法中,所述標識碼包括MD5值、SHA-I值或視頻數(shù)據(jù)。本發(fā)明一種網(wǎng)絡視頻加載的加速方法中,步驟S3中還包括接收所述視頻片段后, 根據(jù)所述視頻片段判斷所述視頻的格式。本發(fā)明一種網(wǎng)絡視頻加載的加速方法中,步驟S3中計算所請求視頻的標識碼具 體包括所述視頻為FLV格式,從接收的表示參數(shù)信息的標簽中提取前M個字節(jié),從接收的 表示視頻數(shù)據(jù)的標簽中提取前N個字節(jié),根據(jù)這些字節(jié)計算所述標識碼。本發(fā)明一種網(wǎng)絡視頻加載的加速方法中,步驟S3中計算所請求視頻的標識碼具 體包括所述視頻為MP4格式,從接收的表示參數(shù)信息的盒子中提取前X個字節(jié),從接收的 表示視頻數(shù)據(jù)的標簽中提取前Y個字節(jié),根據(jù)這些字節(jié)計算所述標識碼。本發(fā)明還提供了一種網(wǎng)絡視頻加載的加速設備,包括通信模塊,用于與客戶端和視頻服務器間進行視頻請求信息和視頻數(shù)據(jù)的通信;存儲模塊,用于緩存視頻數(shù)據(jù);標識碼計算模塊,用于從所述通信模塊接收來自視頻服務器的視頻的片段,根據(jù) 所述視頻片段計算所請求視頻的標識碼,所述標識碼能唯一標識所述視頻;匹配模塊,用于根據(jù)所述標識碼查找所述存儲模塊中緩存的視頻,并用于在找到 與所述標識碼匹配的視頻數(shù)據(jù)時發(fā)送匹配信息給所述通信模塊,所述匹配信息用于使所述 通信模塊停止從視頻服務器接收視頻數(shù)據(jù)流并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端,所述匹 配模塊還用于在沒有找到與所述標識碼匹配的視頻數(shù)據(jù)時發(fā)送無匹配信息,所述無匹配信 息用于使所述通信模塊繼續(xù)從所述視頻服務器接收視頻數(shù)據(jù)流、將接收的視頻數(shù)據(jù)緩存到 所述存儲模塊中以及將所述視頻數(shù)據(jù)傳送給所述客戶端。本發(fā)明一種網(wǎng)絡視頻加載的加速設備中,還包括請求信息判斷模塊,用于根據(jù)傳 輸協(xié)議解析所述通信模塊接收的請求信息,并判斷所述請求信息是否為視頻請求,若是,發(fā) 送反饋信息給所述通信模塊,使所述通信模塊將所述請求信息發(fā)送給所述視頻服務器。本發(fā)明一種網(wǎng)絡視頻加載的加速設備中,所述標識碼包括MD5值、SHA-I值或視頻 數(shù)據(jù)。本發(fā)明一種網(wǎng)絡視頻加載的加速設備中,包括客戶端、視頻服務器以及上述網(wǎng)絡 視頻加載的加速設備,所述客戶端、加速設備和視頻服務器依次通信相連。本發(fā)明一種網(wǎng)絡視頻加載的加速方法、設備及系統(tǒng)的有益效果為通過對視頻數(shù) 據(jù)的若干個字節(jié)進行相關計算,以計算結(jié)果作為標識碼來標識該視頻,再通過對視頻的標 識碼進行匹配判斷,可以查找到已經(jīng)緩存了的視頻,從而繞過視頻防盜鏈,實現(xiàn)視頻請求的 直接回復,而不用再到視頻服務器上獲取。本發(fā)明節(jié)省了網(wǎng)絡帶寬,提高了視頻下載速度。
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中圖1是根據(jù)本發(fā)明一個實施例的網(wǎng)絡視頻加載的加速系統(tǒng)的結(jié)構(gòu)示意圖;圖2是根據(jù)本發(fā)明一個實施例的網(wǎng)絡視頻加載的加速設備的結(jié)構(gòu)示意圖;圖3是根據(jù)本發(fā)明另一個實施例的網(wǎng)絡視頻加載的加速設備的結(jié)構(gòu)示意5
圖4是根據(jù)本發(fā)明一個實施例的網(wǎng)絡視頻加載的加速方法的流程圖;圖5是根據(jù)本發(fā)明另一個實施例的網(wǎng)絡視頻加載的加速方法的流程圖;圖6是根據(jù)本發(fā)明一個實施例的FLV格式視頻的FLV文件頭的示意圖;圖7是根據(jù)本發(fā)明一個實施例的MP4格式視頻的MP4文件頭的示意圖;圖8是根據(jù)本發(fā)明一個實施例的FLV格式視頻的標簽的示意圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。圖1是根據(jù)本發(fā)明一個實施例的網(wǎng)絡視頻加載的加速系統(tǒng)的結(jié)構(gòu)示意圖。在本實 施例中,網(wǎng)絡視頻加載的加速系統(tǒng)包括客戶端100、加速設備200和視頻服務器300??蛻?端100與加速設備200通過有線和/或無線鏈路通信相連,加速設備200和視頻服務器300 間通過通信網(wǎng)絡(例如,因特網(wǎng))進行視頻的通信??蛻舳?00可以是具有視頻播放功能的各種終端電子設備,例如臺式電腦、筆記 本、上網(wǎng)本等。用戶可以通過客戶端100輸入各種請求信息,包括視頻請求信息,以便加載 所請求的視頻進行播放。加速設備200可以是具有緩存功能的集成電路、包含軟件代碼的硬件和/或裝置。 加速設備200可以集成于客戶端100中,也可以置于客戶端100外。一個加速設備200可 以與一個客戶端100相連,也可以與一個內(nèi)網(wǎng)中的多個客戶端100相連。加速設備200將 在下文參考圖2和3進行詳細描述。視頻服務器300可以是存儲有大量視頻的存儲設備,包括優(yōu)酷網(wǎng)視頻服務器、土 豆網(wǎng)視頻服務器、PPS視頻服務器等。視頻服務器可以通過各種通信網(wǎng)絡與加速設備200相 連,例如因特網(wǎng)、局域網(wǎng)、城域網(wǎng)、廣域網(wǎng)等,并根據(jù)各種通信協(xié)議(例如HTTP協(xié)議等)與加 速設備200進行視頻的通信。在工作過程中,用戶通過客戶端100輸入視頻請求,加速設備200從客戶端100 接收并解析該視頻請求,將該視頻請求發(fā)送給相應的視頻服務器300,并從視頻視頻服務器 300接收所請求視頻的視頻數(shù)據(jù)流,接收到預定大小的視頻片段后,根據(jù)該視頻片段計算能 唯一標識該視頻片段的所請求視頻的標識碼,然后根據(jù)該標識碼查找已緩存的視頻,若找 到與該標識碼匹配的視頻數(shù)據(jù),則停止從視頻服務器300接收視頻數(shù)據(jù)流,并將查找到的 視頻數(shù)據(jù)發(fā)送給客戶端100,若沒有找到與該標識碼匹配的視頻數(shù)據(jù),則繼續(xù)從視頻服務器 300接收視頻數(shù)據(jù)流,緩存接收的視頻數(shù)據(jù),并將該視頻數(shù)據(jù)傳送給客戶端100。雖然圖1只示出了一個客戶端100、一個加速設備200以及一個視頻服務器300 依次通信相連的直線拓撲結(jié)構(gòu),但這僅僅是為了簡化說明的目的,而不用于限制本發(fā)明。在 本發(fā)明的實施例中,可以包括各種其它拓撲結(jié)構(gòu),例如在線、旁路、單臂、WCCPdeb Cache Communication Protocol,網(wǎng)頁緩存通信協(xié)議)鏡像、策略路由分發(fā)、負載分發(fā)等,一個加速 設備可以和一個或多個客戶端通過有線和/或無線鏈路連接,也可以通過通信網(wǎng)絡與一個 或多個視頻服務器連接。一個視頻服務器也可以通過通信網(wǎng)絡同時與一個或多個加速設備 連接。
本發(fā)明提供的網(wǎng)絡視頻加載的加速系統(tǒng)通過使用具有緩存功能并能根據(jù)視頻內(nèi) 容特征識別視頻的加速設備200,能夠繞過防盜鏈在已緩存的視頻文件中查找相同的視頻 文件,并在找到后將緩存的視頻數(shù)據(jù)傳送給客戶端100,從而實現(xiàn)視頻加載的加速。這樣不 僅能加快客戶端加載視頻的速度,還能減輕視頻服務器的負擔,減小帶寬使用率。圖2是根據(jù)本發(fā)明一個實施例的網(wǎng)絡視頻加載的加速設備200A的結(jié)構(gòu)示意圖。在 本實施例中,網(wǎng)絡視頻加載的加速設備200A包括通信模塊210、存儲模塊220、標識碼計算 模塊230和匹配模塊對0。通信模塊210,用于從客戶端100接收視頻請求信息并向客戶端100發(fā)送所請求 的視頻,還用于向視頻服務器300發(fā)送接收自客戶端100的視頻請求信息并從視頻服務器 300接收所請求視頻的視頻數(shù)據(jù)流。存儲模塊220,用于緩存通過通信模塊210從視頻服務器300接收的視頻數(shù)據(jù)。這 些視頻數(shù)據(jù)根據(jù)計算得出的標識碼進行標記,以便進行視頻匹配。存儲模塊220可以是例 如但不限于硬盤、磁盤、光盤、閃存等存儲設備。標識碼計算模塊230,用于從通信模塊210接收來自視頻服務器300的視頻的片 段,該視頻片段的長度可以預先設置,例如2000字節(jié)、10000字節(jié)等。標識碼計算模塊230 可以根據(jù)該視頻片段計算所請求視頻的標識碼,該標識碼能唯一標識該視頻片段。例如,標 識碼計算模塊230可以從該視頻片段中取表示視頻參數(shù)信息(例如文件大小、播放時間、每 個幀的位置等)的若干個字節(jié)(例如1000字節(jié))和表示視頻實際內(nèi)容的若干個字節(jié)(例 如500字節(jié))作為該視頻的標識碼,也可以根據(jù)這些字節(jié)計算其MD5值、SHA-I值等能唯一 標識該視頻片段的值和/或字符串作為該視頻的標識碼。注意,每次選取表示視頻參數(shù)信 息的若干個字節(jié)時起始位置和選取長度必須相同(例如,取該內(nèi)容的前1000字節(jié)),每次選 取表示視頻實際內(nèi)容的若干個字節(jié)時起始位置和選取長度也必須相同(例如,去該內(nèi)容的 前500字節(jié))。應當理解,上述前1000字節(jié)、前500字節(jié)僅僅是為了解釋說明,而不用于限 制本發(fā)明,在本發(fā)明的實施例中,可以包括任意合適的選取方法,例如從表示視頻實際內(nèi)容 的第100個字節(jié)開始取1200個字節(jié)等。而且本發(fā)明并不限于選取表示視頻參數(shù)信息的數(shù) 據(jù)和表示視頻實際內(nèi)容的數(shù)據(jù)進行計算,還可以選擇其他任意類型的數(shù)據(jù)和/或其組合進 行計算,只要計算結(jié)果能唯一標識該視頻。匹配模塊MO,用于根據(jù)標識碼計算模塊230計算得到的標識碼在存儲模塊220中 查找已緩存的視頻,并用于在找到與該標識碼匹配的視頻數(shù)據(jù)時發(fā)送匹配信息給通信模塊 210,該匹配信息可以用于使通信模塊210停止從視頻服務器接收視頻數(shù)據(jù)流并將查找到 的視頻數(shù)據(jù)發(fā)送給客戶端,匹配模塊240還用于在沒有找到與該標識碼匹配的視頻數(shù)據(jù)時 發(fā)送無匹配信息給通信模塊210,無匹配信息可以用于使通信模塊210繼續(xù)從視頻服務器 接收視頻數(shù)據(jù)流,并使通信模塊將接收的視頻數(shù)據(jù)緩存到存儲模塊220中以及將該視頻數(shù) 據(jù)傳送給客戶端。圖3是根據(jù)本發(fā)明另一個實施例的網(wǎng)絡視頻加載的加速設備200B的結(jié)構(gòu)示意圖。 在本實施例中,網(wǎng)絡視頻加載的加速設備200B可以包括通信模塊210、存儲模塊220、標識 碼計算模塊230、匹配模塊240和請求信息判斷模塊250。通信模塊210,用于從客戶端接100收請求信息并將該請求信息發(fā)送給請求信息 判斷模塊250以判斷該請求信息是否為視頻請求信息。通信模塊210還可以從請求信息判斷模塊250接收反饋信息并將該請求信息發(fā)送給視頻服務器300。另外,通信模塊210還可 以從視頻服務器300接收所請求視頻的視頻數(shù)據(jù)流,并向客戶端100發(fā)送所請求的視頻。請求信息判斷模塊250,用于根據(jù)請求信息使用的相應通信協(xié)議(例如HTTP協(xié) 議)解析該請求信息,并判斷該請求信息是否為視頻請求。若是,請求信息判斷模塊250可 以發(fā)送反饋信息給通信模塊210,通知通信模塊210將該請求信息發(fā)送給視頻服務器300 ; 若否,請求信息判斷模塊250可以發(fā)送表示該請求為非視頻請求的信息給通信模塊210,通 知通信模塊210將該請求信息返回給客戶端100,或不進行任何處理。存儲模塊220,用于緩存通過通信模塊210從視頻服務器300接收的視頻數(shù)據(jù)。這 些視頻數(shù)據(jù)根據(jù)計算得出的標識碼進行標記,以便進行視頻匹配。存儲模塊220可以是例 如但不限于硬盤、磁盤、光盤、閃存等存儲設備。標識碼計算模塊230,用于從通信模塊210接收來自視頻服務器300的視頻的片 段,該視頻片段的長度可以預先設置,例如2000字節(jié)、10000字節(jié)等。標識碼計算模塊230 還可以用于根據(jù)該視頻片段判斷該視頻的格式。視頻的格式可以包括FLV格式、MP4格式、 MPEG格式、WMV格式、AVI格式、RMVB格式等,目前主流的視頻網(wǎng)站的視頻都是FLV和MP4 這兩種格式。圖6是根據(jù)本發(fā)明一個實施例的FLV格式視頻的FLV文件頭的示意圖。圖7 是根據(jù)本發(fā)明一個實施例的MP4格式視頻的MP4文件頭的示意圖。從圖6和7可以看出, 視頻的格式一般包含在視頻文件頭中,例如FLV文件頭中包含“FLV”這一字段來表示該文 件的格式,MP4文件頭中包含“ftypisom”這一字段來表示該文件的格式。標識碼計算模塊 230可以根據(jù)接收自視頻服務器的視頻的片段(即其文件頭)判斷該視頻的格式。下面將 針對這兩種格式的視頻文件對標識碼計算模塊230進行詳細描述。對于FLV格式的視頻文件,按照協(xié)議標準,由FLV文件頭(FLV Header)和若干個 標簽(tag)組成。標簽又可以分成三類audio、video和script,分別代表音頻流、視頻流 和腳本流。FLV視頻數(shù)據(jù)中的第一個標簽(也就是Metadata tag)包含了該視頻文件的所 有參數(shù)信息(如文件大小、播放時間、每個關鍵幀的時間和偏移量等),對于不同的FLV視 頻,Metadata tag的內(nèi)容都不相同。但對于拖動視頻的情況,即拖動視頻進度條到未緩沖的 位置時,服務器響應的視頻內(nèi)容的Metadata tag是一樣的。為避免沖突,標識碼計算模塊 230可以從Metadata tag中取前若干個字節(jié)(以1000字節(jié)為例)內(nèi)容并跳到最近的video tag取前若干個字節(jié)內(nèi)容(以500字節(jié)為例,注意,此時取的是視頻播放數(shù)據(jù))來計算該視 頻的標識碼,以保證計算出來的標識碼的唯一性。標識碼可以是所選取的這些字節(jié)內(nèi)容本 身,也可以是其它能唯一標識該視頻片段的值,例如MD5值、SHA-I值等散列值。對于MP4格式的視頻文件,與FLV不同,是把所有數(shù)據(jù)封裝在若干個盒子(box) 中,每個視頻文件一般由“ftyp”、“m00V”、“mdat”這三種類型的盒子組成。在每個盒子的 頭部指明了該盒子的大小和類型,這樣就可以找到每個盒子的位置。在“moov”里面記錄 了該視頻文件的所有參數(shù)信息(如文件創(chuàng)建時間、播放時間、每個幀位置等)。“mdat”里則 保存的是實際的視頻數(shù)據(jù)。同樣,可以取“moov”前若干個字節(jié)的內(nèi)容并跳到“mdat”取前 若干個字節(jié)的內(nèi)容來計算該視頻的標識碼,以保證計算出來的標識碼的唯一性。標識碼可 以是所選取的這些字節(jié)內(nèi)容本身,也可以是其它能唯一標識該視頻片段的值,例如MD5值、 SHA-I值等散列值。匹配模塊MO,用于根據(jù)標識碼計算模塊230計算得到的標識碼在存儲模塊220中查找已緩存的視頻,并用于在找到標識碼相同的視頻數(shù)據(jù)時發(fā)送匹配信息給通信模塊210, 該匹配信息可以用于使通信模塊210停止從視頻服務器300接收視頻數(shù)據(jù)流并將查找到的 視頻數(shù)據(jù)發(fā)送給客戶端100,匹配模塊MO還用于在沒有找到相同標識碼的視頻數(shù)據(jù)時(即 首次訪問該視頻時)發(fā)送無匹配信息給通信模塊210,無匹配信息可以用于使通信模塊210 繼續(xù)從視頻服務器300接收視頻數(shù)據(jù)流,并使通信模塊210將接收的視頻數(shù)據(jù)插入到存儲 模塊220中以及將該視頻數(shù)據(jù)傳送給客戶端100。匹配模塊240還可以用于生成緩存視頻 列表,在緩存視頻列表中記載有所有已緩存視頻的標識碼及該視頻在存儲模塊210中的位 置。緩存視頻列表中還可以包括已緩存視頻的熱點信息(即該視頻被請求的次數(shù)),當存儲 模塊210的存儲空間不夠時,可以根據(jù)熱點信息丟棄較冷門的視頻,存儲熱點視頻。在工作過程中,通信模塊210從客戶端100接收請求信息并將該請求信息發(fā)送給 請求信息判斷模塊250。請求信息判斷模塊250根據(jù)請求信息使用的相應通信協(xié)議(例如 HTTP協(xié)議)解析該請求信息,并判斷該請求信息是否為視頻請求。若是,請求信息判斷模 塊250可以發(fā)送反饋信息給通信模塊210,通知通信模塊210將該請求信息發(fā)送給視頻服務 器300 ;若否,請求信息判斷模塊250可以發(fā)送表示該請求為非視頻請求的信息給通信模塊 210,通知通信模塊210將該請求信息返回給客戶端100,或不進行任何處理。通信模塊210將視頻請求發(fā)送給視頻服務器300后,可以從視頻服務器300接收 所請求視頻的視頻數(shù)據(jù)流,并將接收的一定長度的視頻片段傳送給標識碼計算模塊230。標 識碼計算模塊230可以根據(jù)該視頻片段判斷該視頻的格式。視頻的格式可以包括FLV格式、 MP4格式、MPEG格式、WMV格式、AVI格式、RMVB格式等,目前主流的視頻網(wǎng)站的視頻都是FLV 和MP4這兩種格式。標識碼計算模塊230可以根據(jù)該視頻片段針對不同視頻格式進行不同 處理,以計算所請求視頻的標識碼。例如,標識碼計算模塊230可以從該視頻片段中取表示 視頻參數(shù)信息(例如文件大小、播放時間、每個幀的位置等)的若干個字節(jié)(例如1000字 節(jié))和表示視頻實際內(nèi)容的若干個字節(jié)(例如500字節(jié))作為該視頻的標識碼,也可以根 據(jù)這些字節(jié)計算其MD5值、SHA-I值等能唯一標識該視頻片段的值和/或字符串作為該視 頻的標識碼。注意,每次選取表示視頻參數(shù)信息的若干個字節(jié)時起始位置和選取長度必須 相同(例如,取該內(nèi)容的前1000字節(jié)),每次選取表示視頻實際內(nèi)容的若干個字節(jié)時起始位 置和選取長度也必須相同(例如,去該內(nèi)容的前500字節(jié))。應當理解,上述前1000字節(jié)、 前500字節(jié)僅僅是為了解釋說明,而不用于限制本發(fā)明,在本發(fā)明的實施例中,可以包括任 意合適的選取方法,例如從表示視頻實際內(nèi)容的第100個字節(jié)開始取1200個字節(jié)等。而且 本發(fā)明并不限于選取表示視頻參數(shù)信息的數(shù)據(jù)和表示視頻實際內(nèi)容的數(shù)據(jù)進行計算,還可 以選擇其他任意類型的數(shù)據(jù)和/或其組合進行計算,只要計算結(jié)果能唯一標識該視頻。然后,匹配模塊240可以根據(jù)標識碼計算模塊230計算得到的標識碼在存儲模塊 220中查找已緩存的視頻。若找到與該標識碼匹配的視頻數(shù)據(jù)(即標識碼相同),則發(fā)送匹 配信息給通信模塊210,通信模塊210接收到匹配信息后,停止從視頻服務器300接收視頻 數(shù)據(jù)流并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端100。若沒有找到與該標識碼匹配的視頻數(shù)據(jù) (即無標識碼相同的視頻),則發(fā)送無匹配信息給通信模塊210,通信模塊210接收到無匹 配信息后,繼續(xù)從視頻服務器300接收視頻數(shù)據(jù)流,將接收的視頻數(shù)據(jù)緩存到存儲模塊220 中,并將該視頻數(shù)據(jù)傳送給客戶端100。本發(fā)明提供的網(wǎng)絡視頻加載的加速設備通過根據(jù)視頻內(nèi)容特征計算能唯一標識視頻文件的標識碼,繞過防盜鏈在已緩存的視頻文件中查找相同的視頻文件,并在找到后 將緩存的視頻數(shù)據(jù)傳送給客戶端,從而實現(xiàn)視頻加載的加速。這樣不僅能加快客戶端加載 視頻的速度,還能減輕視頻服務器的負擔,減小帶寬使用率。圖4是根據(jù)本發(fā)明一個實施例的網(wǎng)絡視頻加載的加速方法的流程圖。在本實施例 中,網(wǎng)絡視頻加載的加速方法開始于步驟Si。在步驟Sl中,從客戶端接收視頻請求信息,并 將視頻請求信息發(fā)送給視頻服務器。在步驟S2中,從視頻服務器接收所請求視頻的視頻數(shù)據(jù)流。在步驟S3中,接收到預定大小的視頻片段后,根據(jù)視頻片段計算能唯一標識所請 求視頻的標識碼。例如,從該視頻片段中取表示視頻參數(shù)信息(例如文件大小、播放時間、 每個幀的位置等)的若干個字節(jié)(例如1000字節(jié))和表示視頻實際內(nèi)容的若干個字節(jié)(例 如500字節(jié))作為該視頻的標識碼,也可以根據(jù)這些字節(jié)計算其MD5值、SHA-I值等能唯一 標識該視頻片段的值和/或字符串作為該視頻的標識碼。注意,每次選取表示視頻參數(shù)信 息的若干個字節(jié)時起始位置和選取長度必須相同(例如,取該內(nèi)容的前1000字節(jié)),每次選 取表示視頻實際內(nèi)容的若干個字節(jié)時起始位置和選取長度也必須相同(例如,去該內(nèi)容的 前500字節(jié))。應當理解,上述前1000字節(jié)、前500字節(jié)僅僅是為了解釋說明,而不用于限 制本發(fā)明,在本發(fā)明的實施例中,可以包括任意合適的選取方法,例如從表示視頻實際內(nèi)容 的第100個字節(jié)開始取1200個字節(jié)等。而且本發(fā)明并不限于選取表示視頻參數(shù)信息的數(shù) 據(jù)和表示視頻實際內(nèi)容的數(shù)據(jù)進行計算,還可以選擇其他任意類型的數(shù)據(jù)和/或其組合進 行計算,只要計算結(jié)果能唯一標識該視頻。在步驟S4中,根據(jù)計算出的標識碼查找已緩存的視頻。若找到與該標識碼匹配的 視頻數(shù)據(jù),則停止從視頻服務器接收視頻數(shù)據(jù)流,并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端。若 沒有找到與該標識碼匹配的視頻數(shù)據(jù),則繼續(xù)從視頻服務器接收視頻數(shù)據(jù)流,緩存接收的 視頻數(shù)據(jù),并將接收的視頻數(shù)據(jù)傳送給客戶端。圖5是根據(jù)本發(fā)明另一個實施例的網(wǎng)絡視頻加載的加速方法的流程圖。在本實施 例中,網(wǎng)絡視頻加載的加速方法開始于步驟501。在步驟501中,接收表示請求信息的URL。在步驟502中,根據(jù)相應傳輸協(xié)議(例如HTTP協(xié)議)解析接收的URL,并判斷該 URL是否為視頻請求。以優(yōu)酷為例,當客戶端訪問優(yōu)酷視頻時,服務器會將視頻請求重定向 到一個真實的視頻地址,如http//120.33. 32. 141/youku/156B6DF58D3377874355436A/03000801004C2B35D 2E28C00EA0734E32EE79B-9246-2D36-3C89-F751B69ADA4D. flv 由于防盜鏈的作用,每次訪 問該視頻時URL是變化的,所以無法通過URL來查找已緩存的視頻。當根據(jù)URL確定該請 求信息為視頻請求時,繼續(xù)執(zhí)行步驟503。在步驟503中,將視頻請求(即該URL)轉(zhuǎn)發(fā)給視頻服務器。在步驟504中,從視頻服務器接收所請求視頻的視頻數(shù)據(jù)流。在步驟505中,接收一定長度的視頻片段后,根據(jù)該視頻片段判斷該視頻的格式。 視頻片段的長度可以預先設置,只要該視頻片段的內(nèi)容能夠唯一標識該視頻文件。視頻的 格式可以包括FLV格式、MP4格式、MPEG格式、WMV格式、AVI格式、RMVB格式等,目前主流 的視頻網(wǎng)站的視頻都是FLV和MP4這兩種格式。如圖6和7所示,F(xiàn)LV格式在文件開始有 標志“FLV”,而MP4格式則有標志“ftypisom”??梢愿鶕?jù)接收自視頻服務器的視頻的片段(即其文件頭)判斷該視頻的格式。若該視頻為FLV格式,執(zhí)行步驟506。在步驟506中,取第一個標簽(Metadata tag) 的前M個字節(jié)(例如但不限于前1000個字節(jié)),根據(jù)標簽長度找到video tag的位置,再從 video tag中取前N個字節(jié)(例如但不限于前500個字節(jié)),做內(nèi)容疊加計算標識碼。以保 證計算出來的標識碼的唯一性。標識碼可以是所選取的這些字節(jié)內(nèi)容本身,也可以是其它 能唯一標識該視頻片段的值,例如MD5值、SHA-I值等散列值。圖8是根據(jù)本發(fā)明一個實施 例的FLV格式視頻的標簽的示意圖。如圖8所示,高亮字體是第一個標簽的頭部信息,12表 示類型(即script,腳本流,包含該視頻的所有參數(shù)信息),001681表示該標簽的長度,這樣 就可以根據(jù)長度找到下一個標簽的位置。若該視頻為MP4格式,執(zhí)行步驟507。在步驟507中,取“moov”盒子的前X個字 節(jié)(例如但不限于前1000個字節(jié)),根據(jù)該盒子頭部表示該盒子大小的信息跳到“mdat”盒 子,取“mdat”盒子的前Y個字節(jié)(例如但不限于前500個字節(jié)),做內(nèi)容疊加計算標識碼。雖然本文只針對FLV和MP4這兩種格式的視頻進行了詳細描述,但這僅僅為了舉 例說明的目的,而不用于限制本發(fā)明。在本發(fā)明的實施例中,可以包括各種類型的視頻格 式,其計算標識碼的方法與上述針對FLV和MP4格式的描述相似。計算得出視頻的標識碼后,執(zhí)行步驟508。在步驟508中,可以根據(jù)計算得到的標 識碼查找已緩存的視頻,判斷是否有與該標識碼匹配的(例如相同的)視頻。例如,可以 生成緩存視頻列表,在緩存視頻列表中記載有所有已緩存視頻的標識碼及該視頻的存儲位 置。緩存視頻列表中還可以包括已緩存視頻的熱點信息(即該視頻被請求的次數(shù)),當加速 設備的存儲空間不夠時,可以根據(jù)熱點信息丟棄較冷門的視頻,存儲熱點視頻。若找到標識碼相同的視頻數(shù)據(jù),執(zhí)行步驟509。在步驟509中,加速設備停止從視 頻服務器接收視頻數(shù)據(jù)流并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端。若沒有找到相同標識碼的視頻數(shù)據(jù)(即首次訪問該視頻),則執(zhí)行步驟510。在步 驟510中,加速設備繼續(xù)從視頻服務器接收視頻數(shù)據(jù)流,并將接收的視頻數(shù)據(jù)緩存起來,還 要將該視頻數(shù)據(jù)傳送給客戶端。本發(fā)明提供的網(wǎng)絡視頻加載的加速方法通過采用散列算法或其他類似算法(要 保證對數(shù)據(jù)片段計算出來的值的唯一性,能標識出該數(shù)據(jù)片段),對視頻數(shù)據(jù)的若干個字節(jié) (例如1000字節(jié))進行計算,以計算結(jié)果來標識該視頻;這樣通過對視頻的若干字節(jié)的相 同性判斷,查找到已經(jīng)緩存了的視頻,繞過視頻防盜鏈,實現(xiàn)視頻請求的直接回復,而不用 再到視頻服務器上獲取了。本發(fā)明節(jié)省了網(wǎng)絡帶寬,提高了視頻下載速度。本發(fā)明提供的一種網(wǎng)絡視頻加載的加速方法、設備及系統(tǒng)具有實用性和通用性。 本發(fā)明能夠?qū)崿F(xiàn)在線視頻的緩存命中,達到視頻加速的效果,節(jié)省用戶帶寬。而且,本發(fā)明 可以應用于國內(nèi)視頻服務或國外的視頻服務中,能解決視頻緩存的關鍵疑難問題——防盜 鏈。本發(fā)明實現(xiàn)視頻加速是完全透明的,只是讓已緩存的視頻,在再次訪問時能夠命中,不 修改任何數(shù)據(jù),所以,不會傷害任何第三方的利益。雖然本發(fā)明是通過具體實施例進行說明的,本領域技術人員應當明白,在不脫離 本發(fā)明范圍的情況下,還可以對本發(fā)明進行各種變換及等同替代。另外,針對特定情形或材 料,可以對本發(fā)明做各種修改,而不脫離本發(fā)明的范圍。因此,本發(fā)明不局限于所公開的具 體實施例,而應當包括落入本發(fā)明權利要求范圍內(nèi)的全部實施方式。
權利要求
1.一種網(wǎng)絡視頻加載的加速方法,其特征在于,包括以下步驟51、從客戶端接收視頻請求信息,并將所述視頻請求信息發(fā)送給視頻服務器;52、從所述視頻服務器接收所請求視頻的視頻數(shù)據(jù)流;53、接收到預定大小的視頻片段后,根據(jù)所述視頻片段計算所請求視頻的標識碼,所述 標識碼能唯一標識所述視頻;54、根據(jù)所述標識碼查找已緩存的視頻,若找到與所述標識碼匹配的視頻數(shù)據(jù),停止從 視頻服務器接收視頻數(shù)據(jù)流,并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端;若沒有找到與所述標 識碼匹配的視頻數(shù)據(jù),繼續(xù)從所述視頻服務器接收視頻數(shù)據(jù)流,緩存接收的視頻數(shù)據(jù),并將 所述視頻數(shù)據(jù)傳送給所述客戶端。
2.根據(jù)權利要求1所述的網(wǎng)絡視頻加載的加速方法,其特征在于,步驟Sl中進一步包括511、從客戶端接收請求信息;512、根據(jù)所述請求信息使用的傳輸協(xié)議解析所述請求信息,判斷所述請求信息是否為 視頻請求,若是,執(zhí)行步驟S13;513、將所述請求信息發(fā)送給視頻服務器。
3.根據(jù)權利要求1所述的網(wǎng)絡視頻加載的加速方法,其特征在于,所述標識碼包括MD5 值、SHA-I值或視頻數(shù)據(jù)。
4.根據(jù)權利要求1-3中任一項所述的網(wǎng)絡視頻加載的加速方法,其特征在于,步驟S3 中還包括接收所述視頻片段后,根據(jù)所述視頻片段判斷所述視頻的格式。
5.根據(jù)權利要求4所述的網(wǎng)絡視頻加載的加速方法,其特征在于,步驟S3中計算所請 求視頻的標識碼具體包括所述視頻為FLV格式,從接收的表示參數(shù)信息的標簽中提取前M 個字節(jié),從接收的表示視頻數(shù)據(jù)的標簽中提取前N個字節(jié),根據(jù)這些字節(jié)計算所述標識碼。
6.根據(jù)權利要求4所述的網(wǎng)絡視頻加載的加速方法,其特征在于,步驟S3中計算所請 求視頻的標識碼具體包括所述視頻為MP4格式,從接收的表示參數(shù)信息的盒子中提取前X 個字節(jié),從接收的表示視頻數(shù)據(jù)的標簽中提取前Y個字節(jié),根據(jù)這些字節(jié)計算所述標識碼。
7.—種網(wǎng)絡視頻加載的加速設備,其特征在于,包括通信模塊,用于與客戶端和視頻服務器間進行視頻請求信息和視頻數(shù)據(jù)的通信;存儲模塊,用于緩存視頻數(shù)據(jù);標識碼計算模塊,用于從所述通信模塊接收來自視頻服務器的視頻的片段,根據(jù)所述 視頻片段計算所請求視頻的標識碼,所述標識碼能唯一標識所述視頻;匹配模塊,用于根據(jù)所述標識碼查找所述存儲模塊中緩存的視頻,并用于在找到與所 述標識碼匹配的視頻數(shù)據(jù)時發(fā)送匹配信息給所述通信模塊,所述匹配信息用于使所述通信 模塊停止從視頻服務器接收視頻數(shù)據(jù)流并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端,所述匹配模 塊還用于在沒有找到與所述標識碼匹配的視頻數(shù)據(jù)時發(fā)送無匹配信息,所述無匹配信息用 于使所述通信模塊繼續(xù)從所述視頻服務器接收視頻數(shù)據(jù)流、將接收的視頻數(shù)據(jù)緩存到所述 存儲模塊中以及將所述視頻數(shù)據(jù)傳送給所述客戶端。
8.根據(jù)權利要求7所述的網(wǎng)絡視頻加載的加速設備,其特征在于,還包括請求信息判 斷模塊,用于根據(jù)傳輸協(xié)議解析所述通信模塊接收的請求信息,并判斷所述請求信息是否 為視頻請求,若是,發(fā)送反饋信息給所述通信模塊,使所述通信模塊將所述請求信息發(fā)送給所述視頻服務器。
9.根據(jù)權利要求7所述的網(wǎng)絡視頻加載的加速設備,其特征在于,所述標識碼包括 MD5值、SHA-I值或視頻數(shù)據(jù)。
10.一種網(wǎng)絡視頻加載的加速系統(tǒng),其特征在于,包括客戶端、視頻服務器以及如權利 要求7-9中任一項所述的網(wǎng)絡視頻加載的加速設備,所述客戶端、加速設備和視頻服務器 依次通信相連。
全文摘要
本發(fā)明公開了一種網(wǎng)絡視頻加載的加速方法、設備及系統(tǒng)。所述方法包括S1、從客戶端接收視頻請求信息,并將所述視頻請求信息發(fā)送給視頻服務器;S2、從所述視頻服務器接收所請求視頻的視頻數(shù)據(jù)流;S3、接收到預定大小的視頻片段后,根據(jù)所述視頻片段計算所請求視頻的標識碼,所述標識碼能唯一標識所述視頻;S4、根據(jù)所述標識碼查找已緩存的視頻,若找到與所述標識碼匹配的視頻數(shù)據(jù),停止從視頻服務器接收視頻數(shù)據(jù)流,并將查找到的視頻數(shù)據(jù)發(fā)送給客戶端;若沒有找到與所述標識碼匹配的視頻數(shù)據(jù),繼續(xù)從所述視頻服務器接收視頻數(shù)據(jù)流,緩存接收的視頻數(shù)據(jù),并將所述視頻數(shù)據(jù)傳送給所述客戶端。本發(fā)明節(jié)省了網(wǎng)絡帶寬,提高了視頻下載速度。
文檔編號H04N21/858GK102111685SQ20111004426
公開日2011年6月29日 申請日期2011年2月24日 優(yōu)先權日2011年2月24日
發(fā)明者李海柳, 陳釗毅 申請人:深信服網(wǎng)絡科技(深圳)有限公司