Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
SPEKE API v2.0 — Standard-Nutzlastkomponenten
Mit einer einzigen SPEKE-Anfrage kann der Verschlüsseler gemäß dem Verschlüsselungsvertrag, der für einen bestimmten Inhalt definiert ist, mehrere Inhaltsschlüssel zusammen mit der erforderlichen Manifestsignalisierung für mehrere Paketformate anfordern.
Um all diese Aspekte abzudecken, besteht ein Standard-CPIX-Dokument aus drei obligatorischen Listenabschnitten sowie einem optionalen Listenabschnitt für die Schlüsselrotation von Live-Inhalten.
<cpix: ContentKeyList > Abschnitt und cpix:CPIX-Element auf oberster Ebene < >
Dies ist ein obligatorischer Abschnitt, der sowohl für Live- als auch für VOD-Streaming relevant ist und die verschiedenen Inhaltsschlüssel definiert, die vom Verschlüsseler verwendet werden müssen. Das <cpix:ContentKeyList> Element kann ein oder mehrere <cpix:ContentKey> untergeordnete Elemente enthalten, von denen jedes einen bestimmten Inhaltsschlüssel beschreibt.
Gemäß der CPIX-Spezifikation sind die möglichen Werte des ContentKey@commonEncryptionScheme Attributs in der Spezifikation Common Encryption in ISO-Basismediendateiformaten (ISO/IEC 23001-7:2016) definiert:
-
„cenc“: NAL-Subsample-Verschlüsselung im AES-CTR Modus „Vollständige Probe“ und „Video-NAL-Subsample“
-
'cbc1': Verschlüsselung für vollständige Probe- und AES-CBC Video-NAL-Subsample
-
'cens': AES-CTR NAL-Muster-Verschlüsselung im Modus für partielle Video-Verschlüsselung
-
'cbcs': NAL-Musterverschlüsselung für Videos AES-CBC im Modus
Das folgende Beispiel zeigt ein CPIX-Dokument mit einem einzigen, unverschlüsselten Inhaltsschlüssel:
<cpix:CPIX contentId="abc123" version="2.3" xmlns:cpix="urn:dashif:org:cpix" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"> <cpix:ContentKeyList> <cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="98ee5596-cd3e-a20d-163a-e382420c6eff" commonEncryptionScheme="cbcs"> <cpix:Data> <pskc:Secret> <pskc:PlainValue>5dGAgwGuUYu4dHeHtNlxJw==</pskc:PlainValue> </pskc:Secret> </cpix:Data> </cpix:ContentKey> </cpix:ContentKeyList> ... </cpix:CPIX>
Standardmäßig sind Inhaltsschlüssel nicht verschlüsselt, wie im folgenden Beispiel. Die Verschlüsselung von Inhaltsschlüsseln kann jedoch vom Verschlüsseler angefordert werden, indem das Element <cpix : >hinzugefügt wird. DeliveryDataList Weitere Informationen finden Sie im Abschnitt zur Verschlüsselung von Inhaltsschlüsseln.
| Element, das von SPEKE unterstützt wird | Obligatorische Attribute | Optionale Attribute | Obligatorische untergeordnete Elemente | Optionale untergeordnete Elemente |
|---|---|---|---|---|
|
<cpix:CPIX> |
Inhalts-ID, Version, xmlns: cpix, xmlns: pskc |
Name, xmlns: enc |
eins <cpix: ContentKeyList >, eins<cpix : >, eins <cpix : >DRMSystemListContentKeyUsageRuleList |
eins<cpix : >, eins <cpix : >DeliveryDataListContentKeyPeriodList |
|
<cpixContentKeyList: > |
- |
id |
mindestens ein <cpix : >ContentKey |
- |
|
<cpix : >ContentKey |
Kind, gewöhnlich, Data EncryptionScheme |
ID, Algorithmus, EXPLIZITIV |
eins <pskc:Secret> |
- |
|
<pskc:Secret> |
PlainValue oder EncryptedValue |
Wert MAC |
- |
<enc: EncryptionMethod >, <enc : >CipherData |
<cpix: Abschnitt DRMSystemList >
Dies ist ein obligatorischer Abschnitt, der sowohl für Live- als auch für VOD-Streaming relevant ist. Er definiert die verschiedenen DRM-Systeme, die zusammen mit den Inhaltsschlüsseln genutzt werden müssen.
Das folgende Beispiel zeigt eine DRM-Systemliste mit einer einzigen PlayReady DRM-Systemspezifikation:
<cpix:DRMSystemList> <cpix:DRMSystem kid="98ee5596-cd3e-a20d-163a-e382420c6eff" systemId="9a04f079-9840-4286-ab92-e65be0885f95"> <cpix:HLSSignalingData playlist="media">HicXmbZ2m[...]4==</cpix:HLSSignalingData> <cpix:HLSSignalingData playlist="master">HicXmbZ2m[...]jEi</cpix:HLSSignalingData> <cpix:ContentProtectionData>t7WwH24FI[...]YCC</cpix:ContentProtectionData> <cpix:PSSH>FFFFanBzc[...]A==</cpix:PSSH> <cpix:SmoothStreamingProtectionHeaderData>s5RrJ12HL[...]UBB</cpix:SmoothStreamingProtectionHeaderData> </cpix:DRMSystem> </cpix:DRMSystemList>
Eine vollständige Liste der DRM-SystemIDs finden Sie im Abschnitt https://dashif.org/identifiers/content_protection/
| Von SPEKE unterstütztes Element | Obligatorische Attribute | Optionale Attribute | Obligatorische untergeordnete Elemente | Optionale untergeordnete Elemente |
|---|---|---|---|---|
|
<cpix : >DRMSystemList |
- |
id |
mindestens eine <cpix:DRMSystem> |
- |
|
<cpix:DRMSystem> |
Kind, SystemID |
ID, Name, PSSH |
- |
ContentProtectionData SmoothStreamingProtectionHeaderData, zwei <cpix: HLSSignalingData > Elemente mit unterschiedlichem Playlist-Attributwert |
DRMSystem@PSSHist erforderlich, wenn die ISO-BMFF Kapselung auf Mediensegmente angewendet wird. DRMSystem.ContentProtectionDataDas <pssh> InnerXML-Element wird vom Verschlüsseler nur für manifeste Signalisierungszwecke genutzt.
Wenn DRMSystem@PSSH es vorhanden ist und ein <pssh> InnerXML-Element DRMSystem.ContentProtectionData enthält, müssen beide Werte identisch sein.
Wenn die DRMSystem Signalisierung in HLS-Manifesten übertragen werden soll, müssen sowohl die A <cpix:HLSSignalingData playlist="media"> - als auch die <cpix:HLSSignalingData playlist="master"> A-Elemente in der CPIX-Anfrage und -Antwort enthalten sein.
<cpix: Abschnitt ContentKeyPeriodList >
Dies ist ein optionaler Abschnitt, der nur für Live-Streaming relevant ist und die Krypto-Perioden definiert, die auf den Inhalt angewendet werden.
Das <cpix:ContentKeyPeriodList> Element kann ein oder mehrere <cpix:ContentKeyPeriod> untergeordnete Elemente enthalten, von denen jedes eine bestimmte Krypto-Periode in der Live-Timeline beschreibt. Die Verwendung von UUIDs als Teil des Werts des ID-Attributs ist ein häufig verwendeter Ansatz.
<cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </cpix:ContentKeyPeriodList>
| Von SPEKE unterstütztes Element | Obligatorische Attribute | Optionale Attribute | Obligatorische untergeordnete Elemente | Optionale untergeordnete Elemente |
|---|---|---|---|---|
|
<cpix : >ContentKeyPeriodList |
- |
id |
mindestens ein <cpix : >ContentKeyPeriod |
- |
|
<cpix : >ContentKeyPeriod |
ID, Index |
- |
- |
- |
Wenn Krypto-Perioden verwendet werden, müssen die Verschlüsselungsschlüssel auch an eine der Krypto-Perioden im CPIX-Dokument angehängt werden, wie im folgenden Abschnitt gezeigt.
<cpix: Abschnitt ContentKeyUsageRuleList >
Dies ist ein obligatorischer Abschnitt, der sowohl für Live- als auch für VOD-Streaming relevant ist. Er definiert, wie die verschiedenen Inhaltsschlüssel Titel innerhalb des Streamsets und während der Krypto-Perioden schützen.
Das <cpix: ContentKeyUsageRuleList > -Element kann ein oder mehrere <cpix: ContentKeyUsageRule > untergeordnete Elemente enthalten, von denen jedes die Tracks beschreibt, auf die ein bestimmter Inhaltsschlüssel vom Verschlüsseler angewendet wird, möglicherweise während einer bestimmten Kryptoperiode. Mindestens ein <cpix: AudioFilter > - oder ein <cpix : >-Element muss in einem <cpix: VideoFilter > -Element vorhanden sein. ContentKeyUsageRule
Das folgende Beispiel zeigt eine einfache Liste mit nur einer Regel, die einen einzigen Inhaltsschlüssel auf alle Audio- und Videospuren während einer bestimmten Kryptoperiode anwendet.
<cpix:ContentKeyUsageRuleList> <cpix:ContentKeyUsageRule kid="98ee5596-cd3e-a20d-163a-e382420c6eff" intendedTrackType="ALL"> <cpix:KeyPeriodFilter periodId="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f"/> <cpix:AudioFilter /> <cpix:VideoFilter /> </cpix:ContentKeyUsageRule> </cpix:ContentKeyUsageRuleList>
| Element, das von SPEKE unterstützt wird | Obligatorische Attribute | Optionale Attribute | Obligatorische untergeordnete Elemente | Optionale untergeordnete Elemente |
|---|---|---|---|---|
|
<cpix : >ContentKeyUsageRuleList |
- |
id |
mindestens ein <cpix : >ContentKeyUsageRule |
- |
|
<cpix : >ContentKeyUsageRule |
Kind, beabsichtigt TrackType |
- |
mindestens ein <cpix: AudioFilter > oder ein <cpix : >(*) VideoFilter |
<cpix : >KeyPeriodFilter |
|
<cpix : >KeyPeriodFilter |
Perioden-ID |
- |
- |
- |
|
<cpix : >AudioFilter |
- |
Minimale Kanäle, maximale Anzahl Kanäle |
- |
- |
|
<cpix : >VideoFilter |
- |
MinPixel, MaxPixel, hdr, minFps, MaxFps |
- |
- |
(*) Eine ausführliche Erklärung zur Verwendung eines oder mehrerer Inhaltsschlüssel zum Schutz eines oder mehrerer Tracks in einem Streamset findest du im Abschnitt zur Dokumentation zum Verschlüsselungsvertrag. _