專利名稱:一種多媒體信息存儲和播放方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體技術(shù)領(lǐng)域,特別涉及一種多媒體信息存儲和播放方法及其 裝置。
背景技術(shù):
目前,對于實時圖像釆用流方式進行播放的過程中, 一般都需要進行圖像 的存儲,以便日后回放。但根據(jù)目前大多數(shù)本領(lǐng)域的做法,都是采用攝像設(shè)備,
將直播圖像轉(zhuǎn)換為MP4等文件格式供日后播放。但是對于目前日益增加的時移 業(yè)務(wù)需求,這種存儲轉(zhuǎn)存的方式由于完整MP4文件構(gòu)造需要很長時間而造成存 儲速度過慢,已經(jīng)完全不適合幾秒鐘后的節(jié)目點播需求。
現(xiàn)有技術(shù)中也提出了分段或分片存儲來提高定位播放位置效率的方法。但 分片存儲也存在小數(shù)據(jù)讀寫較多,同時難以避免對已經(jīng)寫入索引元的數(shù)據(jù)進行 改寫,造成性能、效率較差,以及轉(zhuǎn)化為標準文件較麻煩的缺點。小數(shù)據(jù)通常 是指元數(shù)據(jù),比如一些描述信息,或一兩個離散的數(shù)據(jù)包。由于文件系統(tǒng)通常 是以Block (塊)等結(jié)構(gòu)為單位,若訪問小數(shù)據(jù),實際消耗與訪問整個Block的 資源相當,另外離散的小數(shù)據(jù)難以命中緩存,因此小數(shù)據(jù)讀寫過多會影響性能。
可見目前還沒有一種存儲格式既滿足多々某體數(shù)據(jù)信息幾秒內(nèi)的實時高速存 取的需求,又同時解決如上提到的小數(shù)據(jù)存取問題、便于分割合并和兼容標準 格式的問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種實時多媒體圖像信息存儲方法,克 服現(xiàn)有技術(shù)中對于釆用流方式播放的多i某體文件存儲中格式復雜、句柄過多、 小數(shù)據(jù)存取和改寫過多造成的存取效率低下的問題,并且可以達到便于分割合 并和兼容標準格式的目的。
為了解決上述技術(shù)問題,本發(fā)明提供了一種多媒體信息存儲方法,包括以下步驟
A、 ^換照預設(shè)文件名建立或打開包括至少一個獨立分頁的多^ 某體文件,所述 多媒體文件包含所述多媒體文件的格式描述信息,所述格式描述信息包括會話 描述協(xié)議信息和分頁信息;
B、 根據(jù)所述格式描述信息將待存儲的多媒體信息數(shù)據(jù)存入所述多々某體文件 的各分頁,并將所述多媒體文件的每個分頁分為一個以上獨立的存取單元用于 裝載存入所述多媒體文件分頁的數(shù)據(jù)包。
進一步,所述存取單元又嵌套細分為n級子存取單元,n為大于或等于0的 整數(shù)。
進一步,所述步驟B包括
Bl、每個第n級子存取單元分別為存入其中的信息數(shù)據(jù)包建立第n級子存 取單元索引信息。
進一步,所述步驟B還包括
B2、每個子存取單元分別根據(jù)其下屬子存取單元的索引信息建立本級子存 取單元的索引信息;
B3、每個存取單元分別根據(jù)其下屬的第1級子存取單元的索引信息建立存 取單元索引信息。
進一步,所述步驟B3之后還包括
B4、每個分頁將所述多媒體文件分頁內(nèi)的存取單元索引信息合并生成分頁 索引信息。
進一步,步驟B之后還包括步驟
C、 將所述分頁索引信息合并生成所述多i某體文件的總索引信息。 其中,所述分頁信息包括
分頁依據(jù),是指頁的劃分所依據(jù)的準則,所述準則可以是根據(jù)存儲的多媒 體文件的時間,或者根據(jù)存儲的多媒體文件所占的空間或根據(jù)存儲的多媒體文 件的包數(shù)量,或者根據(jù)存儲的多媒體文件的標識符或根據(jù)鏈接到的其他文件及 地址位置,或者根據(jù)以上任意準則的結(jié)合;
7分頁度量,與.分頁依據(jù)相對應,用于度量分頁依據(jù),如果分頁準則是根據(jù)
存儲的多媒體文件所占的空間,則分頁度量是每頁的空間大小的單位;如果分 頁準則是根據(jù)存儲的多媒體文件的時間,則分頁度量是每頁的時間長度的單位; 如果分頁準則是根據(jù)存儲的多媒體文件的標識符,則分頁度量是每頁的標識符; 如果分頁準則是根據(jù)鏈接的其他文件及地址位置,則分頁度量表示鏈接在文件 里的位置或約定的文件名等信息。
其中,所述多媒體文件的整個文件或分頁或存取單元或子存取單元采用標 準媒體格式或自定義的媒體格式,且各個分頁及存取單元及子存取單元彼此采 用相同或不同的媒體格式。
本發(fā)明提供一種多媒體信息播放方法,包括以下步驟
D、 當多媒體文件被點播時,服務(wù)器讀取所述多媒體文件相應的會話描述協(xié) 議信息提供給客戶端;
E、 當客戶端和服務(wù)器間的鏈路建立成功開始播放時,通過總索引信息或通 過遍歷各分頁索引信息定位至指定時間點對應的數(shù)據(jù)包所在的分頁位置;
F、 定位到數(shù)據(jù)包讀取位置后,從該處數(shù)據(jù)包開始,按照客戶端設(shè)置的條件 進行數(shù)據(jù)包操作。
進一步,步驟E還包括
El、根據(jù)所述指定時間點,在當前分頁內(nèi)根據(jù)所述分頁索引信息或通過遍 歷存取單元索引信息查找所述指定時間點對應的數(shù)據(jù)包所在存取單元位置;
E2、根據(jù)指定時間點,在當前存取單元內(nèi)根據(jù)所述存取單元索引信息或通 過遍歷子存取單元索引信息查找所述指定時間點對應的數(shù)據(jù)包所在子存取單元 位置;
E3、直到定位至所述指定時間點對應的數(shù)據(jù)包所在的第n級子存取單元位置。
進一步,步驟E中所述指定時間點對應的數(shù)據(jù)包如果處于最后一個尚不 完整的分頁中時,則定位至所述不完整分頁中的存取單元或子存取單元后,在 當前存取單元或子存取單元內(nèi)查找數(shù)據(jù)包讀取位置;如果在當前存取單元或子存取單元查找不到所述指定時間點對應的數(shù)據(jù)包,則向前或者向后或通過查找 算法在存取單元或子存取單元中查找數(shù)據(jù)包讀取位置。 本發(fā)明提供一種多媒體信息存儲裝置,包括
文件建立模塊,用于按照預設(shè)文件名建立或打開一個多媒體文件,所述多 媒體文件包含所述多媒體文件的格式描述信息,所述格式描述信息包括會話描 述協(xié)議信息和分頁信息;
劃分模塊,與文件建立模塊連接,用于根據(jù)所述格式描述信息將所述多媒
體文件劃分為至少一個獨立分頁,并將每個分頁分為至少一個獨立的存取單元;
信息轉(zhuǎn)化模塊,與劃分模塊連接,用于將待存儲的多媒體信息數(shù)據(jù)存入所 述多i某體文件的劃分好的各分頁的存耳又單元中。 所述劃分單元中還包括
子存取單元劃分模塊,用于根據(jù)所述格式描述信息將每個所述存取單元嵌 套劃分為至少一個獨立的n級子存取單元,n為大于或等于0的整數(shù)。 所述裝置中還包括
存取單元或存耳又單元或分頁的索引信息。
本發(fā)明提供一種多媒體信息播放裝置,包括
指令接收模塊,用于接收客戶端設(shè)置的條件,所述條件中包含對多媒體文 件的具體^喿作動作和指定時間點;
定位模塊,用于根據(jù)所述客戶端設(shè)置的條件通過多媒體文件的索引信息定 位至指定時間點對應的數(shù)據(jù)包所在的分頁或存耳又單元或n級子存取單元位置,n 為大于或等于0的整數(shù);
操作模塊,與定位模塊連接,用于定位到數(shù)據(jù)包讀取位置后,從該處數(shù)據(jù) 包開始,按照客戶端設(shè)置的條件進行數(shù)據(jù)包操作。
本發(fā)明提供的多媒體信息存儲和播放方法及其裝置,適用于多媒體存儲領(lǐng) 域下需要進行回放的電視行業(yè)、監(jiān)控行業(yè),對于采用RTSP (Real Time Streaming Protocol,實時流協(xié)議)方式進行直播的各種場合,對于數(shù)據(jù)包的回放更具有實 際意義。與現(xiàn)有技術(shù)相比,不僅可以實現(xiàn)多媒體信息幾秒內(nèi)的實時高速存取,又解決了小數(shù)據(jù)存取和改寫過多造成的存取效率低下的問題,:何時還使數(shù)據(jù)便 于分割合并和兼容標準格式。
圖1是本發(fā)明提供的RSF存儲格式的整體結(jié)構(gòu)示意圖2是本發(fā)明實施例一提供的一種RSF文件存儲格式的結(jié)構(gòu)圖3是本發(fā)明實施例一提供的在一種RSF文件存儲格式中每個分頁的結(jié)構(gòu)
圖4是本發(fā)明實施例一提供的在一種RSF文件存儲格式中單個存取單元 (Clip)的結(jié)構(gòu)圖。
圖5是本發(fā)明實施例二提供的一種RSF文件存儲格式的結(jié)構(gòu)圖6是本發(fā)明實施例三提供的一種RSF文件存儲格式的結(jié)構(gòu)圖7是本發(fā)明實施例四提供的一種RSF文件存儲方法的流程圖8是本發(fā)明實施例五提供的一種RSF文件播放方法的流程圖。
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細描述。
本發(fā)明的核心思想是將文件分頁,每個分頁都是一個獨立的媒體結(jié)構(gòu)(該 媒體結(jié)構(gòu)可以是標準格式如MP4/TS/AMR/AAC,也可以是自定義私有格式)。 其中分頁可以嵌套包含一些存取單元和子存取單元(存取單元以及子存取單元 同樣是獨立的媒體結(jié)構(gòu),都可以稱為Clip),從而提高存儲和讀取的實時性。 所述媒體結(jié)構(gòu)是指一個獨立的、切割出來就能播放的單元,比如一個小MP4文 件, 一段TS文件,或一個能流化點播的自定義格式文件片斷。其中各個分頁及 存取單元(包括子存取單元)可以采用統(tǒng)一的媒體格式,也可以采用彼此不同 的媒體格式。
本發(fā)明通過構(gòu)造一種自定義才各式文件,Real Stream File (英文縮寫RSF, 實時流文件)以實現(xiàn)實時多媒體信息的快速存耳又和定位播放。本發(fā)明提供的RSF文件的存儲格式如倒:l"所示由多個分頁組成,每個單獨分頁都是一個獨立、完
整的媒體結(jié)構(gòu),單獨提取出來仍能提供點播/快ii/快退等功能,并且便于切割、 合并和提取。
所述RSF文件中包含以下信息
1、 多媒體文件的會話描述協(xié)議信息(以下簡稱SDP信息),所述SDP信息 包括多媒體文件的軌道信息、采樣信息、播放速率,當客戶端向服務(wù)器發(fā)送點 播按照本發(fā)明自定義格式存儲的多媒體文件時向點播客戶端返回該多媒體文件 的SDP信息,或者通過Announce方式(是RTSP協(xié)議中的可選方式,如果是客 戶端發(fā)給服務(wù)器的,表示將請求的^某體對象描述發(fā)給服務(wù)器,如杲是服務(wù)器發(fā) 給客戶端表示實時更新鏈接描述信息)或者Describe方式(是RTSP協(xié)議中的推 薦方式, 一般客戶端發(fā)Describe請求給服務(wù)器,服務(wù)器將描述信息、認證信息 等返回客戶端)獲??;
2、 創(chuàng)建該RSF文件時的時間記錄等信息,時間記錄不是必須的,但是若沒 有時間記錄則該RSF文件在插^丈時可能會無法對應到實際時間;
3、 分頁信息包括分頁依據(jù)和分頁度量,分頁依據(jù)是指分頁的劃分所依據(jù)的 準則,該準則可以是根據(jù)存儲的多媒體文件的時間或根據(jù)存儲的多媒體文件所 占的空間或根據(jù)存儲的多媒體文件的包數(shù)量或根據(jù)存儲的多媒體文件的標識符 等,甚至可以根據(jù)鏈接到的其他文件及地址位置,同時還可以根據(jù)上述準則的 任意結(jié)合,例如某些頁按空間,另外某些頁按時間劃分;分頁度量與分頁依據(jù) 相對應,是用于度量分頁依據(jù)的,例如,如果分頁準則是根據(jù)存儲的多:i 某體文 件所占的空間,則分頁度量是每頁的字節(jié)數(shù)等表示空間大小的單位;如果分頁 準則是根據(jù)存儲的多々某體文件的時間,則分頁度量表示毫秒數(shù)等表示時間大小 的單位;如果分頁準則是根據(jù)存儲的多媒體文件的標識符,則分頁度量是每頁 的標識符;如果分頁準則是根據(jù)鏈接的其他文件及地址位置,則分頁度量表示 鏈接在文件里的位置或約定的文件名等信息;所述多媒體文件的整個文件或分 頁或存取單元或子存取單元采用標準媒體格式例如MP4/TS/AMR/AAC或自定 義的媒體格式,且各個分頁及存取單元及子存取單元彼此采用相同或不同的媒 體格式; 4、'其他可選信息(如版本信息、兼容格式信息和碼流信息等)。
如上這些信息以下簡稱為RSF的格式描述信息,如圖l所示,可以作為媒 體頭存放在RSF文件的首頁中,成為整個RSF文件的格式描述分頁;整個媒體 信息被分割成n個媒體分頁,即媒體分頁一至媒體分頁N;媒體索引部分為根 據(jù)各分頁的索引而合并生成的總索引分頁附加于整個文件的末尾,總索引分頁 為可附加的最后一個分頁, 一旦添加表示整個RSF文件已經(jīng)構(gòu)造完整。
如圖2所示為本發(fā)明實施例一提供的一種RSF文件的格式實例,其中所有 分頁和存取單元都兼容ISO標準MP4格式。在RSF首頁的RSF格式描述信息 分頁中包括文件類型描述信息(同ISO中的ftypebox)和格式描述原子(自定義 擴展box)作為該RSF文件的媒體頭。格式描述原子中包括該請求存儲的媒體文 件的SDP信息和分頁依據(jù)等信息。所述分頁依據(jù)是指頁的劃分可以依據(jù)多種準 則,如按照存儲的媒體數(shù)據(jù)的時間,存儲的媒體數(shù)據(jù)的大小等。例如按照媒體 數(shù)據(jù)的大小即空間分頁,為了配合文件系統(tǒng)的優(yōu)化讀取,可取4M字節(jié)的固定長 度為一個分頁的大小,4M字節(jié)即分頁度量。圖中CDdata為存取單元的媒體數(shù) 據(jù)區(qū);Coov為存取單元的索引區(qū);Poov為分頁索引區(qū);2s表示2秒;Size表示 大?。籉ree表示空閑。
其中每個分頁的具體格式如圖3所示。每個分頁在完整時都是一個ISO中的 box (box是ISO和MP4標準文件格式內(nèi)的概念,所有的MP4內(nèi)部結(jié)構(gòu)都是由 box組成的,每個box包括box大小,box類型和其他信息),box內(nèi)容是一個 完整的MP4文件,包含mdat (MP4文件的媒體數(shù)據(jù)區(qū),也是一個box)和自己 的索引moov原子(是MP4文件的總索引區(qū),也是一個box)。而每個分頁又 由一個個獨立的存取單元(Clip)組成,存儲單元還可以再嵌套細分為更小的子 存^^單元(也稱為Clip )。如圖3所示的分頁中,Clipl包括以下幾個部分Size=4M 表示該分頁的大小為4M,單位是字節(jié);Type= "page"表示該媒體結(jié)構(gòu)的類型 是分頁;AbsTime表示每個Page (分頁)相對于整個RSF文件的時間差距;接 著是存取單元Clip2到ClipN; Free表示空閑;Poov表示分頁索引區(qū);PoovSize 表示分頁索引信息的大小;Bytes表示每個存取單元所占字節(jié)數(shù)??梢娫摲猪摷?容ISO標準的MP4格式。
12類-似的,Clip的具體結(jié)構(gòu)如圖4所示,'實際上Clip也是一個ISO的box,-box內(nèi)容仍然是一個完整的小MP4文件。其中,Size表示該Clip的大小,類型 是存取單元,Timeoffset是時間偏移,表示該Clip相對于Page或上級Clip的時 間差距;Coov表示存取單元索引區(qū)??梢娫揅lip也兼容ISO標準的MP4格式。
進一步, 一個存取單元還可以由更多小的子存取單元組成,且最小的子存 取單元必須是完整的媒體結(jié)構(gòu),否則就無法被讀取識別,因此最小的子存取單 元必須包含自己的索引。根據(jù)本發(fā)明的實施例將存取單元嵌套細分為n級子存 取單元,n為子存取單元的級數(shù),則第n級子存取單元為第n-1級子存取單元的 下屬子存耳又單元,n為大于等于0的整數(shù),當n等于0時表示存取單元下不再細 分子存取單元;當n等于1時表示存取單元下只分為1級子存取單元,那么第1 級子存取單元為存取單元的下屬子存取單元;當n等于2時表示存取單元下嵌 套分為2級子存取單元,那么第2級子存取單元為第1級子存取單元的下屬子 存耳又單元,第1級子存耳又單元為存取單元的下屬子存取單元;當n大于2時以
存取單元索引信息或存取單元索引信息,且第n級子存取單元必須包含自己的 索引信息。例如我們i殳定一個分頁為100M字節(jié),然后一級Clip定位4M, 二級 Clip定位2秒,則2秒數(shù)據(jù)構(gòu)成一個二級Clip后就開始寫入(二級Clip要帶自 己的索引),當達到4M時就生成一級Clip的索引,當所有二級Clip大小到100M 時就寫入分頁索引,這樣設(shè)置便于加快定位速度。
如圖5所示為本發(fā)明實施例二提供的一種RSF文件的格式實例。其中媒體 頭為格式描述信息分頁,每個分頁都為一個標準的TS文件結(jié)合自定義的TS包 索引,從TS格式分頁一及TS格式索引一至TS格式分頁N及TS格式索引N, 在存儲結(jié)束時可以附加一個總的TS包索引即總體文件TS索引在最后。同樣的, 每個分頁也可以采用如AAC (Advanced Audio Coding,高級音頻編碼技術(shù))、 MP3、 ARM等這些標準4某體格式或其他自定義的媒體格式,而同樣可以在文件 生成的最后附加標準的或自定義的索引。
如圖6所示為本發(fā)明實施例三提供的一種RSF文件的另一格式實例。其中 媒體頭為格式描述信息分頁(帶MP4格式描述box),接下來是分頁一,包括MP4格式分頁一和分頁"MP4格式索引,其分頁依據(jù)是根據(jù)時間; 度量是3分 鐘;分頁二,包括自定義私有格式分頁二和分頁二自定義格式索引,其分頁依 據(jù)是按空間,度量是5M字節(jié);然后是各分頁及其索引;分頁p,包括TS格式 分頁p和分頁p的TS格式索引,其分頁依據(jù)是根據(jù)包數(shù)量,度量是32768個; 分頁q中還包括存取單元分頁q的Clip — (自定義媒體存取結(jié)構(gòu))及分頁q 的Clip —的索引;分頁q的Clip 二 (標準MP4存取結(jié)構(gòu))及分頁q的Clip 二 的MP4格式索引;分頁q的Clip都是按數(shù)據(jù)包的類型劃分的,當滿足Clip的首 包是關(guān)鍵幀首包,尾包是幀尾包;或Clip存儲時的時間超過4秒或空間大于128K 字節(jié),則Clip結(jié)束;待最后一分頁完整時需增加的分頁索引(自定義格式);待 用戶需要停止存儲,歸檔時可增加的文件全局索引即總索引(MP4格式的Moov 原子格式,使整個文件兼容標準MP4格式),添加完該Moov后,由于前面預留 了格式描述box和dat,整個文件成為一個兼容標準MP4才各式的文件。該文件構(gòu) 造完成后能夠被流媒體工具或通用播放器播放。
圖7是本發(fā)明實施例四提供的一種RSF文件存儲方法的流程圖,當采用流 化(如RTSP, RTP)的方式進行節(jié)目播放過程中, 一旦啟動開始存儲的命令,則 按照上述實施例RSF文件格式進行存儲,包括以下步驟
S110,按照預設(shè)文件名,例如用戶指定的文件名,建立或打開一個包含若 干個獨立分頁的RSF文件,并在該文件的首頁中存儲該RSF文件的格式描述信 息,所述^^式描述信息包括SDP信息和格式、時間、版本等信息;
其中,"建立"是指之前沒有該文件,按照用戶指定的文件名建立一個新的 RSF文件,"打開,,是指之前已經(jīng)有一個以用戶指定的文件名命名的RSF文件存 在,并且是正確的,則可以打開它接著繼續(xù)存儲;
所述格式信息即為分頁信息,具體包括每個分頁的依據(jù)(按時長、按空間 大小、按媒體信息包數(shù)量等),每個分頁的格式(MP4、 3GP、 TS、 AAC、自定 義等),每個分頁內(nèi)部是否再分Clip等更小的存取單元,Clip的數(shù)量等;
其中,所述SDP信息中包含多媒體文件的軌道信息、采樣信息、在用戶請 求播放存儲的文件時返回該文件的描述信息等,該文件的SDP信息可以是在請 求點播該i某體節(jié)目時由服務(wù)器向點播客戶端發(fā)送,也可以通過Announce方式或者Describe.方式獲取。由于該SDP信息在媒體節(jié),制作過程中,保持不變,'因 此只需要啟動時存儲一份即可;
所述的時間信息包括創(chuàng)建該RSF文件的時間點等;所述的版本信息是指該 RSF文件的本版號等信息;
在一個優(yōu)選的實施例中,如果分頁依據(jù)是按照空間大小,則新創(chuàng)建的RSF 文件在還沒開始存儲任何媒體文件的信息數(shù)據(jù)之前, 一般應占一個或整數(shù)個分 頁的大小,若不是正好整數(shù)個分頁大小,例如首頁是格式描述信息分頁,它所 占的空間不一定是整數(shù)個分頁,則可通過填充數(shù)據(jù)(媒體文件數(shù)據(jù)或可忽略的 數(shù)據(jù))達成整數(shù)個頁的空間,使得每個頁大小固定,文件被讀取時容易找到分 頁索引的位置從而進一步提高了查找和定位的效率;
SI20,根據(jù)上述的RSF格式描述信息,對收到的多媒體信息數(shù)據(jù)包(比如 RTP包)進行依次或按特定順序存儲構(gòu)成各個分頁,并按照所述格式描述信息 將各分頁區(qū)分為若干個存取單元Clip (同樣可以是自定義或符合標準的媒體格 式),其中每個Clip或分頁都有自己的索引。這些索引包括數(shù)據(jù)包讀取的所在 位置、分頁或Clip中的數(shù)據(jù)包數(shù)量、數(shù)據(jù)包類型和最大最小時間(指存儲或接 收媒體包時間,用于界定文件、分頁、Clip的時長和邊界,便于播放定時和定 位)等信息。所述依次存儲即是指從分頁一開始到最后一個分頁進行存儲;按 特定順序是指按照技術(shù)開發(fā)人員指定的順序進行存儲,例如先寫分頁一、三、 五,后寫分頁二、四、六。當々某體文件的信息數(shù)據(jù)包進入分頁時,將數(shù)據(jù)包緩 存構(gòu)建存取單元,每次存儲一個或整數(shù)個存取單元。當若干個存取單元存入, 滿足一個完整分頁的條件時,根據(jù)這些存取單元各自的索引形成完整的分頁索 引附于分頁末尾。這樣可以減少數(shù)據(jù)存儲的次數(shù),減少小數(shù)據(jù)量存儲,實現(xiàn)追 加寫、避免改寫。所述RSF文件的各個分頁及存取單元也可以采用MP4 、 3GP、 TS、 AAC、自定義格式等,且彼此還可以釆用不同的格式。
所述對應的實際信息是在文件偏移量指向的位置上,該位置可以在RSF文 件所在的文件中,也可以在與其相關(guān)聯(lián)的文件里,表示讀取的媒體結(jié)構(gòu)的實際 內(nèi)容,實際信息指上述"所在位置、分頁或Clip中的i某體單元數(shù)量、々某體單元 類型和最大最小時間等信息。"因此,分頁依據(jù)不僅限于按空間或時間,也可能資到,'良件中一個位置后,指向另'一個文《爭的鏈接,即這些信息也可能在其他 不同文件上,當然多數(shù)情況是按空間位置分頁的。
媒體文件存儲結(jié)束時,還可以將所有分頁的索引信息合并生成一個總索引
信息附于RSF文件末尾,使得整個RSF文件成為一個大的適于快速訪問的完整 獨立結(jié)構(gòu)。同樣的,該結(jié)構(gòu)可以采用我們自定義私有格式,也可以采用符合標 準(如MP4、 TS等)的文件格式。
RSF文件最后的總索引包括RSF整個文件中所有媒體數(shù)據(jù)的索引信息;RSF
取單元)的索引包括該Clip各自的媒體數(shù)據(jù)的索引信息;其中,最小的Clip必 須包含自己的索引信息,媒體數(shù)據(jù)是指存入媒體結(jié)構(gòu)中的信息數(shù)據(jù)包。
所述的RSF文件中各分頁通常需要保留該分頁第一個媒體數(shù)據(jù)相對上一個 分頁最后一個i某體數(shù)據(jù)的時間偏移量和空間位置偏移量等信息。
通過本發(fā)明提供的多媒體文件的存儲方法以一個存取單元或子存取單元為 最小的寫入單位。在Clip完整前,所有的包在構(gòu)造CHp的過程中都是于緩存中 完整,當Clip完整后寫入磁盤,就不會再修改了。故實現(xiàn)了避免小數(shù)據(jù)的頻繁 讀寫,避免回寫和覆蓋寫,只允許追加寫(即只能允許在已寫位置之后寫入)。 如果要求能實時讀取的話,則需要每個存取單元緩存不能太多,保持幾秒內(nèi)就 更新入i茲盤。
圖8是本發(fā)明實施例五提供的一種RSF文件播放方法的流程圖,對于按照 本發(fā)明方法存儲的RSF媒體文件在播放時,包括如下的步驟
S210,客戶端根據(jù)用戶指定的時間點發(fā)出Describe請求點播以RSF格式存 儲的媒體節(jié)目時,服務(wù)器讀取RSF格式描述信息分頁中存儲的SDP信息提供給 客戶端;
S220,當客戶端和服務(wù)器間的鏈路建立成功開始播放時,若該RSF文件已 經(jīng)附加了文件總索引信息分頁,則RSF文件已經(jīng)是一個獨立完整的媒體結(jié)構(gòu)了, 通過RSF末尾的總索引分頁中的RSF索引信息即可定位至用戶指定時間點的數(shù) 據(jù)包,以便進行后續(xù)的讀取和播放;若該RSF文件尚未附加總索引信息分頁,則通過分頁各自的索引信息用查找算法進行查找,定位至措定的分頁;
S230,定位至具體分頁后,同樣的,若該分頁已經(jīng)附加了分頁索引(即已 經(jīng)是一個完整的媒體結(jié)構(gòu)),則通過分頁索引信息即可定位至用戶指定時間點 對應的數(shù)據(jù)包以進行讀取和播放;若該i某體分頁尚未有分頁索引(通常是因為 該分頁為最后一個媒體分頁,尚未存儲完全),則通過各存取單元(Clip)的各自 索引信息用查找算法進行查找,定位至具體存取單元;若具體的分頁格式信息 是分頁不再細分存取單元的,則步驟230可??;若存取單元下還有細分子存取 單元,則按照步驟S230的定位方法定位至最小Clip為止;例如, 一級存取單元 下還細分有二級子存儲單元,若該一級存取單元沒有附加自己的索引(通常是 因為該存取單元是最后一個媒體分頁中的最后一個存取單元,尚未存儲完全) 則通過各二級子存取單元的各自索引信息用查找算法進行查找,定位至具體的 二級子存取單元;
S240,根據(jù)用戶指定時間點以及分頁索3)或存取單元索3)或子存取單元索 引中記錄的媒體文件的信息數(shù)據(jù)包(RTP包、TS包等)信息定位到用戶指定時間
戶所點播的媒體數(shù)據(jù);
由于媒體的播放有時需要從關(guān)鍵幀開始,因此通過媒體分頁(或存取單元 Clip)內(nèi)的索引信息,定位距該指定時間點最近的關(guān)鍵幀所在的數(shù)據(jù)包;如果本 分頁(或Clip)內(nèi),不存在具有該特性的數(shù)據(jù)包,則向前或者向后的媒體分頁(或 存取單元Clip)中查找;
S250,從該處數(shù)據(jù)包開始,按照用戶設(shè)置的條件進行數(shù)據(jù)包的操作,如讀 包、寫包、取包信息、按時間查找序號、按序號查時間、按時間找包等。
同時本發(fā)明的實施例還提供一種多媒體信息存儲裝置,包括文件建立模 塊,用于按照預設(shè)文件名建立或打開一個多媒體文件,所述多媒體文件包含所 述多媒體文件的格式描述信息,所述格式描述信息包括會話描述協(xié)議信息和分 頁信息;劃分模塊,與文件建立模塊連接,用于根據(jù)所述格式描述信息將所述 多媒體文件劃分為至少一個獨立分頁,并將每個分頁分為至少 一個獨立的存取 單元;信息轉(zhuǎn)化模塊,與劃分模塊連接,用于將待存儲的多媒體信息數(shù)據(jù)存入
17所述多媒體文件的劃分好的各分頁的存取單元中。所述劃分單元中還包括子 存取單元劃分模塊,用于根據(jù)所述格式描述信息將每個所述存取單元嵌套劃分
為至少一個獨立的n級子存取單元,n為大于或等于0的整數(shù)。所述裝置中還包 括索引生成模塊,用于在子存取單元或存取單元或分頁構(gòu)造完成后生成本子 存取單元或存取單元或分頁的索引信息。
本發(fā)明的實施例還提供一種多々某體信息播放裝置,包括指令接收模塊, 用于接收客戶端設(shè)置的條件,所述條件中包含對多媒體文件的具體操作動作和 指定時間點;定位模塊,用于根據(jù)所述客戶端設(shè)置的條件通過多媒體文件的索 引信息定位至指定時間點對應的數(shù)據(jù)包所在的分頁或存取單元或n級子存取單 元位置,n為大于或等于0的整數(shù);操作模塊,與定位模塊連接,用于定位到數(shù) 據(jù)包讀取位置后,從該處數(shù)據(jù)包開始,按照客戶端設(shè)置的條件進行數(shù)據(jù)包操作。
除了時移業(yè)務(wù),本發(fā)明對于非時移業(yè)務(wù)也可提高存儲和播放的速度。另夕卜, 本發(fā)明主要應用于流媒體,但不限于此,對于其他實時多媒體圖像信息,例如 Flash也適用,其存儲和回》丈方法與上述實施例類似,故不在此贅述。
權(quán)利要求
1、一種多媒體信息存儲方法,其特征在于,包括以下步驟A、按照預設(shè)文件名建立或打開包括至少一個獨立分頁的多媒體文件,所述多媒體文件包含所述多媒體文件的格式描述信息,所述格式描述信息包括會話描述協(xié)議信息和分頁信息;B、根據(jù)所述格式描述信息將待存儲的多媒體信息數(shù)據(jù)存入所述多媒體文件的各分頁,并將所述多媒體文件的每個分頁分為一個以上獨立的存取單元用于裝載存入所述多媒體文件分頁的數(shù)據(jù)包。
2、 根據(jù)權(quán)利要求1所述的多媒體信息存儲方法,其特征在于,所述存取單 元又嵌套細分為n級子存取單元,n為大于或等于0的整數(shù)。
3、 根據(jù)權(quán)利要求2所述的多媒體信息存儲方法,其特征在于,所述步驟B 包括Bl、每個第n級子存取單元分別為存入其中的信息數(shù)據(jù)包建立第n級子存 取單元索引信息。
4、 根據(jù)權(quán)利要求3所述的多媒體信息存儲方法,其特征在于,所述步驟B 還包括B2、每個子存取單元分別根據(jù)其下屬子存取單元的索引信息建立本級子存 取單元的索引信息;B3、每個存取單元分別根據(jù)其下屬的第1級子存取單元的索引信息建立存 取單元索引信息。
5、 根據(jù)權(quán)利要求4所述的多々某體信息存儲方法,其特征在于,所述步驟B3 之后還包括B4、每個分頁將所述多媒體文件分頁內(nèi)的存取單元索引信息合并生成分頁索引信息。
6、 根據(jù)權(quán)利要求5所述的多媒體信息存儲方法,其特征在于,步驟B之后 還包括步驟C 、將所述分頁索引信息合并生成所述多媒體文件的總索引信息。
7、 根據(jù)前述任一權(quán)利要求所述的多媒體信息存儲方法,其特征在于,所述 分頁信息包括分頁依據(jù),是指頁的劃分所依據(jù)的準則,所述準則可以是根據(jù)存儲的多媒 體文件的時間,或者根據(jù)存儲的多媒體文件所占的空間或根據(jù)存儲的多媒體文 件的包數(shù)量,或者根據(jù)存儲的多媒體文件的標識符或根據(jù)鏈接到的其他文件及 地址位置,或者根據(jù)以上任意準則的結(jié)合;分頁度量,與分頁依據(jù)相對應,用于度量分頁依據(jù),如果分頁準則是根據(jù) 存儲的多媒體文件所占的空間,則分頁度量是每頁的空間大小的單位;如果分 頁準則是根據(jù)存儲的多媒體文件的時間,則分頁度量是每頁的時間長度的單位; 如果分頁準則是根據(jù)存儲的多媒體文件的標識符,則分頁度量是每頁的標識符; 如果分頁準則是根據(jù)鏈接的其他文件及地址位置,則分頁度量表示鏈接在文件 里的位置或約定的文件名等信息。
8、 根據(jù)權(quán)利要求1至6任一所述的多媒體信息存儲方法,其特征在于,所 述多媒體文件的整個文件或分頁或存取單元或子存取單元采用標準媒體格式或的媒體格式。
9、 一種多媒體信息播放方法,其特征在于包括以下步驟D、當多媒體文件被點播時,服務(wù)器讀取所述多媒體文件相應的會話描述協(xié) 議信息提供給客戶端;E、 當客戶端和服務(wù)器間的鏈路建立成功開始播;^時,通過總索引信息或通 過遍歷各分頁索引信息定位至指定時間點對應的教:據(jù)包所在的分頁位置;F、 定位到數(shù)據(jù)包讀取位置后,從該處數(shù)據(jù)包開始,按照客戶端設(shè)置的條件 進行數(shù)據(jù)包操作。
10、 根據(jù)權(quán)利要求9所述的多媒體信息播放方法,其特征在于,步驟E還 包括El、根據(jù)所述指定時間點,在當前分頁內(nèi)根據(jù)所述分頁索引信息或通過遍 歷存取單元索引信息查找所述指定時間點對應的數(shù)據(jù)包所在存取單元位置;E2、根據(jù)指定時間點,在當前存取單元內(nèi)根據(jù)所述存取單元索引信息或通 過遍歷子存取單元索引信息查找所述指定時間點對應的數(shù)據(jù)包所在子存取單元 位置;E3、直到定位至所述指定時間點對應的數(shù)據(jù)包所在的第n級子存取單元位置。
11、 根據(jù)權(quán)利要求10所述的多力某體信息播放方法,其特征在于,步驟E中 所述指定時間點對應的凄t據(jù)包如果處于最后一個尚不完整的分頁中時,則定位 至所述不完整分頁中的存取單元或子存取單元后,在當前存取單元或子存取單 元內(nèi)查找數(shù)據(jù)包讀耳又位置;如果在當前存取單元或子存取單元查找不到所述指 定時間點對應的凄t據(jù)包,則向前或者向后或通過查找算法在存取單元或子存取^ 單元中查找數(shù)據(jù)包讀取位置。
12、 一種多々某體信息存儲裝置,其特征在于,包括文件建立模塊,用于按照預設(shè)文件名建立或打開一個多媒體文件,所述多 媒體文件包含所述多媒體文件的格式描述信息,所述格式描述信息包括會話描 述協(xié)議信息和分頁信息;劃分模塊,與文件建立模塊連接,用于根據(jù)所述格式描述信息將所述多媒體文件劃分為至少一個獨立分頁,并將每個分頁分為至少一個獨立的存取單元;信息轉(zhuǎn)化模塊,與劃分才莫塊連接,用于將待存儲的多媒體信息數(shù)據(jù)存入所 述多媒體文件的劃分好的各分頁的存取單元中。
13、 根據(jù)權(quán)利要求12所述的多媒體信息存儲裝置,其特征在于,所述劃分 單元中還包括子存取單元劃分模塊,用于根據(jù)所述格式描述信息將每個所述存取單元嵌套 劃分為至少一個獨立的n級子存取單元,n為大于或等于0的整數(shù)。
14、 根據(jù)權(quán)利要求13所述的一種多媒體信息存儲裝置,其特征在于,還包括索引生成模塊,用于在子存取單元或存取單元或分頁構(gòu)造完成后生成本子存 取單元或存耳又單元或分頁的索引信息。
15、 一種多媒體信息播放裝置,其特征在于,包括指令接收模塊,用于接收客戶端設(shè)置的條件,所述條件中包含對多媒體文 件的具體操作動作和指定時間點;定位模塊,用于根據(jù)所述客戶端設(shè)置的條件通過多媒體文件的索引信息定 位至指定時間點對應的數(shù)據(jù)包所在的分頁或存^^單元或n級子存^^單元位置,n 為大于或等于0的整數(shù);操作模塊,與定位模塊連接,用于定位到數(shù)據(jù)包讀取位置后,從該處數(shù)據(jù) 包開始,按照客戶端設(shè)置的條件進行數(shù)據(jù)包操作。
全文摘要
本發(fā)明涉及多媒體技術(shù)領(lǐng)域,特別涉及一種多媒體信息存儲和播放方法及其裝置。本發(fā)明提供的一種多媒體信息存儲方法,包括以下步驟A.按照預設(shè)文件名建立或打開包括至少一個獨立分頁的多媒體文件,所述多媒體文件包含所述多媒體文件的格式描述信息,所述格式描述信息包括會話描述協(xié)議信息和分頁信息;B.根據(jù)所述格式描述信息將待存儲的多媒體信息數(shù)據(jù)存入所述多媒體文件的各分頁,并將所述多媒體文件的每個分頁分為一個以上獨立的存取單元用于裝載存入所述多媒體文件分頁的數(shù)據(jù)包。本發(fā)明不僅可以實現(xiàn)多媒體信息幾秒內(nèi)的實時高速存取,又解決了小數(shù)據(jù)存取和改寫過多造成的存取效率低下的問題,同時還使數(shù)據(jù)便于分割合并和兼容標準格式。
文檔編號G06F17/30GK101477575SQ20091010518
公開日2009年7月8日 申請日期2009年1月22日 優(yōu)先權(quán)日2009年1月22日
發(fā)明者劉繼年, 健 孫, 李加周, 阮亞平, 衡 陳 申請人:中興通訊股份有限公司