Is there an MS-DRM client library for Linux?

I used libraries (libavformat and libavcodec) to decode some MMS streams. 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 an AVFormatContext structure. My question is where to get the key? It seems to be decoding it using a DRM key.


I am looking at ASF Spec and trying patch asfdec.c . Now I have a license URL and a key identifier. The problem can be rewritten as "Is there an MS-DRM client library for Linux?" (old: how to decode MMS transmission URL using DRM using ffmpeg?)

Can I use the license URL and key identifier to get the content key?

+6
ffmpeg libavformat mms drm
source share
1 answer

In principle, you can license Microsoft's PlayReady Device Porting Kit , but it will return you $ 50,000. This is standard ANSI C, it will compile for Linux, and it can decrypt both Windows Media DRM streams and PlayReady ASF streams. I believe that on Linux there is no other way to do this.

+5
source share

All Articles