Is there a MS-DRM client library for linux?
Asked Answered
G

1

6

I have used the libraries (libavformat and libavcodec) to decode some MMS streaming urls. But some of them are protected by DRM. When I try to decode them, the library will warn about it

In 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");
    }
}

The variable s is the struct AVFormatContext. My question is where to get the key? It seems to decode it with a DRM key.


I look the ASF Spec, and try to patch asfdec.c. Now, I have the acquiring license URL and key id. The problem can rewrite as 'Is there a MS-DRM client library for linux?' (old: How to decode a MMS streaming url with DRM by ffmpeg?)

Is it possible to use the license url and key id to get content key ?

Grisons answered 16/11, 2010 at 6:10 Comment(0)
C
6

In principle you can license the PlayReady Device Porting Kit from Microsoft, but it's gonna set you back $50,000. It is standard ANSI C, it will compile for Linux, and it can decrypt both Windows Media DRM and PlayReady ASF streams. I believe there are no other ways to do this on Linux.

Cablet answered 25/1, 2011 at 8:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.