2015-11-19 2 views
3

Désolé si ma question me semble inappropriée mais je suis un débutant avec la technologie MPEG-DASH et DRM et quelque chose n'est pas clair pour moi. Je regarde les exemples de test de tirets suivants: http://dashif.org/reference/players/javascript/v1.5.1/samples/dash-if-reference-player/index.htmlDifférence entre les systèmes de protection de contenu dans le manifeste MPEG-DASH

En particulier je me concentre sur les exemples "Cablelabs cenc" avec des licences. quelqu'un peut me expliquer la différence entre:

  • CableLabs Cenc ClearKey
  • CableLabs Cenc Widevine
  • CableLabs Cenc Playready

En regardant les manifestes, il n'y a pas de différence entre eux. Seul le paramètre "cenc: default_KID" change. Alors, comment le vidéoprojecteur peut-il comprendre si et quelle licence spécifique est nécessaire?

De plus, pour acquérir la licence, des données d'initialisation sont parfois nécessaires. Que contient exactement cette donnée?

Répondre

7

En MPEG-DASH vous pouvez choisir d'avoir les informations d'initialisation spécifiques à DRM dans l'un des deux endroits:

  • directement dans le RPD (ce que vous appelez le « manifeste » dans votre question), ou
  • Vous pouvez l'avoir dans le "segment init", qui est essentiellement un fragment ISO Base Media Format contenant (typiquement) l'atome 'moov' et - de manière pertinente pour cette question - l'atome 'pssh'. L'atome 'pssh' est important car il contient l'entête spécifique à DRM, tel que le PlayReady one ou le WideVine.

Dans ce cas précis, il est la deuxième option, à savoir vous avez vos informations DRM dans le segment d'initialisation. Plus précisément:

PlayReady

si vous regardez le PlayReady MPD, vous verrez qu'il contient un élément comme celui-ci:

<Representation id="3" mimeType="video/mp4" codecs="avc1.640020" width="1280" height="720" frameRate="25" sar="1:1" startWithSAP="1" bandwidth="2276507"> 
    <BaseURL>video_1280x720_h264-2500k_dashinit.mp4</BaseURL> 
    <SegmentBase indexRangeExact="true" indexRange="1789-2024"> 
     <Initialization range="0-1788"/> 
    </SegmentBase> 
</Representation> 

Si vous regardez l'élément init segment referenced by the <BaseURL> dans un éditeur hexadécimal, vous On verra qu'il a une "boîte" ISO BMFF appelée "pssh", suivie par quelque chose de clairement reconnaissable comme texte Unicode qui lit quelque chose comme <WRMHEADER ... />, qui est l'en-tête de gestion des droits de Microsoft PlayReady. Si vous creusez plus loin, vous y reconnaîtrez une "URL d'acquisition de licence", c'est-à-dire comment un client DRM (comme par exemple Internet Explorer 11 sur Windows 8.1 ou supérieur) peut obtenir la licence.

Widevine

Maintenant, vous pouvez faire la même chose en utilisant la WideVine MPD, qui fait référence à its own init segment from its own <BaseURL> element. Si vous regardez que dans un éditeur hexadécimal, vous y trouverez également une boîte 'pssh', qui à son tour contient un en-tête de gestion des droits spécifique à WideVine. Grâce à cela, un client WideVine DRM (comme par exemple Chrome) peut obtenir une licence WideVine.

+2

Si vous avez déjà besoin d'inspecter l'en-tête PSSH quand il est cuit dans la vidéo, voir: https://github.com/use-sparingly/pywvpssh –