使用Azure媒体服务通过shaka打包程序交付DRM许可证吗?

问题描述 投票:2回答:1

我正在构建基于订阅的视频点播服务。为了保护内容,我选择WidevineAzure 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_urlcontent_id

我在哪里找到aes_signing_keyaes_signing_iv

azure video-streaming drm widevine
1个回答
2
投票

指向文档和示例的链接是在使用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。

© www.soinside.com 2019 - 2024. All rights reserved.