2015-09-28 37 views
1

我想打,我已經使用MP4box這些選項CENC加密視頻:凡XML文件指定clearKey加密如何使用HTML5 <video>標籤回放CENC加密的MP4視頻?

MP4Box -crypt drm_file_gpac_clear.xml BigBuckBunny.mp4 -out BigBuckBunny_cenc.mp4 

。這是一個從GPAC網站採取https://gpac.wp.mines-telecom.fr/mp4box/encryption/common-encryption/

<?xml version="1.0" encoding="UTF-8"?> 
<GPACDRM type="CENC AES-CTR"> 
<DRMInfo type="pssh" version="1" cypherOffset="9" cypherKey="0x6770616363656E6364726D746F6F6C31" cypherIV="0x00000000000000000000000000000001"> 
<BS ID128="0x6770616363656E6364726D746F6F6C31"/> 
<BS value="2" bits="32"/> 
<BS ID128="0x279926496a7f5d25da69f2b3b2799a7f"/> 
<BS ID128="0x676cb88f302d10227992649885984045"/> 
<BS bits="8" string="CID=Toto"/> 
<BS ID128="0xccc0f2b3b279926496a7f5d25da692f6"/> 
<BS ID128="0xccc0f2b3b279926496a7f5d25da692d6"/> 
</DRMInfo> 
<CrypTrack trackID="1" IsEncrypted="1" IV_size="16" first_IV="0x0a610676cb88f302d10ac8bc66e039ed" saiSavedBox="senc"> 
<key KID="0x279926496a7f5d25da69f2b3b2799a7f" value="0xccc0f2b3b279926496a7f5d25da692f6"/> 
</CrypTrack> 
</GPACDRM> 

要玩這個了,我有一個HTML文件,其中包括:

<video autoplay id="video1" controls src="BigBuckBunny_cenc.mp4" type="video/mp4"></video> 

和JS:

var KEY = new Uint8Array([ 
    0xcc, 0xc0, 0xf2, 0xb3, 0xb2, 0x79, 0x92, 0x64, // this is key for MP4 file 
    0x96, 0xa7, 0xf5, 0xd2, 0x5d, 0xa6, 0x92, 0xf6 // encrypted with drm_file_gpac_clear.xml 
]); 

var config = [ 
    { 
    initDataType: "cenc", 
    videoType: "video/mp4", 
    } 
]; 

var video = document.getElementById('video1'); 
video.addEventListener('encrypted', handleEncrypted, false); 

加上其他代碼這是不這裏有關,因爲我的問題是'加密'事件沒有被解僱。

這起到很好,如果我把一個未加密的文件在地方加密之一,如果我從http://simpl.info/eme/clearkey/替換成WebM檔案,並相應地更改密鑰和配置(「查看頁面源代碼」在該網址上它也起着罰款細節)。所以它播放一個加密文件(當然,在這種情況下,'encrypted'事件被激發),但沒有一個我用MP4box加密。

我試過在IE 11.0.9600.18036,Firefox 41.0,Chrome 45.0.2454.93米和Chrome 47.0.2516.0 canary(64位)中使用。

我看了一下MP4文件和MP4資源管理器,它有我被告知期望的盒子,如encv,sinf和schm。

我在過去的幾個星期裏一直試圖瞭解CENC,所以這些都是比較新的,我可能犯了一些明顯的錯誤。如果有人能幫忙,我會很感激任何建議。

+0

看起來您的代碼實際上可以播放CENC加密視頻,正如您使用simple.info中的WEBM文件所證明的那樣。它可能代碼對MP4有一些問題,但看起來問題更多的是CENC加密步驟。你能夠分享視頻的鏈接嗎? – Mick

+0

你可以給我們chrome的內容:// media-internals /?當文件加載時,應該說「video_decoder \t DecryptingVideoDecoder」。如果沒有,那麼瀏覽器不會將其檢測爲加密流。 –

回答

0

我把同樣的問題上https://github.com/gpac/gpac/issues/265(一GPAC/MP4box論壇),並得到了rbouqueau

這個答覆我沒有時間,現在做了詳細的解答,但它可以工作。 你應該能夠在github上找到來自其他人的例子 或在我們之前的sourceforge跟蹤器/論壇上。

什麼是錯的,你的情況是加密方案:您使用的是 GPAC特定的一個,而你可能意味着使用ClearKey或 的Widevine/PlayReady的根據您所靶向的平臺。

這似乎是正確的,就它而言。我以爲xml文件是因爲原始文件中的註釋而使用ClearKey:

無論如何它不是,所以我一直在尋找一個使用ClearKey的等效文件。

這些可能幫助:

googlegroups.com/a/chromium.org/group/graphics-dev/attach/dcaad1f1cb85e3eb/Clearkey_encryption_using_MP4BOX.pdf

html5.cablelabs.com/mse-eme/doc /創建。HTML

dvcs.w3.org/hg/html-media/raw-file/ff10d356cc07/encrypted-media/cenc-format.html (見第4節)

不過,我還沒有拿到它的工作......但希望上述可能仍然有助於其他人解決這個問題。

相關問題