2010-11-16 78 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上沒有其他方法可以做到這一點。

相關問題