0
votes

Est-il possible de décrypter un contenu DRM HLS dans Windows?

Je dois développer une fonction qui décrypte un contenu DRM HLS à l'aide de video.js lib. J'ai récupéré ce problème et je l'ai trouvé ( https://docs.microsoft.com/ko-kr/azure/media-services/previous/media-services-protect-hls-with-fairplay ) donc j'ai utilisé playready comme ci-dessous

const setPlayerForDashHLS = (src, type, key, licenseURL) => {
                    const customData = DRM_TYPE + SITE_ID + key;

                    player.src({
                        src: src,
                        type: type,
                        keySystems: {
                            'com.microsoft.playready': {
                                url: licenseURL,
                                licenseHeaders: {
                                    'pallycon-customdata': customData
                                }
                            }
                        }
                    });
                }

mais cela ne fonctionne pas pour lire la vidéo DRM HLS et ne rien imprimer sur un journal d'erreurs. Je veux savoir comment y jouer.


0 commentaires

3 Réponses :


0
votes

Il existe un plugin officiel pour VideoJS qui prend en charge la lecture DRM, tirant parti de la norme EME.

EME (Encrypted Media Standard) est une extension HTML5 pour prendre en charge la lecture de supports cryptés de manière standard - https://www.w3.org/TR/2017/REC-encrypted-media-20170918/ )

Vous pouvez voir le plugin VideoJS ici: https://github.com/videojs/videojs-contrib-eme

Il comprend des instructions pour la configuration et la lecture avec PlayReady DRM.

En regardant le message d'erreur que vous recevez:

entrez la description de l'image ici

Ceci est généré par la plateforme ou le navigateur et indique:

NotSupportedError

Soit le keySystem spécifié n'est pas pris en charge par la plate-forme ou le navigateur, soit aucune des configurations spécifiées par supportedConfigurations ne peut être satisfaite (si, par exemple, aucun des codecs spécifiés dans contentType n'est disponible).

( https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess )

En regardant votre configuration ci-dessus, l'une des raisons pour lesquelles vous pourriez obtenir cela pourrait être la lecture de la vidéo sur un navigateur qui ne prend pas en charge PlayReady. En règle générale (et non absolue), les DRM pris en charge `` nativement '' par les navigateurs et les appareils sont actuellement:

  • Appareils Android - Widevine
  • Navigateur Chrome - Widevine
  • Renard de feu - Widevine
  • Appareil iOS - FairPlay
  • Navigateur Safari - FairPlay
  • Navigateur Internet Explorer - PlayReady

Pour essayer de minimiser la surcharge pour les fournisseurs de flux vidéo, CENC ( https://en.wikipedia.org/wiki/MPEG_Common_Encryption ) vous permet d'avoir un seul flux protégé par PlayReady ou Widevine.

Ajouté à cela, CMAF et la prise en charge annoncée du cryptage en mode AES-CBC par tous les principaux appareils et navigateurs promettent la possibilité d'avoir un seul flux multimédia pour les flux HLS et DASH cryptés, mais il faudra probablement un certain temps avant que le support annoncé ne soit déployé. à tous les appareils, ce qui signifie que désormais les flux HLS et DASH sont généralement requis pour une portée maximale de la vidéo diffusée.


2 commentaires

Merci pour le commentaire. mais j'ai été installé videojs-contrib-eme lib. et je l'ai essayé comme ci-dessus. mais j'ai reçu un message d'erreur. github.com/videojs/videojs-contrib-eme/issues/115


@MingyuChoi Voir la mise à jour ci-dessus - J'ai inclus votre message d'erreur pour plus de clarté.



0
votes

Puisque vous utilisez Azure Media Services, vous disposez déjà d' un empaquetage dynamique , c'est-à-dire que vous pouvez avoir à la fois une sortie HLS et MPEG-DASH à partir des mêmes ressources vidéo sous-jacentes. Je vous encourage vivement à utiliser MPEG-DASH si vous essayez de lire du contenu dans le navigateur. HLS + PlayReady n'est pris en charge que sur très peu d'appareils, tandis que MPEG-DASH + PlayReady est pris en charge sur à peu près tous les endroits qui prennent en charge PlayReady.

En outre, je suppose que vous travaillez déjà avec un fournisseur pour PlayReady DRM, sinon le site PlayReady et / ou Widevine répertorie un certain nombre de fournisseurs.

En outre, vous souhaitez probablement également prendre en charge Widevine, car c'est ce qui est pris en charge pour la lecture dans Google Chrome et Firefox.


0 commentaires

0
votes

Est-il possible de décrypter un contenu DRM HLS dans Windows?

Je dois développer une fonction qui décrypte [...]

Votre question montre un malentendu sur le fonctionnement de la lecture compatible DRM.

Vous ne pouvez en aucun cas déchiffrer le contenu protégé par DRM dans Windows. Vous auriez besoin d'une clé de décryptage et en ce qui concerne le décryptage, cette clé est appliquée d'une manière connue et bien définie. Cependant, la clé est exactement ce que l'on ne vous donne jamais. Surtout dans Windows, comme dans le cas de Microsoft PlayReady DRM, les navigateurs compatibles fournissent un service de décryptage via la mise en œuvre de la spécification EME (Encrypted Media Extensions). Les navigateurs déchiffrent le contenu à des conditions selon lesquelles le contenu déchiffré est lu sous réserve de contraintes supplémentaires (assez restrictives, pensez au contenu forcé protégé sur le câble physique pour surveiller lorsque vous lisez un tel contenu!), Et vous ne récupérez jamais de données déchiffrées en particulier.

Vous pouvez lire du contenu protégé par DRM avec des navigateurs en travaillant en collaboration et en lisant des données protégées. Mais vous ne décryptez jamais le contenu vous-même, par exemple en implémentant une fonction de décryptage.


0 commentaires