專利名稱:一種mp4格式多媒體數(shù)據(jù)內(nèi)容加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體數(shù)據(jù)加密方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)、信息安全、電子商務(wù)以及軟件技術(shù)的進(jìn)步,出現(xiàn)了一門專門研究內(nèi)容保護(hù)的技術(shù)-數(shù)字版權(quán)管理(DRM),它主要通過對(duì)音視頻數(shù)據(jù)的加密處理,達(dá)到對(duì)內(nèi)容的可控使用。
對(duì)音視頻內(nèi)容的加密,一般采用兩種加密方式第一種是流密碼的方式,如目前廣電系統(tǒng)的CA以及針對(duì)家電終端內(nèi)容保護(hù)的DTCP、HTCP、UCPS等,這種方式加密算法簡單,運(yùn)算速度快,但是安全性不高,一般適用于數(shù)據(jù)吞吐量比較大的場合;另外一種是塊密碼的方式,如DES、3DES、IDEA、AES以及中國的SMS4等算法,它的運(yùn)算比較復(fù)雜,對(duì)資源的耗費(fèi)比較大,安全性比較高,其安全性在于對(duì)密鑰的傳送。在目前的DRM系統(tǒng)中,一般都采用第二種加密方式。
在DRM技術(shù)中,一般對(duì)多媒體內(nèi)容的加密采用以下幾種方式(1)對(duì)需保護(hù)文件全部進(jìn)行加密。這種方式不管保護(hù)的內(nèi)容是什么格式,將其全部當(dāng)作需要加密的數(shù)據(jù)進(jìn)行分塊加密處理。但是經(jīng)過這種方式處理的流媒體文件,由于將流媒體的信息也一起處理了,不能使用流媒體承載協(xié)議,也不能被相應(yīng)的播放器識(shí)別,因此在使用前必須先將整個(gè)文件解密,不能一邊解密一邊使用。而且,將整個(gè)文件解密也增大了對(duì)內(nèi)容失控的風(fēng)險(xiǎn)。對(duì)于大的流媒體文件,整個(gè)文件的解密也需要很大的緩存空間,間接增加了成本。
(2)對(duì)MP4文件的媒體數(shù)據(jù)容器(mdat)內(nèi)容進(jìn)行加密處理這種加密方式首先對(duì)MP4文件進(jìn)行分析,找出相應(yīng)的媒體數(shù)據(jù)容器單元(mdat box),并對(duì)媒體數(shù)據(jù)容器內(nèi)容進(jìn)行加密處理。由于在加密的過程中沒有對(duì)媒體數(shù)據(jù)容器內(nèi)容的類型進(jìn)行區(qū)分,將音頻、視頻以及其它的數(shù)據(jù)一起進(jìn)行了處理。而流媒體服務(wù)器是按照音頻、視頻分開進(jìn)行打包傳送的,所以從網(wǎng)絡(luò)流媒體服務(wù)器端獲取的數(shù)據(jù),播放器無法實(shí)現(xiàn)正確音頻和視頻的解密,所以無法實(shí)現(xiàn)網(wǎng)絡(luò)在線播放,通用性不強(qiáng)。
(3)按照RTP負(fù)載進(jìn)行加密處理,音頻是多幀組合成一個(gè)包,對(duì)于直接對(duì)文件的播放形式而言,如果播放的時(shí)候沒有正確解密,播放器將無法正確識(shí)別音頻幀,將導(dǎo)致嚴(yán)重的數(shù)據(jù)錯(cuò)誤。這種方式不能對(duì)下載播放的節(jié)目進(jìn)行保護(hù),而這對(duì)流媒體可能是最大的需求。
在數(shù)字媒體信源編碼方面,目前比較流行的是基于MPEG2、MPEG1、MPEG4、H.264、AVS公開的標(biāo)準(zhǔn)。此外微軟和Real公司的信源編碼標(biāo)準(zhǔn)在網(wǎng)絡(luò)上也得到了廣泛的使用,但是由于這些標(biāo)準(zhǔn)的私有性,在廣電、IPTV等領(lǐng)域沒有得到使用,同時(shí)在終端方面支持也不多。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是提供一種MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,能應(yīng)用于各種傳輸協(xié)議。
本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案是一種基于幀的MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,包括以下步驟a、對(duì)MP4文件進(jìn)行分析,解析元數(shù)據(jù)容器單元;b、在元數(shù)據(jù)容器單元中查找媒體類型為視頻或音頻的幀信息;c、根據(jù)所述幀信息查找到該幀在媒體數(shù)據(jù)容器中的地址;d、讀取根據(jù)所述地址在媒體數(shù)據(jù)容器查找到幀數(shù)據(jù);e、加密除幀頭以外的幀數(shù)據(jù)。
進(jìn)一步的,所述步驟b包括以下步驟b1、在元數(shù)據(jù)容器單元中收尋mvhd單元;h2、在mvhd單元中收尋trad單元;b3、判斷trad單元中hdlr是否聲明為視頻或音頻;若否進(jìn)入步驟b2;若是進(jìn)入b4;b4、讀取該trad單元對(duì)應(yīng)的采樣塊信息。
更進(jìn)一步的是,所述采樣塊信息包括有,塊數(shù)量、塊對(duì)應(yīng)的采樣塊數(shù)量、采樣塊的偏移地址和大小。
更進(jìn)一步的是,所述步驟b,還包括查找媒體類型為RTP負(fù)載的幀信息。
對(duì)音視頻幀進(jìn)行加密也可以達(dá)到對(duì)MP4文件加密保護(hù)的功能,并且這種方式的使用范圍更廣,可以同時(shí)適用于本地播放和網(wǎng)絡(luò)實(shí)時(shí)播放,而RTP加密的方式只能用于網(wǎng)絡(luò)實(shí)時(shí)播放,無法滿足本地播放的要求。
本發(fā)明的有益效果是可以同時(shí)針對(duì)音頻、視頻、RTP包等進(jìn)行處理,有效地實(shí)現(xiàn)對(duì)mp4文件格式的DRM保護(hù),也可以保證流媒體服務(wù)器和播放器可以正確識(shí)別該mp4文件。適用于采用MP4格式的MPEG4、H.264、AVS以及MOV文件的處理。采用該方法的DRM系統(tǒng),可以脫離流媒體的承載協(xié)議而成為一個(gè)獨(dú)立的系統(tǒng),實(shí)現(xiàn)在多媒體服務(wù)、音視頻發(fā)布、監(jiān)控、IPTV、網(wǎng)絡(luò)媒體內(nèi)容提供、廣電網(wǎng)絡(luò)內(nèi)容保護(hù)等多種場合。
下面結(jié)合附圖和具體例子對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。
圖1基于幀的DRM加密的的流程。
具體實(shí)施方式本發(fā)明根據(jù)多媒體數(shù)據(jù)到解碼器時(shí),一定會(huì)將原始數(shù)據(jù)還原到幀的原理,提出了一種基于幀的MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法。
在MP4文件中,元數(shù)據(jù)是一組描述數(shù)據(jù)本身基本特征和屬性的數(shù)據(jù)。元數(shù)據(jù)MP4文件的元數(shù)據(jù)容器單元(moov box)中。元數(shù)據(jù)容器單元包含有每個(gè)塊(chunk)和每個(gè)采樣塊(sample)的偏移地址、大小等,播放器通過元數(shù)據(jù)容器單元識(shí)別出文件的類型,并進(jìn)行播放操作。
在mp4文件中,幀是采樣塊的一種,采樣塊除了幀以外,還可能是流化的基本單元、其它說明信息基本單元等。多個(gè)采樣塊則組成一個(gè)塊。
MP4文件格式使用的是國際標(biāo)準(zhǔn)IS014496-12多媒體文件格式。目前,采用MP4文件格式的多媒體除了MPEG-4編碼外,還包括H.264、AVS等,蘋果公司的MOV文件也與MP4文件格式基本相似。MP4文件的基本單位為單元(box),在文件層次中主要包括6個(gè)單元,各單元的內(nèi)容見下表
在一個(gè)mp4文件中,ftyp單元和moov單元是必須的,其余單元是可選的。但是實(shí)際上,mdat單元包含的是實(shí)際的音視頻數(shù)據(jù)的內(nèi)容,也是mp4文件的必須部分,只是mdat單元可以以單獨(dú)的文件存在,不需要必須和其它的單元放在一個(gè)文件中。
在不完整的mp4文件中,很多連ftyp單元也不存在,就只有moov和mdat單元。moov單元存放的是關(guān)于媒體信息的說明以及對(duì)mdat單元中數(shù)據(jù)的索引。通過moov單元中的內(nèi)容可以對(duì)應(yīng)查找到mdat單元中具體的音視頻數(shù)據(jù)。moov單元的結(jié)構(gòu)如下表所示
moov單元是由不同的軌(track)單元組成的。在一個(gè)mp4文件中,至少包括5種軌,分別是vide、soun、hint、sdsm、odsm,軌的數(shù)量至少在6個(gè)以上。其中,vide trak表明該視頻軌,soun trak表示為音頻軌,而hint trak則表示為RTP負(fù)載數(shù)據(jù)軌。
stbl軌中數(shù)據(jù)的位置信息和時(shí)間信息的重要對(duì)象,它在文件中的路徑為moov/trak/mdia/minf/stbl,其中stts為采樣塊的解碼時(shí)間對(duì)象,ctts為采樣塊的合成時(shí)間對(duì)象,stss為采樣塊的同步對(duì)象(DRM可以不作分析),在其中給出可以隨機(jī)訪問的樣本號(hào)。Stsd為采樣塊的描述對(duì)象,分為四種類型視頻幀、音頻幀、索引和其它mpeg4流,除了索引類型外,其它的三種樣本描述中都包含mpeg4的基本內(nèi)碼流描述符。Stsz描述采樣塊的大小。Stsc描述了采樣塊和塊之間的關(guān)系,stso對(duì)象描述了塊在文件中的相對(duì)位置關(guān)系。即根據(jù)軌中的說明,可以在madt單元中找到對(duì)應(yīng)的采樣塊。如,視頻軌對(duì)應(yīng)的采樣塊為視頻幀;音頻軌對(duì)應(yīng)的采樣塊為音頻幀;RTP負(fù)載數(shù)據(jù)軌對(duì)應(yīng)的為RTP負(fù)載包。
通過對(duì)以上的分析可以知道,我們?nèi)绻凑找曨l軌的說明對(duì)應(yīng)的采樣塊進(jìn)行加密處理,則可以實(shí)現(xiàn)對(duì)視頻幀的處理,按照音頻軌的說明對(duì)應(yīng)的采樣塊進(jìn)行加密處理,則可以實(shí)現(xiàn)對(duì)音頻幀的處理,按照RTP負(fù)載數(shù)據(jù)軌的說明對(duì)應(yīng)的采樣塊進(jìn)行處理,則可以對(duì)RTP負(fù)載包進(jìn)行加密處理。
如圖1所示,描述的是MP4基于幀的DRM加密的的流程。
1、程序在文件層次上對(duì)MP4文件進(jìn)行分析。找出moov單元。
2、然后在moov單元下一層次收尋mvhd單元。
3、找出mvhd單元后,在mvhd單元里尋找trak單元。
4、對(duì)trak單元包含的所有單元進(jìn)行解析,利用路徑trak/mdia/hdlr/handler_type來判斷該軌是否為視頻軌或者音頻軌。如果不是的話,在mvhd單元里繼續(xù)尋找下一個(gè)trak單元繼續(xù)進(jìn)行以上判斷過程。如果是,進(jìn)入步驟5。
5、讀取該軌對(duì)應(yīng)的塊的數(shù)量,該塊的數(shù)量相關(guān)信息在路徑trak/mdia/minf/stbl/stco/entry_count中得到。
6、隨后讀取第一個(gè)塊對(duì)應(yīng)的采樣塊的數(shù)量,該采樣塊的數(shù)量相關(guān)信息在路徑trak/mdia/minf/stbl/stsc/samples_per_chunk中得到;以及該采樣塊的偏移地址、該采樣塊的偏移地址的相關(guān)信息在路徑trak/mdia/minf/stbl/stco/chunk_offset中得到。
7、讀取采樣塊的大小,該采樣塊的大小信息在路徑trak/mdia/minf/stbl/stsz/sample_size中得到。
8、根據(jù)這些值讀取在madt單元中的幀數(shù)據(jù),然后將幀頭以外的數(shù)據(jù)進(jìn)行加密。判斷當(dāng)前塊是否處理完成,若否進(jìn)入步驟9;若是,進(jìn)入步驟10。
9、計(jì)算下一個(gè)采樣塊的偏移地址,即上一個(gè)采樣塊的偏移地址加其采樣塊的大小,回到步驟7繼續(xù)進(jìn)行加密處理。
10、繼續(xù)進(jìn)行下一個(gè)塊的處理。處理的過程與上一個(gè)塊處理過程相同,直至所有塊處理完畢。
以上方法除適用于mp4格式音頻和視頻幀的加密處理。還可以進(jìn)行基于RTP負(fù)載進(jìn)行數(shù)據(jù)內(nèi)容的加密處理,具體只需要在步驟4種查詢RTP負(fù)載數(shù)據(jù)軌即可。
本方法已經(jīng)經(jīng)過試驗(yàn)驗(yàn)證,它的優(yōu)點(diǎn)是不僅適用于實(shí)時(shí)點(diǎn)播、組播類型的流媒體的處理,也同時(shí)適用于下載模式的多媒體的處理,與流媒體承載協(xié)議無關(guān),支持各種下載、傳輸方式,通用性非常強(qiáng),應(yīng)用范圍非常廣泛。將本方案的思想進(jìn)行擴(kuò)展,可以使用于對(duì)各種多媒體的內(nèi)容保護(hù)處理。
權(quán)利要求
1.一種MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,其特征在于,包括以下步驟a、對(duì)MP4文件進(jìn)行分析,解析元數(shù)據(jù)容器單元;b、在元數(shù)據(jù)容器單元中查找媒體類型為視頻或音頻的幀信息;c、根據(jù)所述幀信息查找到該幀在媒體數(shù)據(jù)容器中的地址;d、讀取根據(jù)所述地址在媒體數(shù)據(jù)容器查找到幀數(shù)據(jù);e、加密除幀頭以外的幀數(shù)據(jù)。
2.如權(quán)利要求
1所述一種MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,其特征在于,所述步驟b包括以下步驟b1、在元數(shù)據(jù)容器單元中收尋mvhd單元;b2、在mvhd單元中收尋trad單元;b3、判斷trad單元中hdlr是否聲明為視頻或音頻;若否進(jìn)入步驟b2;若是進(jìn)入步驟b4;b4、讀取該trad單元對(duì)應(yīng)的采樣塊信息。
3.如權(quán)利要求
2所述一種MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,其特征在于,所述采樣塊信息包括有,塊數(shù)量、采樣塊類型、塊對(duì)應(yīng)的采樣塊數(shù)量、采樣塊的偏移地址和大小。
4.如權(quán)利要求
1所述一種MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,其特征在于,所述步驟b,還包括查找媒體類型為RTP負(fù)載的幀信息。
專利摘要
本發(fā)明涉及多媒體數(shù)據(jù)加密方法。本發(fā)明提供一種基于幀的MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,可以應(yīng)用于各種傳輸協(xié)議。所采用的技術(shù)方案是,一種MP4格式多媒體數(shù)據(jù)內(nèi)容加密方法,包括以下步驟a.對(duì)MP4文件進(jìn)行分析,解析元數(shù)據(jù)容器單元;b.在元數(shù)據(jù)容器單元中查找媒體類型為視頻或音頻的幀信息;c.根據(jù)所述幀信息查找到該幀在媒體數(shù)據(jù)容器中的地址;d.讀取根據(jù)所述地址在媒體數(shù)據(jù)容器查找到幀數(shù)據(jù);e.加密除幀頭以外的幀數(shù)據(jù)。采用本發(fā)明所述基于音視頻幀的MP4格式多媒體數(shù)據(jù)的加密方法,有效地實(shí)現(xiàn)對(duì)MP4文件格式的DRM保護(hù),也可以保證流媒體服務(wù)器和播放器可以正確識(shí)別該MP4文件。
文檔編號(hào)H04N7/26GK1997146SQ200610022555
公開日2007年7月11日 申請(qǐng)日期2006年12月20日
發(fā)明者劉賢洪, 任飛, 張新法, 胡敏 申請(qǐng)人:四川長虹電器股份有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan