emarsden / pssh-box-wasm

Parsing and printing PSSH boxes for DRM systems, in WebAssembly.

Home Page:https://emarsden.github.io/pssh-box-wasm/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pssh-box-wasm

A collection of web-based tools for working with PSSH boxes (as used for the initialization of DRM systems) and with Widevine Content Decryption Modules (CDMs). There are tools that allow you to:

  • serialize and deserialize (create and decode) PSSH boxes
  • request decryption keys (obtain a license) from a Widevine DRM licensing server
  • convert Widevine CDMs between blob format and “WVD” format

The tools use code from the Rust crate pssh-box compiled to WebAssembly (WASM), and run fully in your web browser (there is no server backend; the tools will work fully offline once loaded).

PSSH boxes are used:

  • in an MP4 box of type pssh in an MP4 fragment (CMAF/MP4/ISOBMFF containers)

  • in a <cenc:pssh> element in a DASH MPD manifest

  • in an EXT-X-SESSION-KEY field of an m3u8 playlist

A PSSH box includes information for a single DRM system. This library supports the PSSH data formats for the following DRM systems:

  • Widevine, owned by Google, widely used for DASH streaming
  • PlayReady, owned by Microsoft, widely used for DASH streaming
  • WisePlay, owned by Huawei
  • Irdeto
  • Marlin
  • Nagra
  • The unofficial variant of Apple FairPlay that is used for DASH-like streaming by Netflix
  • Common Encryption

PSSH boxes contain (depending on the DRM system) information on the key_ID for which to obtain a content key, the encryption scheme used (e.g. cenc, cbc1, cens or cbcs), the URL of the licence server, and checksum data.

Useful references:

License

This project is licensed under the MIT license. For more information, see the LICENSE file.

About

Parsing and printing PSSH boxes for DRM systems, in WebAssembly.

https://emarsden.github.io/pssh-box-wasm/

License:MIT License


Languages

Language:JavaScript 54.6%Language:Rust 21.9%Language:HTML 13.4%Language:Just 6.3%Language:CSS 3.9%