本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SPEKEAPIv2-標準有效載荷組件
根據針對特定內容定義的加密合約,透過單SPEKE一要求,加密程式可以要求多個內容金鑰,以及針對多種封裝格式所需的 manfest 訊號。
為了涵蓋所有這些方面,標準CPIX文件由三個強制清單區段組成,以及即時內容金鑰旋轉的可選清單區段。
<cpix: ContentKeyList > 區段和最上層<cpix : >元素 CPIX
這是一個強制性部分,與實時和VOD流媒體相關,定義了需要由加密器使用的不同內容密鑰。該<cpix:ContentKeyList>
元素可以包含一個或多個<cpix:ContentKey>
子元素,每個子元素描述不同的內容鍵。
根據CPIX規範,ContentKey@commonEncryptionScheme
屬性的可能值在ISO基礎媒體文件格式文件規範中的通用加密中定義(ISO/IEC23001-7:2016):
-
'cenc':AES-CTR 模式完整的樣本和視頻子樣本加密 NAL
-
'cbc1':AES-CBC 模式完整的樣本和視頻子樣本加密 NAL
-
'cen':AES-CTR 模式部分視頻NAL模式加密
-
'cbcs':AES-CBC 模式部分視頻模式加密 NAL
下列範例顯示具有CPIX單一非加密內容金鑰的文件:
<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>
依預設,內容金鑰不會加密,如以下範例所示。但是加密器可以通過包含<cpix : >元素來請求內容密鑰的加密。DeliveryDataList如需詳細資訊,請參閱內容金鑰加密一節。
支援的元素 SPEKE | 必要屬性 | 選擇性屬性 | 強制性子元素 | 可選的子元素 |
---|---|---|---|---|
< 個人資料比例:> CPIX |
contentId, 版本, XML: CPIX, XML: pskc |
名稱,XML: 名稱 |
一個 <cpix:ContentKeyList>,一個 <cpix:>,一個 <cpix:DRMSystemList> ContentKeyUsageRuleList |
一個 <cpix:DeliveryDataList>,一個 <cpix:> ContentKeyPeriodList |
< 個人資料比例:> ContentKeyList |
- |
id |
至少有一個 < 個人資料:> ContentKey |
- |
< 個人資料比例:> ContentKey |
孩子 commonEncryptionScheme, 數據 |
id, 演算法, 明確 |
一 <pskc:Secret> |
- |
<pskc:Secret> |
PlainValue 或 EncryptedValue |
價值 MAC |
- |
< 選項:EncryptionMethod>, < 一個:> CipherData |
< 章節:> 區段 DRMSystemList
這是一個強制性部分,與實時和VOD流媒體相關,定義了需要與內容密鑰一起使用的不同DRM系統。
下列範例顯示具有單一DRM系統規格的 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>
有關的完整列表 DRMsystemIDs,請參閱 DASH-IF 標識符存儲庫的內容保護部分
支援的元素 SPEKE | 必要屬性 | 選擇性屬性 | 強制性子元素 | 可選的子元素 |
---|---|---|---|---|
< 個人資料比例:> DRMSystemList |
- |
id |
至少有一個 < 個人資料:> DRMSystem |
- |
< 個人資料比例:> DRMSystem |
孩子, systemId |
身份證,姓名,PSSH |
- |
ContentProtectionData, SmoothStreamingProtectionHeaderData,兩個 <cpix:HLSSignalingData> 具有不同播放列表屬性值的元素 |
DRMSystem@PSSH
是強制性的,如果 ISO-BMFF 封裝應用於媒體段。 DRMSystem.ContentProtectionData
內部XML<pssh>
元素是由加密僅用於清單信號的目的利用。
如果存DRMSystem@PSSH
在並且DRMSystem.ContentProtectionData
包含內部XML<pssh>
元素,則兩個值應相同。
如果DRMSystem
信令是在HLS清單進行,一個<cpix:HLSSignalingData playlist="media">
和一個<cpix:HLSSignalingData playlist="master">
元素必須包括在CPIX請求和響應。
< 章節:> 區段 ContentKeyPeriodList
這是一個可選部分,僅與實時流媒體相關,定義應用於內容的加密期間。
該<cpix:ContentKeyPeriodList>
元素可以包含一個或多個<cpix:ContentKeyPeriod>
子元素,每個子元素都描述了實時時間軸中不同的加密時期。使用UUIDs作為 id 屬性值的一部分是一種常用的方法。
<cpix:ContentKeyPeriodList> <cpix:ContentKeyPeriod id="keyPeriod_0909829f-40ff-4625-90fa-75da3e53278f" index="1" /> </cpix:ContentKeyPeriodList>
支援的元素 SPEKE | 必要屬性 | 選擇性屬性 | 強制性子元素 | 可選的子元素 |
---|---|---|---|---|
< 個人資料比例:> ContentKeyPeriodList |
- |
id |
至少有一個 < 個人資料:> ContentKeyPeriod |
- |
< 個人資料比例:> ContentKeyPeriod |
識別碼,索引 |
- |
- |
- |
如果使用加密週期,則加密密鑰還需要附加到CPIX文檔中的一個加密期間,如以下部分所示。
< 區段:> 區段 ContentKeyUsageRuleList
這是一個強制性部分,與實時和VOD流媒體相關,定義了不同的內容密鑰如何保護流集內和整個加密期間的曲目。
<cpix: ContentKeyUsageRuleList > 元素可以包含一或多個 <cpix: ContentKeyUsageRule > 子元素,每個元素都描述了加密程序應用給定內容密鑰的軌道,可能在特定的加密期間內。至少有一個 <cpix: AudioFilter > 或一個<cpix : >元素中必須存在一個 <cpix: VideoFilter > 元素中。ContentKeyUsageRule
下列範例顯示一個簡單的清單,其中只有一個規則將單一內容金鑰套用至特定加密期間的所有音訊和視訊軌道。
<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>
支援的元素 SPEKE | 必要屬性 | 選擇性屬性 | 強制性子元素 | 可選的子元素 |
---|---|---|---|---|
< 個人資料比例:> ContentKeyUsageRuleList |
- |
id |
至少有一個 < 個人資料:> ContentKeyUsageRule |
- |
< 個人資料比例:> ContentKeyUsageRule |
孩子, intendedTrackType |
- |
至少有一個 <cpix: AudioFilter > 或一個 <cpix : >(*) VideoFilter |
< 個人資料比例:> KeyPeriodFilter |
< 個人資料比例:> KeyPeriodFilter |
periodId |
- |
- |
- |
< 個人資料比例:> AudioFilter |
- |
minChannels, maxChannels |
- |
- |
< 個人資料比例:> VideoFilter |
- |
minPixels, 畫maxPixels, 高速公路minFps, maxFps |
- |
- |
(*) 如需使用單一或多個內容金鑰來保護串流集中的一或多個音軌的詳細說明,請參閱加密合約文件一節。 _