我已经使用库(libavformat 和 libavcodec)来解码一些 MMS 流 url。但其中一些受DRM保护。当我尝试解码它们时,库会发出警告
在 libavformat/asfdec.c 中:
if (!s->keylen) {
if (!guidcmp(&g, &ff_asf_content_encryption)) {
av_log(s, AV_LOG_WARNING, "DRM protected stream detected, decoding will likely fail!\n");
} else if (!guidcmp(&g, &ff_asf_ext_content_encryption)) {
av_log(s, AV_LOG_WARNING, "Ext DRM protected stream detected, decoding will likely fail!\n");
} else if (!guidcmp(&g, &ff_asf_digital_signature)) {
av_log(s, AV_LOG_WARNING, "Digital signature detected, decoding will likely fail!\n");
}
}
变量 s 是结构 AVFormatContext。我的问题是从哪里得到钥匙?它似乎使用 DRM 密钥对其进行解码。
我查看了 ASF 规范,并尝试修补 asfdec.c。现在,我有了获取许可证的 URL 和密钥 ID。问题可以重写为“是否有适用于 linux 的 MS-DRM 客户端库?” (旧:如何通过 ffmpeg 解码带有 DRM 的 MMS 流 url?)
是否可以使用许可证 url 和密钥 id 来获取内容密钥?