🎆 Gstreamer plugin to satisfy all your basic cenc decryption needs. 🎆
- Clear content passthrough
- Decryption of content with a single encrypted stream
- Useable as a standalone gstreamer plugin (with gst-* tools)
- Support the VP9 encoding
- Decryption of sources with multiple encrypted streams
In order to give it a spin, you'll need encrypted content. You can find some here.
As with any other gstreamer plugin, you can jump straight into playback with gst-launch.
$ gst-launch-1.0 playbin uri=encrypted-content-uri
You can peek the element's capabilities with:
$ gst-inspect-1.0 cencdecrypt
The cencdecrypt element provides the means for testing encrypted content playback, without the need for a full-fledged browser. In it's current state, the element will accept h.264 files encrypted with the following keysystems:
com.widevine.alpha
-edef8ba9-79d6-4ace-a3c8-27dcd51d21ed
com.microsoft.playready
-9a04f079-9840-4286-ab92-e65be0885f95
org.w3.clearkey
-1077efec-c0b2-4d02-ace3-3c1e52e2fb4b
Since this plugin heavily relies on the OpenCDM server, it's worth mentioning that it doesn't support parsing playready WRMHEADER version > 4.0. Other than that, you should be all set with the playready test server.
- Single encrypted stream:
http://profficialsite.origin.mediaservices.windows.net/4e8b9b4a-ef12-4822-91cd-bb49fb8ad3c9/tears_of_steel.60s.high41.30fps.idr2.8slice.8000kbps.1920x1080.h264.cenc.unaligned.sliceheadersclear.uvu
- Multiple encrypted streams(not supported yet):
http://profficialsite.origin.mediaservices.windows.net/baa427a0-0716-4c9c-9da0-985a9899fac4/tears_of_steel.60s.high41.30fps.idr2.8slice.8000kbps.1920x1080.h264.2ch.320kbps.aac.cenc.unaligned.sliceheadersclear.uvu
Since (at the time of writing) there's no trusted source, which provides widevine content in the desirable format, it's best if you encrypt it yourself. You can do that with the shaka-packager(walkthrough available here) or mp4dash.