我正在开发一个小型系统,用于使用 MSE/EME API 在 Web 上流式传输 protected 内容。
这是我正在使用的一些工具:
- FFMPEG
- Google 的 Shaka-Packager
- webm_crypt
我可以创建 .webm 文件并使用 shaka-packager 将它们打包成 mpd 文件,以便提供给 shaka-player。但紧随其后的是 Clear Key section in the Shaka docs我必须加密 webm 文件需要一对 KeyId
和 Key
。
通过使用 webm_crypt,我可以按照 this document on 2.2.7 创建加密内容但我不知道如何获得 shaka-player DRM 系统的 key 对。
最佳答案
如果您使用的是 Clear Key,则可以使用 key 服务器列表配置播放器。播放器向 key 服务器发出 JSON 请求(请求在 this format 中), key 服务器提供“许可证”—— JSON response containing the Base64-encoded symmetric key and keyId 。然后使用该对称 key 来解密内容。
更新
要将 key ID 与未 protected 内容 key 相关联以使用 ClearKey 进行调试,请为 drm.clearKeys
提供一个 JSON 元素,并将十六进制编码的 keyId 作为 map 的“ key ” “值”是十六进制编码的内容加密 key 。
player.configure({
drm: {
clearKeys: {
'deadbeefdeadbeefdeadbeefdeadbeef': '18675309186753091867530918675309',
'02030507011013017019023029031037': '03050701302303204201080425098033'
}
}
});
在加密时或在随附的 list 文件中将相同的 keyId 与媒体文件相关联。
Encrypting media file with mp4split :
#!/bin/bash
KID=10000000100010001000100000000001
CEK=3a2a1b68dd2bd9b2eeb25e84c4776668
LAURL="http://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1"
PSSH=YOUR_PSSH
mp4split --package_mpd -o audio.mp4 \
--iss.key=${KID}:${CEK} --iss.license_server_url=${LAURL} \
--widevine.key=${KID}:${CEK} --widevine.drm_specific_data=${PSSH} \
oceans-64k.mp4
mp4split --package_mpd -o video-1.mp4 \
--iss.key=${KID}:${CEK} --iss.license_server_url=${LAURL} \
--widevine.key=${KID}:${CEK} --widevine.drm_specific_data=${PSSH} \
oceans-250k.mp4
mp4split --package_mpd -o video-2.mp4 \
--iss.key=${KID}:${CEK} --iss.license_server_url=${LAURL} \
--widevine.key=${KID}:${CEK} --widevine.drm_specific_data=${PSSH} \
oceans-380k.mp4
对于 webm_crypt
,文档非常粗略,但我相信它是通过 -video_options
中的 content_id=0123456789ABCDEF
命令行标志完成的:
foo@bar-linux:~/chromium_code/webm_crypt/webm_crypt$ ./webm_crypt
-i mediafiles/Chrome_44_5sec-chunks_video_only.webm -video true -audio false
-video_options base_file=bear.key,content_id=0123456789012345
-o /home/foo/www/no_crawl/eme/media/Chrome_44_5sec-chunks_video_only-enc_v_0123456789012345.webm
关于html - 如何使用 Clear Key 加密 webm 文件以使用 Google 的 Shaka Player 播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41758639/