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?
ffmpeg libavformat mms drm
qrtt1
source share