View a markdown version of this page

API SPEKE v2.1 - Componentes de carga útil padrão - Especificação da API do Secure Packager and Encoder Key Exchange

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

API SPEKE v2.1 - Componentes de carga útil padrão

Por meio de uma única solicitação SPEKE, o criptografador pode solicitar várias chaves de conteúdo, junto com a sinalização de manifesto necessária para vários formatos de embalagem, de acordo com o contrato de criptografia definido pelo criptografador para o conteúdo.

Para cobrir todos esses aspectos, um documento CPIX padrão contém três seções de lista obrigatórias e uma seção de lista opcional para rotação de chaves de conteúdo ao vivo.

<cpix: ContentKeyList > seção e elemento cpix:cpix de nível < superior >

Esta é uma seção obrigatória, relevante para streaming ao vivo e VOD, definindo as diferentes chaves de conteúdo que precisam ser usadas pelo criptografador. O elemento <cpix:ContentKeyList> pode conter um ou vários elementos <cpix:ContentKey> secundários, cada um deles descrevendo uma chave de conteúdo distinta.

De acordo com a especificação CPIX 2.4, o valor do ContentKey@commonEncryptionScheme atributo deve ser um nome de esquema de proteção de criptografia comum de 4 caracteres, conforme definido em ISO/IEC 23001-7:2016, ou um dos métodos de criptografia definidos na especificação HTTP Live Streaming (HLS). Os nomes dos esquemas de proteção de criptografia comum de 4 caracteres são:

  • 'cen': AES-CTR modo de amostra completa e criptografia de subamostra NAL de vídeo

  • 'cbc1': AES-CBC modo de amostra completa e criptografia de subamostra NAL de vídeo

  • 'cens': AES-CTR modo de criptografia parcial do padrão NAL de vídeo

  • 'cbcs': AES-CBC modo de criptografia parcial do padrão NAL de vídeo

O exemplo a seguir mostra um documento CPIX com uma única chave de conteúdo não criptografada:

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

Por padrão, as chaves de conteúdo não são criptografadas, como no exemplo anterior. Mas o criptografador pode solicitar a criptografia da chave de conteúdo incluindo o elemento<cpix : >. DeliveryDataList Para obter mais informações, consulte Criptografia de chave de conteúdo.

Elemento suportado pelo SPEKE Atributos obrigatórios Atributos opcionais Elementos secundários obrigatórios Elementos secundários opcionais

<cpix:CPIX>

contentId, version, xmlns:cpix, xmlns:pskc

name, xmlns:enc

um <cpix: ContentKeyList >, um<cpix : >, um <cpix: DRMSystemList > ContentKeyUsageRuleList

um <cpix: DeliveryDataList >, um <cpix : >ContentKeyPeriodList

<cpix : >ContentKeyList

-

id

pelo menos um <cpix : >ContentKey

-

<cpix : >ContentKey

criança, comum EncryptionScheme

id, Algorithm, explicitIV

um <cpix:Data>(contendo um<pskc:Secret>)

Dados HDCP

<pskc:Secret>

-

-

PlainValue or EncryptedValue

ValueMac, <enc: EncryptionMethod >, <enc : >CipherData

<cpix:HDCPData>

-

Nível HLS HDCP

-

HDCPOutputProtectionData

<cpix: seção DRMSystemList >

Esta é uma seção obrigatória, relevante para streaming ao vivo e VOD, definindo os diferentes sistemas DRM que precisam ser aproveitados junto com as chaves de conteúdo.

O exemplo a seguir mostra uma lista de sistemas DRM com uma única especificação de sistema PlayReady DRM:

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

Para obter uma lista completa dos SystemIDs de DRM, consulte a seção Proteção de conteúdo do repositório de DASH-IF identificadores.

Elemento suportado pelo SPEKE Atributos obrigatórios Atributos opcionais Elementos secundários obrigatórios Elementos secundários opcionais

<cpix : >DRMSystemList

-

id

pelo menos um <cpix:DRMSystem>

-

<cpix:DRMSystem>

kid, systemId

ID, nome, PSSH, HLSAllowedCpc

-

ContentProtectionData, SmoothStreamingProtectionHeaderData, dois elementos <cpix: HLSSignalingData > com valor de atributo de playlist diferente

<cpix : >ContentProtectionData

-

robustez

-

-

DRMSystem@PSSHé obrigatório se o ISO-BMFF encapsulamento for aplicado a segmentos de mídia. O criptografador usa o <pssh> elemento DRMSystem.ContentProtectionData innerXML somente para fins de sinalização de manifesto.

Se DRMSystem@PSSH estiver presente e DRMSystem.ContentProtectionData contiver um <pssh> elemento innerXML, os dois valores devem ser idênticos.

Para transmitir DRMSystem sinalização em manifestos HLS, inclua um elemento e um <cpix:HLSSignalingData playlist="media"> <cpix:HLSSignalingData playlist="master"> elemento na solicitação e resposta do CPIX.

O SPEKE v2.1 pode sinalizar a robustez de DRM ou o nível de proteção de conteúdo esperado para cada sistema DRM. O DASH e o HLS expressam isso por meio de atributos diferentes, descritos nos parágrafos a seguir.

No SPEKE v2.1, o <cpix:ContentProtectionData> elemento oferece suporte a um atributo opcional@robustness. O valor desse atributo é específico do DRM e anuncia o nível de robustez esperado do sistema DRM para as representações criptografadas pela chave de conteúdo referenciada. O criptografador usa esse valor como o @robustness atributo do ContentProtection elemento no manifesto DASH para esse sistema DRM.

No SPEKE v2.1, o <cpix:DRMSystem> elemento oferece suporte a um atributo opcional@HLSAllowedCPC. Para o DRM identificado pelo @systemId valor, esse atributo especifica o valor a ser adicionado ao ALLOWED-CPC atributo da EXT-X-STREAM-INF tag na playlist multivariante HLS. O ALLOWED-CPC atributo anuncia a configuração de proteção de conteúdo (CPC) que o sistema DRM suporta para a chave de conteúdo associada. Esse atributo tem significado somente quando uma playlist HLS é criada para o conteúdo de mídia.

<cpix: seção ContentKeyPeriodList >

Esta é uma seção opcional, relevante para streaming ao vivo e VOD, definindo os períodos criptográficos aplicados ao conteúdo.

O elemento <cpix:ContentKeyPeriodList> pode conter um ou vários elementos <cpix:ContentKeyPeriod> secundários, cada um deles descrevendo uma chave de conteúdo distinta. Usar UUIDs como parte do valor do atributo id é uma abordagem comumente usada.

No SPEKE v2.1, o criptografador pode sinalizar o intervalo de tempo que um <cpix:ContentKeyPeriod> cobre, além de: @index

  • Para conteúdo ao vivo, o @start atributo é a hora do relógio de parede para o início do período e o @end atributo é a hora do relógio de parede para o final do período. Ambos são do tipoxs:dateTime.

  • Para conteúdo VOD, o @startOffset atributo é a hora de início do período e o @endOffset atributo é a hora de término do período. Ambos são do tipoxs: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>
Elemento suportado pelo SPEKE Atributos obrigatórios Atributos opcionais Elementos secundários obrigatórios Elementos secundários opcionais

<cpix : >ContentKeyPeriodList

-

id

pelo menos um <cpix : >ContentKeyPeriod

-

<cpix : >ContentKeyPeriod

id, index

início, fim, início do Offset, fim do Offset

-

-

Se períodos criptográficos forem usados, as chaves de criptografia também precisarão ser anexadas a um dos períodos criptográficos no documento CPIX, conforme mostrado na seção a seguir.

<cpix: seção ContentKeyUsageRuleList >

Esta é uma seção obrigatória, relevante para streaming ao vivo e VOD, que define como as diferentes chaves de conteúdo protegerão as faixas dentro do streamset e durante os períodos criptográficos.

O elemento <cpix: ContentKeyUsageRuleList > pode conter um ou vários elementos secundários <cpix: ContentKeyUsageRule >, cada um deles descrevendo as faixas às quais uma determinada chave de conteúdo é aplicada pelo criptografador, potencialmente durante um período criptográfico específico. É necessário que pelo menos um elemento <cpix: AudioFilter > ou <cpix: VideoFilter > esteja presente em um elemento<cpix : >. ContentKeyUsageRule

O exemplo a seguir mostra uma lista simples com apenas uma regra aplicando uma única chave de conteúdo a todas as faixas de áudio e vídeo durante um período criptográfico específico.

<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>
Elemento suportado pelo SPEKE Atributos obrigatórios Atributos opcionais Elementos secundários obrigatórios Elementos secundários opcionais

<cpix : >ContentKeyUsageRuleList

-

id

pelo menos um <cpix : >ContentKeyUsageRule

-

<cpix : >ContentKeyUsageRule

criança, pretendida TrackType

-

pelo menos um <cpix: AudioFilter > ou um <cpix : >(*) VideoFilter

<cpix : >KeyPeriodFilter

<cpix : >KeyPeriodFilter

periodId

-

-

-

<cpix : >AudioFilter

-

minChannels, maxChannels

-

-

<cpix : >VideoFilter

-

minPixels, maxPixels, hdr, minFps, maxFps

-

-

(*) Para obter uma explicação detalhada sobre o uso de uma ou várias chaves de conteúdo para proteger uma ou várias faixas em um streamset, consulte a seção de documentação do Contrato de Criptografia. _