/gst-cencdec

Implementation of a gstreamer element that performs DASH Common Encryption (CENC) decryption.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

This package provides an example GStreamer element that implements DASH Common Encryption (ISO/IEC23001-7 Information technology — MPEG systems technologies — Part 7: Common encryption in ISO base media file format files).

It takes video or audio (of type "application/x-cenc") from qtdemux and performs the AES-CTR decryption and outputs the decrypted content on a source pad.

Requirements

  • gstreamer 1.6
  • Openssl >=1.0.0h

Usage

The decryptor does not implement a real DRM system. It performs a sha1 hash of the KID, converts that to a hex string and then looks for a file /tmp/<hash string>.key that contains the binary data of the key.

./store-key.py 00000000000000000000000000000000 0123456789ABCDEF0123456789ABCDEF
./store-key.py 0bbc0bbc0bbc0bbc0bbc0bbc0bbc1bbc ABCDEF0123456789ABCDEF0123456789
gst-launch-1.0 playbin uri='http://test-media.youview.co.uk/ondemand/bbb/avc3/1/2drm_manifest.mpd'