Überblick
Zencoder kann eine AES-Verschlüsselung von Videodateien durchführen. Unsere Implementierung ist so konzipiert, dass sie mit HTS Live Streaming (HLS) -Ausgängen kompatibel ist, kann jedoch verwendet werden, um jede Videodatei auf ähnliche Weise zu verschlüsseln. Bei Verwendung für segmentierte Ausgaben werden nur die Segmentdateien verschlüsselt (die Manifest- / Wiedergabelistendateien bleiben erwartungsgemäß lesbar). Für HLS-Ausgaben werden die erforderlichen Schlüssel- / IV-Daten zur M3U8-Manifestdatei hinzugefügt, und Verschlüsselungsschlüsseldateien werden gegebenenfalls in die anderen zu liefernden Dateien aufgenommen.
Die Verschlüsselung ist aktiviert encryption_key
, wenn encryption_key_url
, encryption_method
, oder encryption_key_rotation_period
sind angegeben.
Beachten Sie, dass die Art und Weise, wie Sie die Verschlüsselung festlegen sollten, davon abhängt, wie der von Ihnen verwendete Player den Schlüssel erwartet. VideoJS erwartet beispielsweise rohe Bytes (keine Hexadezeichenfolge), und in diesem Fall möchten Sie encryption_key_url
anstelle verwenden encryption_key
, die an Zencoder übergeben werden müssen als Hex-Saite.
encryption_method
encryption_method:String
API-Versionen: V2
Elternteil: Ausgänge
Gültige Werte: "keine", "aes-128-cbc", "aes-128-ctr", "aes-256-cbc" oder "aes-256-ctr"
Kompatible Auftragstypen: vod
Beispiel: aes-128-cbc
Beschreibung:
Legen Sie die Verschlüsselungsmethode fest, die für die Verschlüsselung verwendet werden soll.
{
"input": "s3://zencodertesting/test.mov",
"outputs": [
{
"type": "segmented",
"encryption_method": "aes-128-cbc"
}
]
}
encryption_key
encryption_key:String
API-Versionen: V2
Elternteil: Ausgänge
Gültige Werte: Eine hexadezimale Zeichenfolge mit 16 Oktetten (32 Zeichen lang, optionales "0x" -Präfix)
Kompatible Auftragstypen: vod
Beispiel: a5f6a7d6ef5d6a7a02a23dd35dd56a63
Beschreibung:
Stellen Sie einen einzelnen Verschlüsselungsschlüssel ein, der verwendet werden soll, anstatt dass Zencoder einen generiert. Das Übergeben eines Verschlüsselungsschlüssels ist nicht mit der Schlüsselrotation kompatibel. Zencoder generiert und gibt die Verschlüsselungsschlüssel zurück, wenn die Schlüsseldrehung verwendet wird.
{
"input": "s3://zencodertesting/test.mov",
"outputs": [
{
"type": "segmented",
"encryption_key": "a5f6a7d6ef5d6a7a02a23dd35dd56a63"
}
]
}
encryption_key_url
encryption_key_url:String
API-Versionen: V2
Elternteil: Ausgänge
Gültige Werte: Eine URL zu einer Datei, die einen 16-Byte-Binärschlüssel enthält
Kompatible Auftragstypen: vod
Beispiel: http://example.com/encryption.key
Beschreibung:
Stellen Sie einen einzelnen Verschlüsselungsschlüssel ein, der verwendet werden soll, anstatt dass Zencoder einen generiert. Wird als URL zu einer Datei angegeben, die einen 16-Byte-Binärschlüssel enthält.
Dies wird als URL zur Schlüsseldatei in HLS-Manifesten enthalten sein, und die Ausgabe enthält keine Verschlüsselungsschlüsseldateien. Wenn der Verschlüsselungsschlüssel nicht ebenfalls angegeben ist, versucht Zencoder, diese Datei herunterzuladen und zum Verschlüsseln der Ausgabe zu verwenden.
{
"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
API-Versionen: V2
Elternteil: Ausgänge
Gültige Werte: Eine Zahl größer als 0
Kompatible Auftragstypen: vod
Beispiel: 10
Beschreibung:
Wenn Zencoder Verschlüsselungsschlüssel generiert, verwenden Sie für jeden Satz von Segmenten einen anderen Schlüssel und drehen Sie nach diesen vielen Segmenten zu einem neuen Schlüssel.
{
"input": "s3://zencodertesting/test.mov",
"outputs": [
{
"type": "segmented",
"encryption_key_rotation_period": 10
}
]
}
encryption_key_url_prefix
encryption_key_url_prefix:String
API-Versionen: V2
Elternteil: Ausgänge
Gültige Werte: Eine URL oder ein relativer Pfad
Kompatible Auftragstypen: vod
Beispiel: Schlüssel/
Beschreibung:
Wenn keine verschlüsselungs_key_url angegeben wird, stellen Sie dies den Dateinamen des Verschlüsselungsschlüssels voraus, bevor Sie sie in das Manifest einbeziehen. Andernfalls wird angenommen, dass auf die Schlüssel über denselben Pfad wie die Manifestdatei zugegriffen werden kann. Wenn in der Zeichenfolge ein Fragezeichen verwendet wird, wird das Präfix unverändert verwendet, andernfalls wird am Ende des Präfixes ein Schrägstrich hinzugefügt (es sei denn, es endet bereits mit einem Schrägstrich).
{
"input": "s3://zencodertesting/test.mov",
"outputs": [
{
"type": "segmented",
"encryption_key_url_prefix": "keys/"
}
]
}
encryption_iv
encryption_iv:String
API-Versionen: V2
Elternteil: Ausgänge
Gültige Werte: Eine hexadezimale Zeichenfolge mit 16 Oktetten (32 Zeichen lang, optionales "0x" -Präfix)
Kompatible Auftragstypen: vod
Beispiel: a5f6a7d6ef5d6a7a02a23dd35dd56a63
Beschreibung:
Legen Sie einen Initialisierungsvektor fest, der beim Verschlüsseln als hexadezimale 16-Oktett-Zeichenfolge verwendet werden soll. Wenn dies bei segmentierten Ausgaben nicht angegeben ist, werden die Segmente mit inkrementierenden IV-Werten verschlüsselt, beginnend bei Null (in Übereinstimmung mit den HLS-Spezifikationen).
{
"input": "s3://zencodertesting/test.mov",
"outputs": [
{
"type": "segmented",
"encryption_iv": "a5f6a7d6ef5d6a7a02a23dd35dd56a63"
}
]
}
encryption_password
encryption_password:String
API-Versionen: V2
Elternteil: Ausgänge
Gültige Werte: Ein Faden
Kompatible Auftragstypen: vod
Beispiel: Super-Secret-Passwort
Beschreibung:
Legt ein Kennwort fest, das zum Generieren eines Initialisierungsvektors verwendet werden soll. Wird für segmentierte Ausgaben nicht unterstützt. Nicht segmentierte Ausgaben erfordern entweder encryption_iv oder encryption_password.
{
"input": "s3://zencodertesting/test.mov",
"outputs": [
{
"type": "segmented",
"encryption_password": "super-secret-password"
}
]
}