ffmpeg - 是否有适用于 linux 的 MS-DRM 客户端库?

标签 ffmpeg mms drm libavformat

我已经使用库(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。我的问题是从哪里得到 key ?它似乎使用 DRM key 对其进行解码。

我查看 ASF 规范,并尝试 patch asfdec.c .现在,我有了获取许可证的 URL 和 key ID。问题可以重写为“是否有适用于 linux 的 MS-DRM 客户端库?” (旧:如何通过 ffmpeg 解码带有 DRM 的 MMS 流 url?)

是否可以使用许可证 url 和 key id 来获取内容 key ?

最佳答案

原则上您可以许可 PlayReady Device Porting Kit来自微软,但它会让你回到 50,000 美元。它是标准的 ANSI C,可以为 Linux 编译,并且可以解密 Windows Media DRM 和 PlayReady ASF 流。我相信在 Linux 上没有其他方法可以做到这一点。

关于ffmpeg - 是否有适用于 linux 的 MS-DRM 客户端库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4191618/

相关文章:

image-processing - ffmpeg - 将回帧合并到具有相同编码的视频

ios - 在iOS中使用Twilio发送彩信

android - 在 Android 中收到的第二个最近的彩信而不是最近的彩信

react-native - 在 IOS 和 Android 上使用 Flutter/React Native 播放 DRM 内容

php - 使用 ffmpeg 将视频转换为 flv 格式在本地工作但在服务器中不工作

android - 如何在 ffmpeg4android 应用程序中执行 ffmpeg 命令

html - FFMPEG mkv 到 mp4 的转换在 HTML5 播放器中缺少音频

video - 如何下载从 mms 协议(protocol)流式传输的视频?

java - 实现试验

android - 智能手机(Android、iOS 等)上的 DRM