16 February 2015

Available for output formats: mpeg_dash.

Additional information: http://www.widevine.com/wv_drm.html

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <widevine>yes</widevine>
        <widevine_key_server_url>[Key server URL(https:// only)]</widevine_key_server_url>
        <widevine_aes_signing_key>[AES signing key(HEX)]</widevine_aes_signing_key>
        <widevine_aes_signing_iv>[AES signing initialization vector(HEX)]</widevine_aes_signing_iv>
        <widevine_signer>[Signer name]</widevine_signer>
        <widevine_content_id>[Content ID]</widevine_content_id>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>",
        "userkey": "<<key>>",
        "action": "[Action]",
        "format": {
            "widevine": "yes",
            "widevine_key_server_url": "[Key server URL(https:// only)]",
            "widevine_aes_signing_key": "[AES signing key(HEX)]",
            "widevine_aes_signing_iv": "[AES signing initialization vector(HEX)]",
            "widevine_signer": "[Signer name]",
            "widevine_content_id": "[Content ID]"
        }
    }
}
Field NameDescriptionAllowed ValuesDefault Values
widevineuse Widevine DRMyes, nono
widevine_key_server_urlKey server URLValid URLNone
widevine_aes_signing_keyAES key32 HEX charsNone
widevine_aes_signing_ivAES initialization vector32 HEX charsNone
widevine_signerSigner nameStringNone
widevine_content_idContent IDStringNone

Supported by all formats except iphone_stream, ipad_stream, roku_hls and advanced_hls formats(these formats have own encryption implementation).

Destination required for encryption without specifying encryption_key or encryption_key_file.
Key used for encryption would be uploaded to the same destination as output file, with .key extension.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <encryption>[yes|no]</encryption>
        <encryption_method>[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]</encryption_method>
        <encryption_key>[Hexidecimal string]</encryption_key>
        <encryption_key_file>[URL]</encryption_key_file>
        <encryption_iv>[Hexidecimal string]</encryption_iv>
        <encryption_password>[Password]</encryption_password>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>",
        "userkey": "<<key>>",
        "action": "[Action]",
        "format": {
            "encryption": "[yes|no]",
            "encryption_method": "[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]",
            "encryption_key": "[Hexidecimal string]",
            "encryption_key_file": "[URL]",
            "encryption_iv": "[Hexidecimal string]",
            "encryption_password": "[Password]"
        }
    }
}
Field NameDescriptionAllowed ValuesDefault Values
encryptionEncrypt output fileyes, nono
encryption_methodEncryption methodaes-128-cbc, aes-128-ctr, aes-256-cbc, aes-256-ctraes-128-cbc
encryption_keyEncryption key32 hexidecimal characters ([0-9a-f])None
encryption_key_fileEncryption key file URLValid URL to encryption key fileNone
encryption_ivEncryption initialization vector32 hexidecimal characters ([0-9a-f])None
encryption_passwordPassword use for initialization vector generationany set of charactersNone

You can use encrypted source files for your media - just add following decryption params to the container.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[FileURL]</source>
    <decryption>[yes|no]</decryption>
    <decryption_method>[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]</decryption_method>
    <decryption_key>[Hexidecimal string]</decryption_key>
    <decryption_key_file>[URL]</decryption_key_file>
    <decryption_iv>[Hexidecimal string]</decryption_iv>
    <decryption_password>[Password]</decryption_password>
    <format>
        <!-- Format Fields -->
    </format>
</query>
{
    "query": {
        "userid": "<<id>>",
        "userkey": "<<key>>",
        "action": "[Action]",
        "source": "[FileURL]",
        "decryption": "[yes|no]",
        "decryption_method": "[aes-128-cbc|aes-128-ctr|aes-256-cbc|aes-256-ctr]",
        "decryption_key": "[Hexidecimal string]",
        "decryption_key_file": "[URL]",
        "decryption_iv": "[Hexidecimal string]",
        "decryption_password": "[Password]",
        "format": {}
    }
}
Field NameDescriptionAllowed ValuesDefault Values
decryptionEncrypt output fileyes, nono
decryption_methodDecryption methodaes-128-cbc, aes-128-ctr, aes-256-cbc, aes-256-ctraes-128-cbc
decryption_keyDecryption key32 hexidecimal characters ([0-9a-f])None
decryption_key_fileDecryption key file URLValid URL to decryption key fileNone
decryption_ivDecryption initialization vector32 hexidecimal characters ([0-9a-f])None
decryption_passwordPassword use for initialization vector generationany set of charactersNone

Alpha-transparent video overlay

Added support of 'RLE(qtrle)' video format for video overlay.

Harmonic GRID encoder

Added option to disable GRID encoder for Harmonic format

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <format>
        <output>harmonic</output>
        <!-- harmonic preset options -->
        <use_grid_encoder>[yes|no]</use_grid_encoder> 
    </format>
</query>
{
    "query": {
        "userid": "<<id>>",
        "userkey": "<<key>>",
        "action": "[Action]",
        "format": {
            "output": "harmonic",
            "use_grid_encoder": "[yes|no]"
        }
    }
}
Field NameDescriptionAllowed ValuesDefault Values
use_grid_encoderUse GRID encoder
*The GOP structure may be changed to "variable" while using GRID encoder
yes, noyes