View a markdown version of this page

SPEKE API v2.1 — Standard-Nutzlastkomponenten - Secure Packager and Encoder Key Exchange API-Spezifikation

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.1 — Standard-Nutzlastkomponenten

Mit einer einzigen SPEKE-Anfrage kann der Verschlüsseler gemäß dem Verschlüsselungsvertrag, den der Verschlüsseler für den Inhalt definiert, mehrere Inhaltsschlüssel zusammen mit der erforderlichen Manifestsignalisierung für mehrere Paketformate anfordern.

Um all diese Aspekte abzudecken, enthält ein Standard-CPIX-Dokument drei obligatorische Listenabschnitte und einen 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 2.4-Spezifikation muss der Wert des ContentKey@commonEncryptionScheme Attributs ein 4-stelliger Common Encryption-Schutzschemaname sein, wie in ISO/IEC 23001-7:2016 definiert, oder eine der in der HTTP Live Streaming (HLS) -Spezifikation definierten Verschlüsselungsmethoden. Die 4-stelligen Namen des Common Encryption-Schutzschemas lauten:

  • 'cenc': Verschlüsselung für vollständige AES-CTR 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.4" 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 vorherigen Beispiel. Der Verschlüsseler kann jedoch die Verschlüsselung des Inhaltsschlüssels anfordern, indem er das Element <cpix : >einbezieht. DeliveryDataList Weitere Informationen finden Sie unter Verschlüsselung des Inhaltsschlüssels.

Von SPEKE unterstütztes Element 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 EncryptionScheme

ID, Algorithmus, EXPLIZITIV

<pskc:Secret>eins <cpix:Data>(enthält eins)

HDCP-Daten

<pskc:Secret>

-

-

PlainValue oder EncryptedValue

valueMac, <enc: EncryptionMethod >, <enc : >CipherData

<cpix:HDCPData>

-

HLS HDCP-Niveau

-

HDCPOutputProtectionData

<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/ Content Protection des Identifiers-Repositorys. DASH-IF

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, HlsAllowedCPC

-

ContentProtectionData SmoothStreamingProtectionHeaderData, zwei <cpix : >-Elemente mit unterschiedlichem Playlist-Attributwert HLSSignalingData

<cpix : >ContentProtectionData

-

Robustheit

-

-

DRMSystem@PSSHist erforderlich, wenn ISO-BMFF Mediensegmente gekapselt werden. Der Verschlüsseler verwendet das DRMSystem.ContentProtectionData <pssh> InnerXML-Element nur für Manifestsignalisierungszwecke.

Wenn DRMSystem@PSSH es vorhanden ist und ein <pssh> InnerXML-Element DRMSystem.ContentProtectionData enthält, müssen beide Werte identisch sein.

Um DRMSystem Signale in HLS-Manifesten zu übertragen, fügen Sie sowohl ein <cpix:HLSSignalingData playlist="media"> Element als auch ein <cpix:HLSSignalingData playlist="master"> Element in die CPIX-Anfrage und -Antwort ein.

SPEKE v2.1 kann für jedes DRM-System die erwartete DRM-Robustheit oder das Inhaltsschutzniveau signalisieren. DASH und HLS drücken dies durch verschiedene Attribute aus, die in den folgenden Absätzen beschrieben werden.

In SPEKE v2.1 unterstützt das <cpix:ContentProtectionData> Element ein optionales Attribut. @robustness Der Wert dieses Attributs ist DRM-spezifisch und gibt die Robustheitsstufe an, die vom DRM-System für die Darstellungen erwartet wird, die mit dem referenzierten Inhaltsschlüssel verschlüsselt werden. Der Verschlüsseler verwendet diesen Wert als @robustness Attribut des ContentProtection Elements im DASH-Manifest für dieses DRM-System.

In SPEKE v2.1 unterstützt das <cpix:DRMSystem> Element ein optionales Attribut. @HLSAllowedCPC Für das durch den Wert identifizierte DRM gibt dieses Attribut den @systemId Wert an, der dem Attribut des EXT-X-STREAM-INF Tags in der ALLOWED-CPC multivarianten HLS-Playlist hinzugefügt werden soll. Das ALLOWED-CPC Attribut gibt die Content Protection Configuration (CPC) an, die das DRM-System für den zugehörigen Inhaltsschlüssel unterstützt. Dieses Attribut hat nur dann eine Bedeutung, wenn eine HLS-Playlist für den Medieninhalt erstellt wird.

<cpix: Abschnitt ContentKeyPeriodList >

Dies ist ein optionaler Abschnitt, der sowohl für Live- als auch für VOD-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.

In SPEKE v2.1 kann der Verschlüsseler zusätzlich zu den folgenden Angaben das Zeitintervall signalisieren, das a <cpix:ContentKeyPeriod> abdeckt: @index

  • Bei Live-Inhalten ist das @start Attribut die Wanduhrzeit für den Beginn des Zeitraums, und das @end Attribut ist die Wanduhrzeit für das Ende des Zeitraums. Beide sind vom Typxs:dateTime.

  • Bei VOD-Inhalten ist das @startOffset Attribut die Startzeit für den Zeitraum, und das @endOffset Attribut ist die Endzeit für den Zeitraum. Beide sind vom Typxs:duration.

<cpix:ContentKeyPeriodList>
	<cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" start="2026-01-01T00:00:00Z" end="2026-01-01T00:00:06Z" />
</cpix:ContentKeyPeriodList>
Element, das von SPEKE unterstützt wird Obligatorische Attribute Optionale Attribute Obligatorische untergeordnete Elemente Optionale untergeordnete Elemente

<cpix : >ContentKeyPeriodList

-

id

mindestens ein <cpix : >ContentKeyPeriod

-

<cpix : >ContentKeyPeriod

ID, Index

Start, Ende, StartOffset, EndOffset

-

-

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 einzelner oder mehrerer Inhaltsschlüssel zum Schutz eines oder mehrerer Tracks in einem Streamset finden Sie im Abschnitt zur Dokumentation zum Verschlüsselungsvertrag. _