我想打,我已經使用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,所以這些都是比較新的,我可能犯了一些明顯的錯誤。如果有人能幫忙,我會很感激任何建議。
看起來您的代碼實際上可以播放CENC加密視頻,正如您使用simple.info中的WEBM文件所證明的那樣。它可能代碼對MP4有一些問題,但看起來問題更多的是CENC加密步驟。你能夠分享視頻的鏈接嗎? – Mick
你可以給我們chrome的內容:// media-internals /?當文件加載時,應該說「video_decoder \t DecryptingVideoDecoder」。如果沒有,那麼瀏覽器不會將其檢測爲加密流。 –