本發(fā)明涉及文件格式技術(shù)領(lǐng)域,具體為一種ebh文件格式和ebh文件讀取方法。
背景技術(shù):
在線教育視頻點(diǎn)播技術(shù)采用mpeg,h.263,h.264,和h.265壓縮的通用大容量視頻文件,常見的在線視頻文件格式有avi、mpeg、mov、rm等。目前mpeg格式主要有三個(gè)壓縮標(biāo)準(zhǔn),即:mpeg-1、mpeg-2、和mpeg-4。mpeg-1:這種視頻格式的文件擴(kuò)展名包括.mpg、.mlv、.mpe、.mpeg及vcd光盤中的.dat文件等。mpeg-2:這種視頻格式的文件擴(kuò)展名包括.mpg、.mpe、.mpeg、.m2v及dvd光盤上的.vob文件等。mpeg-4:這種視頻格式的文件擴(kuò)展名包括.dsf、.mov和dtvxavi等。divx格式是由mpeg-4衍生出的另一種視頻編碼(壓縮)標(biāo)準(zhǔn),也即我們通常所說(shuō)的dvdrip格式,除些之外,常見的可用做其他用途的視頻格式還有dv-avi、mov、asf、wmv等,不同的格式用在不同的軟件環(huán)境中?,F(xiàn)有的視頻文件明顯的缺點(diǎn)是:文件數(shù)據(jù)量龐大,在網(wǎng)絡(luò)傳送浪費(fèi)網(wǎng)絡(luò)寬帶資源,存儲(chǔ)時(shí)需要更大的存儲(chǔ)空間;存在及其容易被盜版的技術(shù)風(fēng)險(xiǎn),這類視頻文件用常用的播放器都可以進(jìn)行視頻播放,老師制作的教學(xué)片或者微課極其容易被惡意盜用和惡意傳播;網(wǎng)絡(luò)傳輸速度慢,無(wú)法實(shí)現(xiàn)大規(guī)模并發(fā)播放。鑒于上述提到的問題,本發(fā)明設(shè)計(jì)一種ebh文件格式和ebh文件的讀取方法,以解決上述提到的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種ebh文件格式和ebh文件讀取方法,以解決上述背景技術(shù)中提出的文件數(shù)據(jù)量龐大,在網(wǎng)絡(luò)傳送浪費(fèi)網(wǎng)絡(luò)寬帶資源,存儲(chǔ)時(shí)需要更大的存儲(chǔ)空間;存在及其容易被盜版的技術(shù)風(fēng)險(xiǎn),這類視頻文件用常用的播放器都可以進(jìn)行視頻播放,老師制作的教學(xué)片或者微課極其容易被惡意盜用和惡意傳播;網(wǎng)絡(luò)傳輸速度慢,無(wú)法實(shí)現(xiàn)大規(guī)模并發(fā)播放的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種ebh文件格式,所述ebh文件格式包括ebh文件描述頭、ebh小節(jié)描述頭和ebh小節(jié)數(shù)據(jù)體。
優(yōu)選的,所述ebh文件描述頭用來(lái)記錄整個(gè)微課視頻的pagecount小節(jié)數(shù)、ident標(biāo)識(shí)、version版本號(hào)、bgcolortype視頻背景、canvasheight視頻高度、canvaswidth視頻寬度、publishcode發(fā)布碼、password用戶密碼,共有44個(gè)固定字節(jié)。
優(yōu)選的,所述ebh小節(jié)描述頭用來(lái)記錄每個(gè)小節(jié)微課視頻的pagecaption小節(jié)名稱、width小節(jié)視頻寬度、height小節(jié)視頻高度、bgcolortype小節(jié)視頻背景類型、position小節(jié)視頻在文件中開始的位置、size小節(jié)視頻大小、playtime時(shí)間長(zhǎng)度,共有76個(gè)固定字節(jié)。
優(yōu)選的,所述ebh小節(jié)數(shù)據(jù)體用來(lái)記錄微課視頻的drawingtool小節(jié)體類型、acmindex聲音序號(hào)、styletype樣式類型、size數(shù)據(jù)段大小、data視頻數(shù)據(jù)段,在ebh文件格式中的ebh小節(jié)數(shù)據(jù)體由小節(jié)描述頭position到size數(shù)據(jù)段由n個(gè)小節(jié)數(shù)據(jù)體組成。
優(yōu)選的,所述視頻數(shù)據(jù)段中記錄有canvasstreasm、imagestream、memorynormal、memorycompression、bgimagestream、logojpgstream、mp3stream、flashstream、fileobjstream、memoryfile,且每一個(gè)數(shù)據(jù)流都有一個(gè)streamzlibheaderv3文件頭。
優(yōu)選的,所述canvasstreasm為圖像框數(shù)據(jù)流、imagestream為圖像數(shù)據(jù)流、memorynormal為普通內(nèi)存數(shù)據(jù)流、memorycompression為壓縮內(nèi)存數(shù)據(jù)流、bgimagestream為圖像背景數(shù)據(jù)流、logojpgstream為logo數(shù)據(jù)流、mp3stream為mp3音頻數(shù)據(jù)流、flashstream為flash視頻數(shù)據(jù)流、fileobjstream為目標(biāo)文件數(shù)據(jù)流、memoryfile為內(nèi)存數(shù)據(jù)流。
優(yōu)選的,該ebh文件的讀取方法的具體步驟為:
S1:播放waveinstream,通過ebh播放機(jī)載入ebh視頻文件時(shí),播放機(jī)先解析ebh文件描述頭前44個(gè)固定字節(jié)是否為ebh文件;
S2:通過加載ebh文件頭,判斷標(biāo)識(shí)、版本、密碼、發(fā)布碼,計(jì)算循環(huán)pagecount次,計(jì)算總的播放時(shí)間,播放器上呈現(xiàn)播放總時(shí)間和進(jìn)度條;
S3:循環(huán)播放取出的第三小節(jié)數(shù)據(jù)體,小節(jié)數(shù)據(jù)體中有streamzlibpagev31、streamzlibpagev32、streamzlibpagev33、……、streamzlibpagev3n,以及data等數(shù)據(jù)流信息。如果用戶單擊第3小節(jié)視頻,此時(shí),文件描述頭pagecount=3,取出data中第3小節(jié)數(shù)據(jù),并將第3小節(jié)數(shù)據(jù)分類成canvasstreasm、imagestream、memorynormal、memorycompression、bgimagestream、logojpgstream、mp3stream、flashstream、fileobjstream、memoryfile等數(shù)據(jù)流類別;
S4:依次調(diào)用canvasstreasm、imagestream、memorynormal、memorycompression、bgimagestream、logojpgstream、mp3stream、flashstream、fileobjstream、memoryfile數(shù)據(jù);
S5:依據(jù)acmindex和sleeptickcount調(diào)整延時(shí)和同步;
S6:播放結(jié)束,進(jìn)入下一個(gè)小節(jié)。
優(yōu)選的,所述步驟s1解析ebh文件描述頭具體是通過判斷ebh文件描述頭的ident的值進(jìn)行判斷,如果ident的數(shù)值是“ebh”,文件檢查通過,那么再跟據(jù)ebh文件描述頭44固定字節(jié)中的pagecount循環(huán)解析視頻ebh小節(jié)描述頭并生成顯示視頻。
優(yōu)選的,所述步驟s4中canvasstreasm為圖像框數(shù)據(jù)流、imagestream為圖像數(shù)據(jù)流、memorynormal為普通內(nèi)存數(shù)據(jù)流、memorycompression為壓縮內(nèi)存數(shù)據(jù)流、bgimagestream為圖像背景數(shù)據(jù)流、logojpgstream為logo數(shù)據(jù)流、mp3stream為mp3音頻數(shù)據(jù)流、flashstream為flash視頻數(shù)據(jù)流、fileobjstream為目標(biāo)文件數(shù)據(jù)流、memoryfile為內(nèi)存數(shù)據(jù)流,且每一個(gè)數(shù)據(jù)流都有一個(gè)streamzlibheaderv3文件頭,然后進(jìn)行播放。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:一種ebh視頻文件格式和該格式的讀取方法,使得老師制作出的微課視頻容量小,網(wǎng)絡(luò)傳送快,不容易被盜版,需專用ebh播放器才可以解密播放,文件小,矢量視頻,容量小,一小時(shí)時(shí)長(zhǎng)的文件代有聲音、動(dòng)畫、書寫軌跡小于10m,節(jié)省網(wǎng)絡(luò)存儲(chǔ)空間,獨(dú)特的專用播放器,為加密的獨(dú)特視頻文件,需ebh專用播放器才可以播放,文件網(wǎng)絡(luò)傳輸速度快,適合實(shí)現(xiàn)大規(guī)模并發(fā)播放,本發(fā)明技術(shù)有效地保護(hù)了老師制作視頻課件版權(quán)、降低了存儲(chǔ)成本,更加適合網(wǎng)絡(luò)上大規(guī)模并發(fā)播放。
附圖說(shuō)明
圖1為本發(fā)明ebh文件讀取流程圖;
圖2為本發(fā)明ebh文件結(jié)構(gòu)圖;
圖3為本發(fā)明ebh小節(jié)體播放示意圖;
圖4為本發(fā)明ebh文件描述頭表格;
圖5為本發(fā)明ebh小節(jié)描述頭表格;
圖6為本發(fā)明ebh小節(jié)數(shù)據(jù)體表格。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參閱圖2-5,本發(fā)明提供一種技術(shù)方案:一種ebh文件格式,所述ebh文件格式包括ebh文件描述頭、ebh小節(jié)描述頭和ebh小節(jié)數(shù)據(jù)體。
其中,所述ebh文件描述頭用來(lái)記錄整個(gè)微課視頻的pagecount小節(jié)數(shù)、ident標(biāo)識(shí)、version版本號(hào)、bgcolortype視頻背景、canvasheight視頻高度、canvaswidth視頻寬度、publishcode發(fā)布碼、password用戶密碼,共有44個(gè)固定字節(jié),所述ebh小節(jié)描述頭用來(lái)記錄每個(gè)小節(jié)微課視頻的pagecaption小節(jié)名稱、width小節(jié)視頻寬度、height小節(jié)視頻高度、bgcolortype小節(jié)視頻背景類型、position小節(jié)視頻在文件中開始的位置、size小節(jié)視頻大小、playtime時(shí)間長(zhǎng)度,共有76個(gè)固定字節(jié),所述ebh小節(jié)數(shù)據(jù)體用來(lái)記錄微課視頻的drawingtool小節(jié)體類型、acmindex聲音序號(hào)、styletype樣式類型、size數(shù)據(jù)段大小、data視頻數(shù)據(jù)段,在ebh文件格式中的ebh小節(jié)數(shù)據(jù)體由小節(jié)描述頭position到size數(shù)據(jù)段由n個(gè)小節(jié)數(shù)據(jù)體組成,所述視頻數(shù)據(jù)段中記錄有canvasstreasm、imagestream、memorynormal、memorycompression、bgimagestream、logojpgstream、mp3stream、flashstream、fileobjstream、memoryfile,且每一個(gè)數(shù)據(jù)流都有一個(gè)streamzlibheaderv3文件頭,所述canvasstreasm為圖像框數(shù)據(jù)流、imagestream為圖像數(shù)據(jù)流、memorynormal為普通內(nèi)存數(shù)據(jù)流、memorycompression為壓縮內(nèi)存數(shù)據(jù)流、bgimagestream為圖像背景數(shù)據(jù)流、logojpgstream為logo數(shù)據(jù)流、mp3stream為mp3音頻數(shù)據(jù)流、flashstream為flash視頻數(shù)據(jù)流、fileobjstream為目標(biāo)文件數(shù)據(jù)流、memoryfile為內(nèi)存數(shù)據(jù)流。
請(qǐng)參閱圖1和6,本發(fā)明提供一種技術(shù)方案:一種ebh文件的讀取方法,該ebh文件的讀取方法的具體步驟為:
S1:播放waveinstream,通過ebh播放機(jī)載入ebh視頻文件時(shí),播放機(jī)先解析ebh文件描述頭前44個(gè)固定字節(jié)是否為ebh文件,解析ebh文件描述頭具體是通過判斷ebh文件描述頭的ident的值進(jìn)行判斷,如果ident的數(shù)值是“ebh”,文件檢查通過,那么再跟據(jù)ebh文件描述頭44固定字節(jié)中的pagecount循環(huán)解析視頻ebh小節(jié)描述頭并生成顯示視頻;
S2:通過加載ebh文件頭,判斷標(biāo)識(shí)、版本、密碼、發(fā)布碼,計(jì)算循環(huán)pagecount次,計(jì)算總的播放時(shí)間,播放器上呈現(xiàn)播放總時(shí)間和進(jìn)度條;
S3:循環(huán)播放取出的第三小節(jié)數(shù)據(jù)體,小節(jié)數(shù)據(jù)體中有streamzlibpagev31、streamzlibpagev32、streamzlibpagev33、……、streamzlibpagev3n,以及data等數(shù)據(jù)流信息。如果用戶單擊第3小節(jié)視頻,此時(shí),文件描述頭pagecount=3,取出data中第3小節(jié)數(shù)據(jù),并將第3小節(jié)數(shù)據(jù)分類成canvasstreasm、imagestream、memorynormal、memorycompression、bgimagestream、logojpgstream、mp3stream、flashstream、fileobjstream、memoryfile等數(shù)據(jù)流類別;
S4:依次調(diào)用canvasstreasm、imagestream、memorynormal、memorycompression、bgimagestream、logojpgstream、mp3stream、flashstream、fileobjstream、memoryfile數(shù)據(jù),所述步驟s4中canvasstreasm為圖像框數(shù)據(jù)流、imagestream為圖像數(shù)據(jù)流、memorynormal為普通內(nèi)存數(shù)據(jù)流、memorycompression為壓縮內(nèi)存數(shù)據(jù)流、bgimagestream為圖像背景數(shù)據(jù)流、logojpgstream為logo數(shù)據(jù)流、mp3stream為mp3音頻數(shù)據(jù)流、flashstream為flash視頻數(shù)據(jù)流、fileobjstream為目標(biāo)文件數(shù)據(jù)流、memoryfile為內(nèi)存數(shù)據(jù)流,且每一個(gè)數(shù)據(jù)流都有一個(gè)streamzlibheaderv3文件頭,然后進(jìn)行播放;
S5:依據(jù)acmindex和sleeptickcount調(diào)整延時(shí)和同步;
S6:播放結(jié)束,進(jìn)入下一個(gè)小節(jié)。
盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同物限定。