2010-11-16 40 views
6

J'ai utilisé les bibliothèques (libavformat et libavcodec) pour décoder certaines URL de diffusion MMS. Mais certains d'entre eux sont protégés par DRM. Lorsque je tente de les décoder, la bibliothèque en avertitExiste-t-il une bibliothèque client MS-DRM pour Linux?

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

La variable s est la AVFormatContext struct. Ma question est où obtenir la clé? Il semble le décoder avec une clé DRM. Je regarde la spécification ASF, et essaie de patch asfdec.c. Maintenant, j'ai l'URL de la licence d'acquisition et l'identifiant de la clé. Le problème peut réécrire comme «existe-t-il une bibliothèque client MS-DRM pour linux? (ancien: comment décoder une URL de diffusion MMS avec DRM par ffmpeg?)

Est-il possible d'utiliser l'URL de licence et l'ID de clé pour obtenir la clé de contenu?

Répondre

5

En principe, vous pouvez concéder sous licence le PlayReady Device Porting Kit de Microsoft, mais cela vous coûtera 50 000 $. Il s'agit d'un standard ANSI C, il sera compilé pour Linux, et il pourra décrypter les flux Windows Media DRM et PlayReady ASF. Je crois qu'il n'y a pas d'autres façons de faire cela sur Linux.