2010-11-16 18 views
6

Ich habe die Bibliotheken (libavformat und libavcodec) verwendet, um einige MMS-Streaming-URLs zu dekodieren. Aber einige von ihnen sind durch DRM geschützt. Wenn ich versuche, sie zu entschlüsseln, wird die Bibliothek darüber warnenGibt es eine MS-DRM-Client-Bibliothek für Linux?

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

Die Variable s die Struktur AVFormatContext ist. Meine Frage ist, wo man den Schlüssel bekommt? Es scheint, es mit einem DRM-Schlüssel zu entschlüsseln.


Ich sehe die ASF Spec, und versuchen zu patch asfdec.c. Jetzt habe ich die Acquiring-Lizenz-URL und die Schlüssel-ID. Das Problem kann neu geschrieben werden als "Gibt es eine MS-DRM-Client-Bibliothek für Linux?" (alt: Wie man eine MMS-Streaming-URL mit DRM durch ffmpeg dekodiert?)

Ist es möglich, die Lizenz-URL und die Schlüssel-ID zu verwenden, um den Inhaltsschlüssel zu erhalten?

Antwort

5

Im Prinzip können Sie die PlayReady Device Porting Kit von Microsoft lizenzieren, aber es wird Sie $ 50.000 zurückstellen. Es ist Standard ANSI C, es wird für Linux kompilieren, und es kann Windows Media DRM und PlayReady ASF Streams entschlüsseln. Ich glaube, es gibt keine anderen Möglichkeiten, dies unter Linux zu tun.