2010-11-16 17 views
6

Ho usato le librerie (libavformat e libavcodec) per decodificare alcuni URL di streaming MMS. Ma alcuni di questi sono protetti da DRM. Quando cerco di decodificarli, la biblioteca vi avvertirà su di essoEsiste una libreria client MS-DRM per 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"); 
    } 
} 

La s variabile è l'AVFormatContext struct. La mia domanda è dove prendere la chiave? Sembra decodificarlo con una chiave DRM.


Guardo la specifica ASF e provo a patch asfdec.c. Ora ho l'URL della licenza di acquisizione e l'ID della chiave. Il problema può riscrivere come 'Esiste una libreria client MS-DRM per linux?' (vecchio: come decodificare un URL di streaming MMS con DRM da ffmpeg?)

È possibile utilizzare l'URL della licenza e l'ID della chiave per ottenere la chiave del contenuto?

risposta

5

In linea di principio, è possibile ottenere in licenza lo PlayReady Device Porting Kit da Microsoft, ma in questo modo verranno ripristinati $ 50.000. È standard ANSI C, verrà compilato per Linux e può decifrare sia Windows Media DRM che PlayReady ASF. Credo che non ci siano altri modi per farlo su Linux.