我正在构建基于订阅的视频点播服务。为了保护内容,我选择Widevine和Azure Media Services进行许可交付,每100个许可的费用为0.20美元。 Shaka包装机,用于媒体包装。
我关注了this guide并得到了:
Created key nb:kid:UUID:d2c69XXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX with key value XXXXXXXXXXXXXXXXf7Kc7g==
PlayReady License Key delivery URL: https://xxxxxxx.keydelivery.centralindia.media.azure.net/PlayReady/
Widevine License Key delivery URL: https://xxxxxxx.keydelivery.centralindia.media.azure.net/Widevine/?KID=d2c69XXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Added authorization policy: nb:ckpid:UUID:5274f7da-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Shaka Packager Documentation
$ packager <stream_descriptor> ... \
--enable_widevine_encryption \
--key_server_url <key_server_url> \
--content_id <content_id> \
--signer <signer> --aes_signing_key <aes_signing_key> \
--aes_signing_iv <aes_signing_iv> \
[Other options, e.g. DASH options, HLS options]
所以我有key_server_url
,content_id
我在哪里找到aes_signing_key
和aes_signing_iv
?
指向文档和示例的链接是在使用Widevine密钥服务器时使用的,API返回的信息链接到该页面上的“ Widevine DRM通用加密API”。
请注意,未经许可,该文档的链接可能无法工作,但是如果您通过Google搜索API的标题,通常可以看到一个版本作为示例。
在您的情况下,您可能想使用Shaka文档中[使用原始密钥]的说明:https://google.github.io/shaka-packager/html/tutorials/raw_key.html#using-raw-key
这包括类似的示例:
$ packager \
in=h264_baseline_360p_600.mp4,stream=audio,output=audio.mp4,drm_label=AUDIO \
in=h264_baseline_360p_600.mp4,stream=video,output=h264_360p.mp4,drm_label=SD \
in=h264_main_480p_1000.mp4,stream=video,output=h264_480p.mp4,drm_label=SD \
in=h264_main_720p_3000.mp4,stream=video,output=h264_720p.mp4,drm_label=HD \
in=h264_high_1080p_6000.mp4,stream=video,output=h264_1080p.mp4,drm_label=HD \
--enable_raw_key_encryption \
--keys label=AUDIO:key_id=f3c5e0361e6654b28f8049c778b23946:key=a4631a153a443df9eed0593043db7519,label=SD:key_id=abba271e8bcf552bbd2e86a434a9a5d9:key=69eaa802a6763af979e8d1940fb88392,label=HD:key_id=6d76f25cb17f5e16b8eaef6bbf582d8e:key=cb541084c99731aef4fff74500c12ead \
--mpd_output h264.mpd
对于'key_Id',您使用返回的密钥UUID,对于'key =',您使用返回的'密钥值'。
尽管这里不需要作为输入,但是为了完整起见,Widevine API中的初始化向量'aes_signing_iv'通常不是秘密值。它只是一个“种子”值,用于启动AES加密的块初始化。它可以创建并传递给打包程序,对于每个内容,通常只是一个随机的8或16字节IV。