專(zhuān)利名稱(chēng):用于快速播放的音視頻多媒體文件格式、播放方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體播放技術(shù)領(lǐng)域,尤其是涉及一種用于快速播放的音視頻多媒體文件格式、播放方法及裝置。
背景技術(shù):
現(xiàn)有的播放器,比如realplayer等,可播放采用realmedia, avi等文件格式的音視頻多媒體文件,其中,RealNetworks公司所制定的音頻視頻壓縮規(guī)范RealMedia文件數(shù)據(jù)的排布均如圖I (微軟公司的avi格式也與此類(lèi)似)所示,由圖I可見(jiàn),該realmedia文件格式包括頭部(Header Section)、數(shù)據(jù)部(Data Section)和(Index Section)索引部,其中頭部設(shè)置在文件的最前面,接下來(lái)是數(shù)據(jù)部、最后是索引部。當(dāng)視音頻在線播放的時(shí)候,音視頻多媒體文件是按照頭部,數(shù)據(jù)部,索引部的安排·順序,依順序傳輸?shù)模虼?,?dāng)播放終端的用戶(hù)在線隨機(jī)訪問(wèn)音視頻多媒體文件的不同位置時(shí),需先跳到文件尾部下載用于鎖定尋找的當(dāng)前幀的索引信息。從索引信息找到關(guān)鍵幀信息之后再?gòu)臄?shù)據(jù)部(data section)內(nèi)找到關(guān)鍵數(shù)據(jù)幀,并根據(jù)隨機(jī)訪問(wèn)的時(shí)間戳和關(guān)鍵幀計(jì)算所需訪問(wèn)的當(dāng)前幀數(shù)據(jù)??梢?jiàn),這種文件格式及相應(yīng)的播放方式會(huì)影響在線播放的速度,不利于視音頻幀數(shù)據(jù)的讀取,而在線播放速度對(duì)于有在線播放需求的用戶(hù)來(lái)說(shuō)非常重要。另外,上述音視頻多媒體文件格式的頭部?jī)?nèi)包括了 文件頭、特征、四個(gè)媒體特征和內(nèi)容描述,由于頭部定義的內(nèi)容多,在流媒體在線播放的情況下,該種文件頭定義的方式使得流媒體文件傳輸?shù)臄?shù)據(jù)包中包含較多描述字段,致使不必要的若干描述性?xún)?nèi)容被多次傳輸,耗費(fèi)網(wǎng)絡(luò)資源。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種用于快速播放的音視頻多媒體文件格式、播放方法及裝置,以提高音視頻文件的在線點(diǎn)播速率以及減少網(wǎng)絡(luò)資源的浪費(fèi)?!矫?,本發(fā)明實(shí)施例提供了一種用于快速播放的音視頻多媒體文件格式,該音視頻多媒體文件由前至后依次由文件頭、媒體流信息、索引塊和數(shù)據(jù)塊組成,所述文件頭用于存放多媒體文件基本屬性信息,所述媒體流信息用于存放媒體流基本屬性信息,所述索引塊用于存放區(qū)分位置的索引信息表,所述數(shù)據(jù)塊用于存放多媒體數(shù)據(jù)。優(yōu)選的,本發(fā)明實(shí)施例中的文件頭包括簽名,用于標(biāo)識(shí)文件格式類(lèi)型;長(zhǎng)度,用于定義文件頭長(zhǎng)度;版本,用于定義文件格式的版本號(hào);碼率,用于定義整個(gè)文件的碼率;時(shí)間尺度,用于定義文件頭時(shí)間相關(guān)域使用的時(shí)間尺度;時(shí)間基點(diǎn),所述時(shí)間基點(diǎn)與所述時(shí)間尺度的乘積與播放器使用的硬件時(shí)鐘相匹配;播放時(shí)長(zhǎng),用于定義文件播放時(shí)間長(zhǎng)度;媒體流數(shù),用于定義文件包含的媒體流信息塊的個(gè)數(shù);數(shù)據(jù)塊偏移,用于定義數(shù)據(jù)塊在文件中的偏移;主索引記錄個(gè)數(shù),用于定義主索引記錄的數(shù)量。優(yōu)選的,本發(fā)明實(shí)施例中的媒體流信息包括簽名,用于標(biāo)識(shí)媒體流信息塊;長(zhǎng)度,用于定義媒體流信息塊長(zhǎng)度;版本,用于定義文件格式的版本號(hào);流表示,用于唯一表示文件中的流;流分類(lèi),用于標(biāo)識(shí)流為視頻流或者音頻流;碼率,用于定義這個(gè)流的碼率;時(shí)間長(zhǎng)度,用于定義流時(shí)間戳的時(shí)間尺度;播放時(shí)長(zhǎng),用于定義這個(gè)流的播放時(shí)間長(zhǎng)度;流類(lèi)型,用于定義媒體流的類(lèi)型;視頻音頻流特有數(shù)據(jù),用于定義特有數(shù)據(jù)。優(yōu)選的,本發(fā)明實(shí)施例中的索引塊包括索引頭和索引記錄,其中,所述索引頭包括簽名,用于標(biāo)識(shí)索引塊;長(zhǎng)度,用于定義索引塊的長(zhǎng)度;版本,用于定義文件格式的版本號(hào);索引記錄數(shù),用于定義索引表中記錄個(gè)數(shù);所述索引記錄包括時(shí)間戳,用于記錄對(duì)應(yīng)的時(shí)間戳;流標(biāo)示,用于記錄對(duì)應(yīng)得媒體流;標(biāo)志,用于定義記錄標(biāo)志;偏移,用于記錄對(duì)應(yīng)的文件偏移;幀計(jì)數(shù),用于記錄指向幀的計(jì)數(shù)。優(yōu)選的,本發(fā)明實(shí)施例中的數(shù)據(jù)塊包括數(shù)據(jù)頭和數(shù)據(jù)幀,其中,所述數(shù)據(jù)頭包括簽名,用于標(biāo)識(shí)數(shù)據(jù)塊;長(zhǎng)度,用于定義數(shù)據(jù)塊的長(zhǎng)度;幀個(gè)數(shù),用于定義數(shù)據(jù)幀的總個(gè)數(shù);所述數(shù)據(jù)幀包括大小,用于定義數(shù)據(jù)幀的大??;流標(biāo)示,用于標(biāo)示這個(gè)數(shù)據(jù)幀屬于哪個(gè)媒體流;標(biāo)志,用于定義數(shù)據(jù)幀標(biāo)志;時(shí)間戳,用于定義這個(gè)數(shù)據(jù)幀高的時(shí)間戳;幀數(shù)據(jù),用于定義這個(gè)數(shù)據(jù)幀包含的媒體數(shù)據(jù)。 另一方面,本發(fā)明實(shí)施例還提供了一種快速播放音視頻多媒體文件的文件格式合成方法,該方法包括將音視頻多媒體數(shù)據(jù)源分離成音頻數(shù)據(jù)和視頻數(shù)據(jù);將分離的音頻數(shù)據(jù)和視頻數(shù)據(jù)合成為快速播放的音視頻多媒體文件,所述音視頻多媒體文件由前至后依次由文件頭、媒體流信息、索引塊和數(shù)據(jù)塊組成。另一方面,本發(fā)明實(shí)施例還提供了一種快速播放音視頻多媒體文件格式的方法,該方法包括接收音視頻多媒體文件數(shù)據(jù)塊前先接收所述音視頻多媒體文件的索引信息表;將所述索引信息表存儲(chǔ)于用戶(hù)交互界面的存儲(chǔ)單元中;當(dāng)接收到用戶(hù)隨機(jī)訪問(wèn)指示時(shí),根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息;根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放。優(yōu)選的,本發(fā)明實(shí)施例中根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息包括根據(jù)用戶(hù)色隨機(jī)訪問(wèn)指示從進(jìn)度條截取訪問(wèn)時(shí)間點(diǎn)的時(shí)間戳信息;從所述存儲(chǔ)單元內(nèi)的索引信息表內(nèi)找出與所述時(shí)間戳最近的關(guān)鍵幀信息;根據(jù)所述時(shí)間戳信息和所述關(guān)鍵幀信息計(jì)算出需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息。優(yōu)選的,本發(fā)明實(shí)施例中根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放包括根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀;將所述數(shù)據(jù)幀的數(shù)據(jù)分離成音頻數(shù)據(jù)和/或視頻數(shù)據(jù);將所述音頻數(shù)據(jù)經(jīng)過(guò)音頻解碼、渲染后輸出至音頻播放數(shù)據(jù)進(jìn)行播放;將所述視頻數(shù)據(jù)經(jīng)過(guò)視頻解碼、渲染后輸出至用戶(hù)交互界面的播放控制模塊,由用戶(hù)交互界面的播放窗口呈現(xiàn)給用戶(hù)。另一方面,本發(fā)明實(shí)施例還提供了一種快速播放音視頻多媒體文件的文件格式合成裝置,包括分離單元,用于將音視頻多媒體數(shù)據(jù)源分離成音頻數(shù)據(jù)和視頻數(shù)據(jù);合成單元,用于將分離的音頻數(shù)據(jù)和視頻數(shù)據(jù)合成為快速播放的音視頻多媒體文件,所述音視頻多媒體文件由前至后依次由文件頭、媒體流信息、索引塊和數(shù)據(jù)塊組成。另一方面,本發(fā)明實(shí)施例還提供了一種快速播放音視頻多媒體文件的文件格式的裝置,包括接收單元,用于在接收音視頻多媒體文件數(shù)據(jù)塊前先接收所述音視頻多媒體文件的索引信息表;存儲(chǔ)單元,用于存儲(chǔ)所述索引信息表;數(shù)據(jù)幀信息獲取單元,用于當(dāng)接收到用戶(hù)隨機(jī)訪問(wèn)指示時(shí),根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息;播放單元,用于根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放。優(yōu)選的,本發(fā)明實(shí)施例中的數(shù)據(jù)幀信息獲取單元包括時(shí)間戳信息獲取模塊,用于根據(jù)用戶(hù)色隨機(jī)訪問(wèn)指示從進(jìn)度條截取訪問(wèn)時(shí)間點(diǎn)的時(shí)間戳信息;關(guān)鍵幀信息獲取模塊,用于從所述存儲(chǔ)單元內(nèi)的索引信息表內(nèi)找出與所述時(shí)間戳最近的關(guān)鍵幀信息;數(shù)據(jù)幀信息計(jì)算模塊,用于根據(jù)所述時(shí)間戳信息和所述關(guān)鍵幀信息計(jì)算出需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信
肩、O本發(fā)明實(shí)施例可以在接收數(shù)據(jù)塊前預(yù)先接收索引信息表,使得在線點(diǎn)播中用戶(hù)隨 機(jī)訪問(wèn)時(shí)不再需要跳躍下載索引信息表并讀取數(shù)據(jù),使得在線點(diǎn)播速率加快,提高了用戶(hù)體驗(yàn)。另外本發(fā)明實(shí)施例中音視頻多媒體文件的文件頭僅包含有必要的文件頭信息,減少 了冗余信息的不必要傳輸,節(jié)省了網(wǎng)絡(luò)資源。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為現(xiàn)有技術(shù)中RealMedia文件數(shù)據(jù)的排布示意圖;圖2為本發(fā)明實(shí)施例提供的一種用于快速播放的音視頻多媒體文件格式的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的一種文件頭的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的一種媒體流信息的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例提供的一種索引塊的結(jié)構(gòu)示意圖;圖6本發(fā)明實(shí)施例提供的一種數(shù)據(jù)塊的結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的合成方法流程不意圖;圖8為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的方法流程示意圖;圖9為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)幀信息的獲取流程示意圖;圖10為本發(fā)明實(shí)施例提供的一種播放流程示意圖;圖11為本發(fā)明實(shí)施例提供的一種點(diǎn)播終端的結(jié)構(gòu)示意圖;圖12為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的合成裝置結(jié)構(gòu)示意圖;圖13為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的裝置的結(jié)構(gòu)示意圖;圖14為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)幀信息獲取單元的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。如圖2所示為本發(fā)明實(shí)施例提供的一種用于快速播放的音視頻多媒體文件格式的結(jié)構(gòu)示意圖,該視頻文件格式包括文件頭、媒體流信息、索引塊和數(shù)據(jù)塊。由圖2可見(jiàn),上述文件頭、媒體流信息、索引塊和數(shù)據(jù)塊是由前至后依次設(shè)置的,當(dāng)改音視頻多媒體文件在線播放時(shí),其也是按照上述次序順序傳輸。在本實(shí)施例中,文件頭用于存放多媒體文件基本屬性信息,媒體流信息用于存放媒體流基本屬性信息,索引塊用于存放區(qū)分位置的索引信息表,數(shù)據(jù)塊用于存放多媒體數(shù)據(jù)。如圖3所示為本發(fā)明實(shí)施例提供的一種文件頭的結(jié)構(gòu)示意圖,該文件頭包括簽 名,用于標(biāo)識(shí)文件格式類(lèi)型;長(zhǎng)度,用于定義文件頭長(zhǎng)度;版本,用于定義文件格式的版本號(hào);碼率,用于定義整個(gè)文件的碼率;時(shí)間尺度,用于定義文件頭時(shí)間相關(guān)域使用的時(shí)間尺度;時(shí)間基點(diǎn),所述時(shí)間基點(diǎn)與所述時(shí)間尺度的乘積與播放器使用的硬件時(shí)鐘相匹配;播放時(shí)長(zhǎng),用于定義文件播放時(shí)間長(zhǎng)度;媒體流數(shù),用于定義文件包含的媒體流信息塊的個(gè)數(shù);數(shù)據(jù)塊偏移,用于定義數(shù)據(jù)塊在文件中的偏移;主索引記錄個(gè)數(shù),用于定義主索引記錄的數(shù)量。如圖4所示為本發(fā)明實(shí)施例提供的一種媒體流信息的結(jié)構(gòu)示意圖,該媒體流信息包括簽名,用于標(biāo)識(shí)媒體流信息塊;長(zhǎng)度,用于定義媒體流信息塊長(zhǎng)度;版本,用于定義文件格式的版本號(hào);流表示,用于唯一表示文件中的流;流分類(lèi),用于標(biāo)識(shí)流為視頻流或者音頻流;碼率,用于定義這個(gè)流的碼率;時(shí)間長(zhǎng)度,用于定義流時(shí)間戳的時(shí)間尺度;播放時(shí)長(zhǎng),用于定義這個(gè)流的播放時(shí)間長(zhǎng)度;流類(lèi)型,用于定義媒體流的類(lèi)型;視頻音頻流特有數(shù)據(jù),用于定義特有數(shù)據(jù)。如圖5所示為本發(fā)明實(shí)施例提供的一種索引塊的結(jié)構(gòu)示意圖,該索引塊包括索引頭和索引記錄,其中,索引頭包括簽名,用于標(biāo)識(shí)索引塊;長(zhǎng)度,用于定義索引塊的長(zhǎng)度;版本,用于定義文件格式的版本號(hào);索引記錄數(shù),用于定義索引表中記錄個(gè)數(shù);索引記錄包括時(shí)間戳,用于記錄對(duì)應(yīng)的時(shí)間戳;流標(biāo)示,用于記錄對(duì)應(yīng)得媒體流;標(biāo)志,用于定義記錄標(biāo)志;偏移,用于記錄對(duì)應(yīng)的文件偏移;幀計(jì)數(shù),用于記錄指向幀的計(jì)數(shù)。如圖6所示為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)塊的結(jié)構(gòu)示意圖,該數(shù)據(jù)塊包括數(shù)據(jù)頭和數(shù)據(jù)幀,其中,數(shù)據(jù)頭包括簽名,用于標(biāo)識(shí)數(shù)據(jù)塊;長(zhǎng)度,用于定義數(shù)據(jù)塊的長(zhǎng)度;幀個(gè)數(shù),用于定義數(shù)據(jù)幀的總個(gè)數(shù);數(shù)據(jù)幀包括大小,用于定義數(shù)據(jù)幀的大?。涣鳂?biāo)示,用于標(biāo)示這個(gè)數(shù)據(jù)幀屬于哪個(gè)媒體流;標(biāo)志,用于定義數(shù)據(jù)幀標(biāo)志;時(shí)間戳,用于定義這個(gè)數(shù)據(jù)幀高的時(shí)間戳;幀數(shù)據(jù),用于定義這個(gè)數(shù)據(jù)幀包含的媒體數(shù)據(jù)。本發(fā)明實(shí)施例可以在接收數(shù)據(jù)塊前預(yù)先接收索引信息表,使得在線點(diǎn)播中用戶(hù)隨機(jī)訪問(wèn)時(shí)不再需要跳躍下載索引信息表并讀取數(shù)據(jù),使得在線點(diǎn)播速率加快,提高了用戶(hù)體驗(yàn)。另外本發(fā)明實(shí)施例中音視頻多媒體文件的文件頭僅包含有必要的文件頭信息,減少了冗余信息的不必要傳輸,節(jié)省了網(wǎng)絡(luò)資源。如圖7所示為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的合成方法流程示意圖,該方法包括S701 :將音視頻多媒體數(shù)據(jù)源分離成音頻數(shù)據(jù)和視頻數(shù)據(jù)。S702:將分離的音頻數(shù)據(jù)和視頻數(shù)據(jù)合成為快速播放的音視頻多媒體文件,所述音視頻多媒體文件由前至后依次由文件頭 、媒體流信息、索引塊和數(shù)據(jù)塊組成。具體來(lái)說(shuō),當(dāng)通過(guò)S701得到音頻數(shù)據(jù)和視頻數(shù)據(jù)后,可以先對(duì)該音頻數(shù)據(jù)和視頻數(shù)據(jù)分別進(jìn)行解碼,然后再對(duì)解碼后數(shù)據(jù)進(jìn)行編碼,最后經(jīng)過(guò)S702整合成音視頻多媒體文件,這里的音視頻多媒體文件是指具有上述圖I-圖6對(duì)應(yīng)實(shí)施例所述的音視頻多媒體文件格式的文件。作為本發(fā)明的一個(gè)實(shí)施例,對(duì)音頻解碼數(shù)據(jù)可以采用Vorbits壓縮算法進(jìn)行編碼,而對(duì)視頻解碼數(shù)據(jù)則可以采用0N2壓縮算法進(jìn)行編碼。本發(fā)明實(shí)施例合成的音視頻多媒體文件在線播放時(shí),可以在接收數(shù)據(jù)塊前預(yù)先接收索引信息表,使得在線點(diǎn)播中用戶(hù)隨機(jī)訪問(wèn)時(shí)不再需要跳躍下載索引信息表并讀取數(shù)據(jù),使得在線點(diǎn)播速率加快,提高了用戶(hù)體驗(yàn)。另外本發(fā)明實(shí)施例中音視頻多媒體文件的文件頭僅包含有必要的文件頭信息,減少了冗余信息的不必要傳輸,節(jié)省了網(wǎng)絡(luò)資源。如圖8所示為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的方法流程示意圖,該播放方法是基于上述音視頻多媒體文件格式的基礎(chǔ)上的,本實(shí)施例是從用戶(hù)的點(diǎn)播終端側(cè)對(duì)本發(fā)明進(jìn)行的描述,該方法包括S801 :在接收音視頻多媒體文件數(shù)據(jù)塊前先接收所述音視頻多媒體文件的索引信息表。由于在本實(shí)施例中索引塊在音視頻多媒體文件格式中的位置位于數(shù)據(jù)塊之前,因此當(dāng)在線播放的時(shí)候,相對(duì)于數(shù)據(jù)塊而言點(diǎn)播終端會(huì)先接收到索引信息表。S802 :將所述索引信息表存儲(chǔ)于用戶(hù)交互界面的存儲(chǔ)單元中。在本實(shí)施例中用戶(hù)界面的存儲(chǔ)單元為計(jì)算機(jī)的一塊內(nèi)存區(qū)域。S803:當(dāng)接收到用戶(hù)隨機(jī)訪問(wèn)指示時(shí),根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息。作為本發(fā)明的一個(gè)實(shí)施例,如圖9所示,該步驟可以進(jìn)一步包括如下子步驟S8031 :根據(jù)用戶(hù)色隨機(jī)訪問(wèn)指示從進(jìn)度條截取訪問(wèn)時(shí)間點(diǎn)的時(shí)間戳信息;S8032 :從存儲(chǔ)單元內(nèi)的索引信息表內(nèi)找出與上述時(shí)間戳最近的關(guān)鍵幀信息;S8033:根據(jù)所述時(shí)間戳信息和所述關(guān)鍵幀信息計(jì)算出需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信
肩、OS804 :根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放。作為本發(fā)明的一個(gè)實(shí)施例,如圖10所示,該步驟可以進(jìn)一步包括如下子步驟S8041 :根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀;S8042 :將所述數(shù)據(jù)幀的數(shù)據(jù)分離成音頻數(shù)據(jù)和/或視頻數(shù)據(jù);S8043 :將所述音頻數(shù)據(jù)經(jīng)過(guò)音頻解碼、渲染后輸出至音頻播放數(shù)據(jù)進(jìn)行播放;
S8044:將所述視頻數(shù)據(jù)經(jīng)過(guò)視頻解碼、渲染后輸出至用戶(hù)交互界面的播放控制模塊,由用戶(hù)交互界面的播放窗口呈現(xiàn)給用戶(hù)。需要指出的是,本發(fā)明實(shí)施例并不強(qiáng)調(diào)上述步驟S6043和步驟S6044之間的執(zhí)行順序。下面基于本發(fā)明實(shí)施例提供的一種點(diǎn)播終端的結(jié)構(gòu)示意圖來(lái)對(duì)上述步驟進(jìn)行進(jìn)一步的說(shuō)明,如圖11所示為本發(fā)明實(shí)施例提供的一種點(diǎn)播終端的結(jié)構(gòu)示意圖。如圖11所示,在P2P網(wǎng)絡(luò)中的用戶(hù)跟蹤服務(wù)器、其他點(diǎn)播終端以及加速下載網(wǎng)絡(luò)中的加速下載服務(wù)器中都存儲(chǔ)有上述音視頻多媒體文件格式的多媒體文件。這些終端為用戶(hù)側(cè)的點(diǎn)播終端提供在線點(diǎn)播數(shù)據(jù)源。用戶(hù)側(cè)點(diǎn)播終端在實(shí)際應(yīng)用中就是一運(yùn)行于計(jì)算機(jī)內(nèi)的播放器軟件,圖11中的傳輸控制端和用戶(hù)交界面都隸屬于該播放器,其中傳輸控制端是播放器的后臺(tái)運(yùn)行程序, 而用戶(hù)交互界面是播放器和用戶(hù)進(jìn)行交互操作的一個(gè)圖形界面。在本實(shí)施例中,傳輸控制端可以提供P2P下載任務(wù)、管理任務(wù)等功能,同時(shí)傳輸控制端還是播放器系統(tǒng)的啟動(dòng)模塊,當(dāng)播放器系統(tǒng)啟動(dòng)后,傳輸控制端可以完成各個(gè)模塊的初始化工作。傳輸控制端內(nèi)的傳輸控制模塊可以采用私有協(xié)議或者P2P協(xié)議的方式與用戶(hù)跟蹤服務(wù)器及其他具有資源數(shù)據(jù)的節(jié)點(diǎn)進(jìn)行通信,或者該傳輸控制模塊可以采用http協(xié)議與加速下載服務(wù)器進(jìn)行通信。在進(jìn)行在線點(diǎn)播時(shí),播放器內(nèi)的文件讀取模塊可以通過(guò)數(shù)據(jù)通訊接口不斷以請(qǐng)求/應(yīng)答的方式從傳輸控制端獲取資源數(shù)據(jù),然后經(jīng)分離模塊將該資源數(shù)據(jù)分類(lèi),從而將音頻數(shù)據(jù)發(fā)送給音頻解碼模塊,將視頻數(shù)據(jù)發(fā)送給視頻解碼模塊,音頻數(shù)據(jù)解碼并經(jīng)過(guò)渲染后通過(guò)音頻播放裝置進(jìn)行播放,視頻數(shù)據(jù)解碼并通過(guò)渲染后通過(guò)用戶(hù)交互界面的播放窗口進(jìn)行播放。或者,本發(fā)明實(shí)施例在進(jìn)行在線點(diǎn)播的時(shí)候,傳輸控制端也可以將收到的資源數(shù)據(jù)保存在存儲(chǔ)模塊中,該存儲(chǔ)模塊是一個(gè)磁盤(pán)位置或者內(nèi)存位置,然后將保存地址發(fā)送給數(shù)據(jù)通訊接口,然后文件讀取模塊不斷以請(qǐng)求/應(yīng)答的方式從存儲(chǔ)模塊中獲取資源數(shù)據(jù)并進(jìn)行播放。在本實(shí)施例中,用戶(hù)交互界面可以包括存儲(chǔ)單元、播放邏輯控制單元、播放位置設(shè)置單元和播放窗口。這里存儲(chǔ)單元為一內(nèi)存空間,文件讀取模塊所較數(shù)據(jù)塊優(yōu)先接收的上述索引信息表就暫存在這里。當(dāng)用戶(hù)在點(diǎn)播中隨機(jī)訪問(wèn)時(shí),播放位置設(shè)置單元可以從進(jìn)度條截取時(shí)間點(diǎn)的時(shí)間戳信息,并從存儲(chǔ)單元內(nèi)的索引信息表內(nèi)找出與時(shí)間戳最近的關(guān)鍵幀信息,然后播放邏輯控制模塊可以根據(jù)時(shí)間戳信息和關(guān)鍵幀信息計(jì)算出需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀,該播放邏輯控制模塊將該數(shù)據(jù)幀信息送至播放控制器,播放控制器調(diào)度文件讀取模塊從存儲(chǔ)模塊中讀取數(shù)據(jù)幀,接著該數(shù)據(jù)幀數(shù)據(jù)經(jīng)過(guò)分離模塊、視頻解碼模塊和視頻渲染模塊處理后由播放窗口呈現(xiàn)給用戶(hù),即將用戶(hù)需要觀看的視頻呈現(xiàn)出來(lái)。本發(fā)明實(shí)施例可以在接收數(shù)據(jù)塊前預(yù)先接收索引信息表,使得在線點(diǎn)播中用戶(hù)隨機(jī)訪問(wèn)時(shí)不再需要跳躍下載索引信息表并讀取數(shù)據(jù),使得在線點(diǎn)播速率加快,提高了用戶(hù)體驗(yàn)。另外本發(fā)明實(shí)施例中音視頻多媒體文件的文件頭僅包含有必要的文件頭信息,減少了冗余信息的不必要傳輸,節(jié)省了網(wǎng)絡(luò)資源。如圖12所示為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的合成裝置結(jié)構(gòu)示意圖,該裝置包括分離單元1201用于將音視頻多媒體數(shù)據(jù)源分離成音頻數(shù)據(jù)和視頻數(shù)據(jù)。合成單元1202用于將分離的音頻數(shù)據(jù)和視頻數(shù)據(jù)合成為快速播放的音視頻多媒體文件,所述音視頻多媒體文件由前至后依次由文件頭、媒體流信息、索引塊和數(shù)據(jù)塊組成。作為本發(fā)明的一個(gè)實(shí)施例,該裝置還可以包括解碼單元和編碼單元,當(dāng)通過(guò)分離單元1201得到音頻數(shù)據(jù)和視頻數(shù)據(jù)后,可以先利用解碼單元對(duì)該音頻數(shù)據(jù)和視頻數(shù)據(jù)分別進(jìn)行解碼,然后再利用編碼單元對(duì)解碼后數(shù)據(jù)進(jìn)行編碼,最后經(jīng)過(guò)合成單元1202整合成音視頻多媒體文件,這里的音視頻多媒體文件是指具有上述圖I-圖6對(duì)應(yīng)實(shí)施例所述的音視頻多媒體文件格式的文件。這里編碼單元對(duì)音頻解碼數(shù)據(jù)可以采用Vorbits壓縮算法進(jìn)行編碼,而對(duì)視頻解碼數(shù)據(jù)則可以采用0N2壓縮算法進(jìn)行編碼。
本發(fā)明實(shí)施例合成的音視頻多媒體文件在線播放時(shí),可以在接收數(shù)據(jù)塊前預(yù)先接收索引信息表,使得在線點(diǎn)播中用戶(hù)隨機(jī)訪問(wèn)時(shí)不再需要跳躍下載索引信息表并讀取數(shù)據(jù),使得在線點(diǎn)播速率加快,提高了用戶(hù)體驗(yàn)。另外本發(fā)明實(shí)施例中音視頻多媒體文件的文件頭僅包含有必要的文件頭信息,減少了冗余信息的不必要傳輸,節(jié)省了網(wǎng)絡(luò)資源。如圖13所示為本發(fā)明實(shí)施例提供的一種快速播放音視頻多媒體文件格式的裝置結(jié)構(gòu)示意圖,該裝置可以是用戶(hù)側(cè)的一播放終端,該裝置包括接收單元110、存儲(chǔ)單元120、數(shù)據(jù)幀信息獲取單元130和播放單元140,其中存儲(chǔ)單元120分別和接收單元110及數(shù)據(jù)幀信息獲取單元130相連,播放單元140和數(shù)據(jù)幀信息獲取單元130相連。接收單元110用于在接收音視頻多媒體文件數(shù)據(jù)塊前先接收所述音視頻多媒體文件的索引信息表。由于在本實(shí)施例中索引塊在音視頻多媒體文件格式中的位置位于數(shù)據(jù)塊之前,因此當(dāng)在線播放的時(shí)候,相對(duì)于數(shù)據(jù)塊而言接收單元110會(huì)先接收到索引信息表。存儲(chǔ)單元120用于存儲(chǔ)所述索引信息表,該存儲(chǔ)單元120可以是一內(nèi)存位置。數(shù)據(jù)幀信息獲取單元130接收到用戶(hù)隨機(jī)訪問(wèn)指示時(shí),根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息。該隨機(jī)訪問(wèn)指示比如是用戶(hù)通過(guò)鼠標(biāo)點(diǎn)擊視音頻的進(jìn)度條來(lái)發(fā)出的。如圖14所示為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)幀信息獲取單元的結(jié)構(gòu)示意圖,該數(shù)據(jù)幀信息獲取單元130可以包括時(shí)間戳信息獲取模塊131、關(guān)鍵幀信息獲取模塊132和數(shù)據(jù)幀信息計(jì)算模塊133。時(shí)間戳信息獲取模塊131用于根據(jù)用戶(hù)色隨機(jī)訪問(wèn)指示從進(jìn)度條截取訪問(wèn)時(shí)間點(diǎn)的時(shí)間戳信息。關(guān)鍵幀信息獲取模塊132用于從所述存儲(chǔ)單元內(nèi)的索引信息表內(nèi)找出與所述時(shí)間戳最近的關(guān)鍵幀信息。數(shù)據(jù)幀信息計(jì)算模塊133用于根據(jù)所述時(shí)間戳信息和所述關(guān)鍵幀信息計(jì)算出需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息。播放單元140根據(jù)數(shù)據(jù)幀信息獲取單元130獲取的數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放。具體來(lái)說(shuō),讀取的數(shù)據(jù)幀經(jīng)過(guò)分離后成為獨(dú)立的音頻數(shù)據(jù)和視頻數(shù)據(jù),然后分別經(jīng)過(guò)解碼及渲染后展現(xiàn)給用戶(hù)。本發(fā)明實(shí)施例可以在接收數(shù)據(jù)塊前預(yù)先接收索引信息表,使得在線點(diǎn)播中用戶(hù)隨機(jī)訪問(wèn)時(shí)不再需要跳躍下載索引信息表并讀取數(shù)據(jù),使得在線點(diǎn)播速率加快,提高了用戶(hù)體驗(yàn)。另外本發(fā)明實(shí)施例中音視頻多媒體文件的文件頭僅包含有必要的文件頭信息,減少了冗余信息的不必要傳輸,節(jié)省了網(wǎng)絡(luò)資源。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。 以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種用于快速播放的音視頻多媒體文件格式,其特征在于,所述音視頻多媒體文件由前至后依次由文件頭、媒體流信息、索引塊和數(shù)據(jù)塊組成,所述文件頭用于存放多媒體文件基本屬性信息,所述媒體流信息用于存放媒體流基本屬性信息,所述索引塊用于存放區(qū)分位置的索引信息表,所述數(shù)據(jù)塊用于存放多媒體數(shù)據(jù)。
2.如權(quán)利要求I所述的用于快速播放的音視頻多媒體文件格式,其特征在于,所述文件頭包括簽名,用于標(biāo)識(shí)文件格式類(lèi)型;長(zhǎng)度,用于定義文件頭長(zhǎng)度;版本,用于定義文件格式的版本號(hào);碼率,用于定義整個(gè)文件的碼率;時(shí)間尺度,用于定義文件頭時(shí)間相關(guān)域使用的時(shí)間尺度;時(shí)間基點(diǎn),所述時(shí)間基點(diǎn)與所述時(shí)間尺度的乘積與播放器使用的硬件時(shí)鐘相匹配;播放時(shí)長(zhǎng),用于定義文件播放時(shí)間長(zhǎng)度;媒體流數(shù),用于定義文件包含的媒體流信息塊的個(gè)數(shù);數(shù)據(jù)塊偏移,用于定義數(shù)據(jù)塊在文件中的偏移;主索引記錄個(gè)數(shù),用于定義主索引記錄的數(shù)量。
3.如權(quán)利要求I所述的用于快速播放的音視頻多媒體文件格式,其特征在于,所述媒體流信息包括簽名,用于標(biāo)識(shí)媒體流信息塊;長(zhǎng)度,用于定義媒體流信息塊長(zhǎng)度;版本,用于定義文件格式的版本號(hào);流表示,用于唯一表示文件中的流;流分類(lèi),用于標(biāo)識(shí)流為視頻流或者音頻流;碼率,用于定義這個(gè)流的碼率;時(shí)間長(zhǎng)度,用于定義流時(shí)間戳的時(shí)間尺度;播放時(shí)長(zhǎng),用于定義這個(gè)流的播放時(shí)間長(zhǎng)度;流類(lèi)型,用于定義媒體流的類(lèi)型;視頻音頻流特有數(shù)據(jù),用于定義特有數(shù)據(jù)。
4.如權(quán)利要求I所述的用于快速播放的音視頻多媒體文件格式,其特征在于,所述索引塊包括索引頭和索引記錄,其中, 所述索引頭包括簽名,用于標(biāo)識(shí)索引塊;長(zhǎng)度,用于定義索引塊的長(zhǎng)度;版本,用于定義文件格式的版本號(hào);索引記錄數(shù),用于定義索引表中記錄個(gè)數(shù); 所述索引記錄包括時(shí)間戳,用于記錄對(duì)應(yīng)的時(shí)間戳;流標(biāo)示,用于記錄對(duì)應(yīng)得媒體流;標(biāo)志,用于定義記錄標(biāo)志;偏移,用于記錄對(duì)應(yīng)的文件偏移;幀計(jì)數(shù),用于記錄指向幀的計(jì)數(shù)。
5.如權(quán)利要求I所述的用于快速播放的音視頻多媒體文件格式,其特征在于,所述數(shù)據(jù)塊包括數(shù)據(jù)頭和數(shù)據(jù)幀,其中, 所述數(shù)據(jù)頭包括簽名,用于標(biāo)識(shí)數(shù)據(jù)塊;長(zhǎng)度,用于定義數(shù)據(jù)塊的長(zhǎng)度;幀個(gè)數(shù),用于定義數(shù)據(jù)幀的總個(gè)數(shù); 所述數(shù)據(jù)幀包括大小,用于定義數(shù)據(jù)幀的大??;流標(biāo)示,用于標(biāo)示這個(gè)數(shù)據(jù)幀屬于哪個(gè)媒體流;標(biāo)志,用于定義數(shù)據(jù)幀標(biāo)志;時(shí)間戳,用于定義這個(gè)數(shù)據(jù)幀高的時(shí)間戳;幀數(shù)據(jù),用于定義這個(gè)數(shù)據(jù)幀包含的媒體數(shù)據(jù)。
6.一種快速播放音視頻多媒體文件的文件格式合成方法,其特征在于,所述方法包括 將音視頻多媒體數(shù)據(jù)源分離成音頻數(shù)據(jù)和視頻數(shù)據(jù); 將分離的音頻數(shù)據(jù)和視頻數(shù)據(jù)合成為快速播放的音視頻多媒體文件,所述音視頻多媒體文件由前至后依次由文件頭、媒體流信息、索引塊和數(shù)據(jù)塊組成。
7.一種快速播放音視頻多媒體文件格式的方法,其特征在于,所述方法包括 在接收音視頻多媒體文件數(shù)據(jù)塊前先接收所述音視頻多媒體文件的索引信息表; 將所述索引信息表存儲(chǔ)于用戶(hù)交互界面的存儲(chǔ)單元中;當(dāng)接收到用戶(hù)隨機(jī)訪問(wèn)指示時(shí),根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息; 根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放。
8.如權(quán)利要求7所述的快速播放音視頻多媒體文件格式的方法,其特征在于,所述根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息包括 根據(jù)用戶(hù)色隨機(jī)訪問(wèn)指示從進(jìn)度條截取訪問(wèn)時(shí)間點(diǎn)的時(shí)間戳信息; 從所述存儲(chǔ)單元內(nèi)的索引信息表內(nèi)找出與所述時(shí)間戳最近的關(guān)鍵幀信息; 根據(jù)所述時(shí)間戳信息和所述關(guān)鍵幀信息計(jì)算出需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息。
9.如權(quán)利要求8所述的快速播放音視頻多媒體文件格式的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放包括 根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀; 將所述數(shù)據(jù)幀的數(shù)據(jù)分離成音頻數(shù)據(jù)和/或視頻數(shù)據(jù); 將所述音頻數(shù)據(jù)經(jīng)過(guò)音頻解碼、渲染后輸出至音頻播放數(shù)據(jù)進(jìn)行播放; 將所述視頻數(shù)據(jù)經(jīng)過(guò)視頻解碼、渲染后輸出至用戶(hù)交互界面的播放控制模塊,由用戶(hù)交互界面的播放窗口呈現(xiàn)給用戶(hù)。
10.一種快速播放音視頻多媒體文件的文件格式合成裝置,其特征在于,包括 分離單元,用于將音視頻多媒體數(shù)據(jù)源分離成音頻數(shù)據(jù)和視頻數(shù)據(jù); 合成單元,用于將分離的音頻數(shù)據(jù)和視頻數(shù)據(jù)合成為快速播放的音視頻多媒體文件,所述音視頻多媒體文件由前至后依次由文件頭、媒體流信息、索引塊和數(shù)據(jù)塊組成。
11.一種快速播放音視頻多媒體文件的文件格式的裝置,其特征在于,包括 接收單元,用于在接收音視頻多媒體文件數(shù)據(jù)塊前先接收所述音視頻多媒體文件的索引信息表; 存儲(chǔ)單元,用于存儲(chǔ)所述索引信息表; 數(shù)據(jù)幀信息獲取單元,用于當(dāng)接收到用戶(hù)隨機(jī)訪問(wèn)指示時(shí),根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及所述索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息; 播放單元,用于根據(jù)所述數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放。
12.如權(quán)利要求11所述的快速播放音視頻多媒體文件格式的裝置,其特征在于,所述數(shù)據(jù)巾貞信息獲取單元包括 時(shí)間戳信息獲取模塊,用于根據(jù)用戶(hù)色隨機(jī)訪問(wèn)指示從進(jìn)度條截取訪問(wèn)時(shí)間點(diǎn)的時(shí)間戳信息; 關(guān)鍵幀信息獲取模塊,用于從所述存儲(chǔ)單元內(nèi)的索引信息表內(nèi)找出與所述時(shí)間戳最近的關(guān)鍵巾貞信息; 數(shù)據(jù)幀信息計(jì)算模塊,用于根據(jù)所述時(shí)間戳信息和所述關(guān)鍵幀信息計(jì)算出需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息。
全文摘要
本發(fā)明實(shí)施例提供了一種用于快速播放的音視頻多媒體文件格式、播放方法及裝置,方法包括在接收音視頻多媒體文件數(shù)據(jù)塊前先接收音視頻多媒體文件的索引信息表;將索引信息表存儲(chǔ)于用戶(hù)交互界面的存儲(chǔ)單元中;當(dāng)接收到用戶(hù)隨機(jī)訪問(wèn)指示時(shí),根據(jù)用戶(hù)的隨機(jī)訪問(wèn)指示及索引信息表中的信息得到需要隨機(jī)訪問(wèn)的數(shù)據(jù)幀信息;根據(jù)數(shù)據(jù)幀信息從存儲(chǔ)音視頻多媒體文件的存儲(chǔ)模塊中讀取數(shù)據(jù)幀并播放。本發(fā)明實(shí)施例可以在接收數(shù)據(jù)塊前預(yù)先接收索引信息表,使得在線點(diǎn)播中用戶(hù)隨機(jī)訪問(wèn)時(shí)不再需要跳躍下載索引信息表并讀取數(shù)據(jù),使得在線點(diǎn)播速率加快,提高了用戶(hù)體驗(yàn)。
文檔編號(hào)H04N7/26GK102891997SQ20111020389
公開(kāi)日2013年1月23日 申請(qǐng)日期2011年7月20日 優(yōu)先權(quán)日2011年7月20日
發(fā)明者鐘智將, 劉大衛(wèi), 鐘惟淵 申請(qǐng)人:深圳市快播科技有限公司