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"
}
]
}