Skip to content

cdcrypt

CENC decryptor

Register name used to load filter: cdcrypt
This filter may be automatically loaded during graph resolution.

The CENC decryptor supports decrypting CENC, ISMA, HLS Sample-AES (MPEG2 ts) and Adobe streams.

For HLS, key is retrieved according to the key URI in the manifest.
Otherwise, the filter uses a configuration file.
The syntax is available at https://wiki.gpac.io/Common-Encryption
The DRM config file can be set per PID using the property DecryptInfo (highest priority), CryptInfo (lower priority) or set at the filter level using cfile (lowest priority).
When the file is set per PID, the first CryptInfo with the same ID is used, otherwise the first CryptInfo is used.When the file is set globally (not per PID), the first CrypTrack in the DRM config file with the same ID is used, otherwise the first CrypTrack with ID 0 or not set is used.

Options

cfile (str): crypt file location
decrypt (enum, default: full): decrypt mode (CENC only)

  • full: decrypt everything, throwing error if keys are not found
  • nokey: decrypt everything for which a key is found, skip decryption otherwise
  • skip: decrypt nothing
  • pad0: decrypt nothing and replace all crypted bits with 0
  • pad1: decrypt nothing and replace all crypted bits with 1
  • padsc: decrypt nothing and replace all crypted bytes with start codes

drop_keys (uintl): consider keys with given 1-based indexes as not available (multi-key debug)
kids (strl): define KIDs. If keys is empty, consider keys with given KID (as hex string) as not available (debug)
keys (strl): define key values for each of the specified KID
hls_cenc_patch_iv (bool, default: false): ignore IV updates in some broken HLS+CENC streams