2010-11-16 49 views
6

我已经使用库(libavformat和libavcodec)来解码一些MMS流式URL。但其中一些受到DRM的保护。当我试图把它们解码,图书馆将发出警告它是否有适用于Linux的MS-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规范,并尝试到patch asfdec.c。现在,我拥有获取许可证URL和密钥ID。问题可以重写为'是否有一个适用于Linux的MS-DRM客户端库?' (旧:如何通过ffmpeg解码带有DRM的MMS流媒体网址?)

是否可以使用许可证URL和密钥ID来获取内容密钥?

回答

5

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

相关问题