視頻文件的緩存方法和系統的制作方法
【專利摘要】本發明實施例提供一種視頻文件的緩存方法和系統,通過獲取視頻文件信息,至少包括元數據,生成視頻文件相應的輔助轉碼數據,所述輔助轉碼數據至少包括將所述視頻文件轉碼成TS流文件時所需的索引文件,并將獲取的視頻文件信息和相應的輔助轉碼數據進行緩存。通過將獲取的視頻文件信息和相應的輔助轉碼數據進行緩存,一方面,當用戶請求訪問視頻文件時,會先去內存中查找,如果有直接在內存中進行讀取,比以往從磁盤讀寫文件相比,解析速度更快;另一方面,由于預先將輔助轉碼數據緩存到內存中,使用時不用再轉換,雖然消耗掉了一部分存儲空間,但卻加快了轉碼時間,雖然以空間換時間,但是有效提升了用戶使用體驗。
【專利說明】
視頻文件的緩存方法和系統
技術領域
[0001]本發明實施例涉及網絡技術領域,尤其涉及一種視頻文件的緩存方法和系統。
【背景技術】
[0002]隨著互聯網技術的發展,通過互聯網獲得的豐富的綜合性的網絡視頻資源已變得十分普遍。對于提供視頻資源的視頻網站來講,不僅要存儲大量的視頻資源,而且每天要同時接受數量巨大的視頻訪問請求。因此,如何高效的存儲視頻資源以便為用戶更好的提供視頻服務是十分重要的。目前很多視頻網站的在線視頻文件采用MP4文件格式。由于Flash插件可以播放MP4視頻文件,瀏覽器只要支持Flash就可以播放高清的MP4視頻,所以MP4視頻成為了目前主流的視頻格式。同視頻碼率情況下,MP4文件清晰度比較高,壓縮質量很好。標準的MP4文件一般包括索引區以及數據內容區兩部分。
[0003]鑒于對MP4視頻文件數據需求一般比較大,視頻提供網站一般會對其緩存。目前一般作法是對整個視頻文件同等對待,所以緩存效果不十分理想,當用戶請求視頻文件時,都基于文件系統進行操作,首先打開文件頭,把文件的一部分讀到磁盤由服務器進行解析并將解析結果,如視頻文件的MD5,視頻段的開始位置和結束位置返回用戶。由于解析操作在磁盤上完成,解析速度較慢,對用戶使用體驗不友好。此外,由于用戶客戶端很多,根據用戶使用請求,一般會對MP4文件進行相應的轉碼,即將MP4文件轉換成fl V,ts等格式視頻文件,轉碼時非常消耗CHJ資源,一般CPU消耗都在99%以上,造成轉碼耗時較長,用戶等待時間較長。
【發明內容】
[0004]針對上述現有技術存在的例如緩存效果不理想、使用體驗不友好、資源消耗等問題,本發明實施例提供一種視頻文件的緩存方法和系統。
[0005]本發明實施例一方面提供一種視頻文件的緩存方法,包括:
[0006]獲取待緩存視頻文件的視頻文件信息,所述視頻文件信息至少包括元數據;
[0007]生成與所述待緩存視頻文件相應的輔助轉碼數據,所述輔助轉碼數據至少包括將所述待緩存視頻文件轉碼成TS流文件所需的索引文件;
[0008]根據所述視頻文件信息和所述輔助轉碼數據生成視頻緩存文件;
[0009]將所述視頻緩存文件寫入內存。
[0010]本發明實施例另一方面提供一種視頻文件的緩存系統,包括:
[0011 ]視頻文件信息獲取單元,用于獲取待緩存視頻文件的視頻文件信息,所述視頻文件信息至少包括元數據;
[0012]輔助轉碼數據生成單元,用于生成與所述待緩存視頻文件相應的輔助轉碼數據,所述輔助轉碼數據至少包括將所述待緩存視頻文件轉碼成TS流文件所需的索引文件;
[0013]視頻緩存文件生成單元,用于根據所述視頻文件信息和所述輔助轉碼數據生成視頻緩存文件;
[0014]寫入單元,用于將所述視頻緩存文件寫入內存;
[0015]本發明實施例提供的一種視頻文件的緩存方法及系統,通過將視頻文件信息、視頻輔助轉碼用的數據存儲在內存中,一方面,當用戶請求訪問視頻文件時,會先去內存中查找,如果有直接在內存中進行讀取,比以往從磁盤讀寫文件相比,解析速度更快;另一方面,由于預先將輔助轉碼數據緩存到內存中,使用時不用再轉換,雖然消耗掉了一部分存儲空間,但卻加快了轉碼時間,雖然以空間換時間,但是有效提升了用戶使用體驗。
【附圖說明】
[0016]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0017]圖1為本發明視頻文件的緩存方法實施例流程圖;
[0018]圖2為本發明視頻文件的緩存系統實施例結構示意圖;
【具體實施方式】
[0019]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0020]如圖1所示,在本發明的一個實施例中,提供的視頻文件的緩存方法包括:
[0021 ] SlOl,獲取待緩存視頻文件的視頻文件信息,所述視頻文件信息至少包括元數據;
[0022]傳統對視頻文件一般都會分段處理,這樣會使得文件數量很多,很難管理,由于某種原因容易造成部分數據丟失,所以本實施例中所指的視頻文件是指整個完整的視頻文件,不進行分段處理。
[0023]S102,生成與待緩存視頻文件相應的輔助轉碼數據,所述輔助轉碼數據至少包括將所述視頻文件轉碼成TS流文件時所需的索引文件;
[0024]在本實施例中,視頻服務器只存儲mp4文件格式的視頻文件,這樣大大降低了存儲,有利于其加載和傳輸,尤其對P2P十分有利。由于視頻服務器只存儲MP4格式的視頻文件,鑒于客戶端的多樣性,使用時根據用戶的請求要進行實時轉碼操作,即將mp4文件轉換標準的flv、ts等視頻文件格式,其它請求會根據用戶特征做一些改變通過適配器適配,這就需要一些輔助轉碼數據支持。如通常使用時會事先將mp4文件進行一些預處理,生成輔助轉碼數據。這里,輔助轉碼數據包括將mp4文件轉換為ts流文件、flv等格式視頻文件時生成的輔助文件,如mp4文件轉碼成ts流文件時所需的索引文件m3u8,其大小一般幾十K,不超過1MB,這樣使用時不用再轉換,雖然消耗掉了一部分存儲空間,但卻加快了轉碼時間,雖然以空間換時間,但是有效提升了用戶使用體驗。
[0025]S103,根據視頻文件信息和輔助轉碼數據生成視頻緩存文件;
[0026]S104,將視頻緩存文件寫入內存。
[0027]進一步地,步驟SlOl中所述視頻文件信息包括元數據和部分幀數據。
[0028]通過將視頻文件的部分幀數據到進行緩存,用戶請求訪問視頻文件時,就可以有效的進行預覽。
[0029]其中,所述視頻文件的部分幀數據為視頻文件首位置的至少一個關鍵幀,一般為視頻文件播放前三分鐘的視頻內容即所所謂的片頭。正常情況下,獲取的視頻文件的部分幀數據都不會太大。這樣,用戶就可以方便的觀看所請求視頻文件的片頭。
[0030]—般情況下,會對獲取待緩存視頻文件的視頻文件信息和待緩存視頻文件相應的輔助轉碼數據進行優先級設置,其中視頻文件信息中的元數據以及所述輔助轉碼數據優先級最高,其次為視頻文件的部分幀數據。
[0031]進一步地,步驟SlOl中在獲取待緩存視頻文件的視頻文件信息前,根據內存的當前容量和待緩存視頻文件的部分幀數據的大小情況,確定所獲取的所述視頻文件信息包含元數據或包含元數據和部分幀數據。
[0032]在使用時,內存的容量為一系統配置的固定大小,如HietadataMem=1G,依據內存的容量大小及使用情況,優先寫入優先級最高的視頻文件元數據以及相應的輔助轉碼數據,如果內存足夠的話,再寫入視頻文件的部分幀數據。此外,視頻文件元數據寫入的位置在視頻文件相應的輔助轉碼數據之前。通過判斷機制,可以有效的利用現有內存,使內存使用達到一個合適的利用率。
[0033]更進一步地,步驟S104中在將所述視頻緩存文件寫入內存后,統計所述內存中的各個視頻緩存文件的訪問記錄,根據所述訪問記錄確定是否將所述各個視頻緩存文件中的其中一個或多個視頻緩存文件刪除。
[0034]通常可使用本領域技術人員已知的緩存淘汰策略或算法,如LRU算法進行緩存內容的更新。這樣只能通過定期緩存更新才能使有限的內存資源進行合理的分配和使用,有效保證緩存資源的合理利用。
[0035]需要注意的是,所述緩存的視頻文件一般會根據視頻文件使用的熱點情況進行排序,按順序寫入內存。放在內存中的數據一般具有兩個特點,一是經常被訪問,二是需要經常做一些應用處理。通過視頻文件元數據和部分幀數據以及輔助轉碼用的數據存儲在內存中,當用戶請求訪問視頻文件時,會先去內存中查找,如果有直接在內存中進行讀取,比以往從磁盤讀寫文件相比,解析速度更快。
[0036]據統計,經過事先將轉碼需要的文件適當緩存后,CPU消耗不超過30%,大部分情況下都在10%上下,相比不進行緩存時實時轉碼CPU消耗一般在90%以上。
[0037]上述與圖1所示的實施例有關的方法,參照圖2,可以根據本發明的裝置予以實施。本發明實施例提供了一種視頻文件的緩存系統,所述系統包括:
[0038]視頻文件信息獲取單元,用于獲取待緩存視頻文件的視頻文件信息,所述視頻文件信息至少包括元數據;
[0039]輔助轉碼數據生成單元,用于生成與所述待緩存視頻文件相應的輔助轉碼數據,所述輔助轉碼數據至少包括將所述待緩存視頻文件轉碼成TS流文件所需的索引文件;
[0040]視頻緩存文件生成單元,用于根據所述視頻文件信息和所述輔助轉碼數據生成視頻緩存文件;
[0041 ]寫入單元,用于將所述視頻緩存文件寫入內存;
[0042]其中,在實施例中,所述視頻文件信息包括元數據和部分幀數據。
[0043]進一步地,所述部分幀數據為所述待緩存視頻文件首位置的至少一個關鍵幀。
[0044]在本發明的實施例中,所述系統還包括視頻文件信息判斷單元,用于在所述視頻文件信息獲取單元獲取待緩存視頻文件的視頻文件信息前,根據內存的當前容量和所述待緩存視頻文件的部分幀數據的預設閾值的大小,確定所獲取的所述視頻文件信息包含元數據或包含元數據和部分幀數據。
[0045]在本發明的實施例中,所述系統還包括緩存文件更新單元,用于在所述寫入單元將所述視頻緩存文件寫入內存后,統計所述內存中的各個視頻緩存文件的訪問記錄,根據所述訪問記錄確定是否將所述各個視頻緩存文件中的其中一個或多個視頻緩存文件刪除。
[0046]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
[0047]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
[0048]最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【主權項】
1.一種視頻文件的緩存方法,包括以下步驟: 獲取待緩存視頻文件的視頻文件信息,所述視頻文件信息至少包括元數據; 生成與所述待緩存視頻文件相應的輔助轉碼數據,所述輔助轉碼數據至少包括將所述待緩存視頻文件轉碼成TS流文件所需的索引文件; 根據所述視頻文件信息和所述輔助轉碼數據生成視頻緩存文件; 將所述視頻緩存文件寫入內存。2.根據權利要求1所述的方法,其特征在于,所述視頻文件信息包括元數據和部分幀數據。3.根據權利要求2所述的方法,其特征在于,所述部分幀數據為所述待緩存視頻文件首位置的至少一個關鍵幀。4.根據權利要求2或3所述的方法,其特征在于,在獲取待緩存視頻文件的視頻文件信息前,根據內存的當前容量和所述待緩存視頻文件的部分幀數據的預設閾值的大小,確定所獲取的所述視頻文件信息包含元數據或包含元數據和部分幀數據。5.根據權利要求1所述的方法,其特征在于,在將所述視頻緩存文件寫入內存后,統計所述內存中的各個視頻緩存文件的訪問記錄,根據所述訪問記錄確定是否將所述各個視頻緩存文件中的其中一個或多個視頻緩存文件刪除。6.一種視頻文件的緩存系統,其特征在于,包括: 視頻文件信息獲取單元,用于獲取待緩存視頻文件的視頻文件信息,所述視頻文件信息至少包括元數據; 輔助轉碼數據生成單元,用于生成與所述待緩存視頻文件相應的輔助轉碼數據,所述輔助轉碼數據至少包括將所述待緩存視頻文件轉碼成TS流文件所需的索引文件; 視頻緩存文件生成單元,用于根據所述視頻文件信息和所述輔助轉碼數據生成視頻緩存文件; 寫入單元,用于將所述視頻緩存文件寫入內存。7.根據權利要求6所述的系統,其特征在于,所述視頻文件信息包括元數據和部分幀數據。8.根據權利要求7所述的系統,其特征在于,所述部分幀數據為所述待緩存視頻文件首位置的至少一個關鍵幀。9.根據權利要求7或8所述的系統,其特征在于,所述系統還包括視頻文件信息判斷單元,用于在所述視頻文件信息獲取單元獲取待緩存視頻文件的視頻文件信息前,根據內存的當前容量和所述待緩存視頻文件的部分幀數據的預設閾值的大小,確定所獲取的所述視頻文件信息包含元數據或包含元數據和部分幀數據。10.根據權利要求6所述的系統,其特征在于,所述系統還包括緩存文件更新單元,用于在所述寫入單元將所述視頻緩存文件寫入內存后,統計所述內存中的各個視頻緩存文件的訪問記錄,根據所述訪問記錄確定是否將所述各個視頻緩存文件中的其中一個或多個視頻緩存文件刪除。
【文檔編號】H04N21/4402GK105898530SQ201510888100
【公開日】2016年8月24日
【申請日】2015年12月7日
【發明人】李洪福
【申請人】樂視云計算有限公司