Configuración de cifrado

Este tema contiene detalles para la configuración de codificación relacionada con el cifrado de videos.

Resumen

Zencoder puede realizar el cifrado AES de archivos de video. Nuestra implementación está diseñada para ser compatible con las salidas HTTP Live Streaming (HLS), pero se puede usar para cifrar cualquier archivo de video de manera similar. Cuando se utiliza para salidas segmentadas, solo se cifrarán los archivos de segmento (dejando legibles los archivos de manifiesto / lista de reproducción, como se esperaba). Para las salidas de HLS, los datos de clave / IV necesarios se agregarán al archivo de manifiesto M3U8 y los archivos de clave de cifrado se incluirán con los otros archivos entregables, si corresponde.

El cifrado se activa cuando encryption_key encryption_key_url, encryption_method, o encryption_key_rotation_period se especifican.

Tenga en cuenta que la forma en que debe especificar el cifrado depende de cómo el reproductor que está utilizando espera recibir la clave. Por ejemplo, VideoJS espera bytes sin procesar (no una cadena hexadecimal) y, en este caso, desea utilizarlos en encryption_key_url lugar de encryption_key, que deben pasarse a Zencoder como cadena hexagonal.

método_encriptación

encryption_method:String

Versiones de API: V2

Padre: salidas

Valores válidos: "ninguno", "aes-128-cbc", "aes-128-ctr", "aes-256-cbc" o "aes-256-ctr"

Tipos de trabajo compatibles: vod

Ejemplo: aes-128-cbc

Descripción:

Configure el método de cifrado que se utilizará para cifrar.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "encryption_method": "aes-128-cbc"
    }
  ]
}

cryption_key

encryption_key:String

Versiones de API: V2

Padre: salidas

Valores válidos: Una cadena hexadecimal de 16 octetos (32 caracteres de longitud, prefijo "0x" opcional)

Tipos de trabajo compatibles: vod

Ejemplo: a5f6a7d6ef5d6a7a02a23dd35dd56a63

Descripción:

Configure una única clave de cifrado para usar en lugar de que Zencoder genere una. Pasar una clave de cifrado no es compatible con la rotación de claves. Zencoder generará y devolverá las claves de cifrado si utiliza la rotación de claves.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "encryption_key": "a5f6a7d6ef5d6a7a02a23dd35dd56a63"
    }
  ]
}

encryption_key_url

encryption_key_url:String

Versiones de API: V2

Padre: salidas

Valores válidos: Una URL a un archivo que contiene una clave binaria de 16 bytes

Tipos de trabajo compatibles: vod

Ejemplo: http://example.com/encryption.key

Descripción:

Configure una única clave de cifrado para usar en lugar de que Zencoder genere una. Especificado como una URL a un archivo que contiene una clave binaria de 16 bytes.

Esto se incluirá como la URL del archivo de clave en los manifiestos de HLS y no se incluirán archivos de clave de cifrado con la salida. Si tampoco se especifica encryption_key, Zencoder intentará descargar este archivo y usarlo para cifrar la salida.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "encryption_key_url": "http://example.com/encryption.key"
    }
  ]
}

encryption_key_rotation_period

encryption_key_rotation_period:Number

Versiones de API: V2

Padre: salidas

Valores válidos: Un número mayor que 0

Tipos de trabajo compatibles: vod

Ejemplo: 10

Descripción:

Cuando Zencoder genera claves de encriptación, use una clave diferente para cada conjunto de segmentos, rotando a una clave nueva después de tantos segmentos.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "encryption_key_rotation_period": 10
    }
  ]
}

prefijo_url_clave_cifrado

encryption_key_url_prefix:String

Versiones de API: V2

Padre: salidas

Valores válidos: Una URL o ruta relativa

Tipos de trabajo compatibles: vod

Ejemplo: llaves/

Descripción:

Cuando no se especifica un encryption_key_url, antepóngalo a los nombres de archivo de la clave de cifrado antes de incluirlos en el manifiesto. De lo contrario, se supone que las claves son accesibles desde la misma ruta que el archivo de manifiesto. Si se usa un signo de interrogación en la cadena, el prefijo se usará como está; de lo contrario, se agregará una barra al final del prefijo (a menos que ya termine con una barra).

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "encryption_key_url_prefix": "keys/"
    }
  ]
}

cifrado_iv

encryption_iv:String

Versiones de API: V2

Padre: salidas

Valores válidos: Una cadena hexadecimal de 16 octetos (32 caracteres de longitud, prefijo "0x" opcional)

Tipos de trabajo compatibles: vod

Ejemplo: a5f6a7d6ef5d6a7a02a23dd35dd56a63

Descripción:

Establezca un vector de inicialización para usar al cifrar, como una cadena hexadecimal de 16 octetos. En salidas segmentadas, si esto no se especifica, los segmentos se cifrarán con valores de IV en aumento, comenzando en cero (de acuerdo con las especificaciones de HLS).

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "encryption_iv": "a5f6a7d6ef5d6a7a02a23dd35dd56a63"
    }
  ]
}

contraseña_cifrado

encryption_password:String

Versiones de API: V2

Padre: salidas

Valores válidos: Una cuerda

Tipos de trabajo compatibles: vod

Ejemplo: contraseña-supersecreta

Descripción:

Establece una contraseña que se utilizará para generar un vector de inicialización. No es compatible con salidas segmentadas. Las salidas no segmentadas requieren encryption_iv o encryption_password.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "encryption_password": "super-secret-password"
    }
  ]
}