Microsoft PlayReady kullanarak DASH İçerik Koruması

Ortak Şifreleme (ISO/IEC 23001-7) ve Microsoft PlayReady kullanarak HTTP üzerinden Dinamik Uyarlamalı Akış (ISO/IEC 23009-1) üzerinden Canlı ve İsteğe Bağlı Profiller için İçerik Koruması Uygulama.

Geçerli Sürüm

Geçerli sürüm 15 Şubat 2018'de yayımlanan sürüm 1.3'dür

Daha fazla bilgi için lütfen Değişiklik Geçmişi'ne bakın.

Soyut

ISO/IEC 23009-1 ISO Temel Medya Dosya Biçimi İsteğe Bağlı ve Canlı DASH Profilleri ISO/IEC 23001-7, "ISO temel medya dosya biçimi dosyalarında Ortak Şifreleme" belirtimi ile kullanılabilir. Microsoft PlayReady hem ISO/IEC 23001-7 hem de ISO/IEC 23009-1'i destekler. Bu belirtim, hem Canlı hem de İsteğe Bağlı uyarlamalı akış senaryoları için ISO/IEC 14496-12 medya gösterimleri için Microsoft PlayReady kullanımını işaret eden bir ISO/IEC 23009-1 Medya Sunu Açıklaması dosyasının nasıl oluşturulacağını açıklar.

Yasal Uyarı

© 2018 Microsoft Corporation. Tüm hakları saklıdır. Bu belge "as-is" sağlanır. URL ve diğer İnternet Web sitesi başvuruları da dahil olmak üzere bu belgede yer alan bilgiler bildirimde bulunmaksızın değişebilir. Kullanım riski size aittir.

Bu belge size herhangi bir Microsoft ürünündeki herhangi bir fikri mülkiyet için herhangi bir yasal hak sağlamaz. Bu belgeyi iç ve başvuru amacıyla kopyalayabilir ve kullanabilirsiniz. Bu belgeden hiçbir bildirimi kaldıramayın.

İçerik

Bölüm Başlık
1 Giriş
1.1 Kapsam
1,2 Konvansiyonlar
1.3 Terminoloji, Kısaltmalar ve Kısaltma Kelimeler
1.4 Referanslar
1.5 Değişiklik Geçmişi
2 PlayReady DASH İçerik Koruma Düzeni
2.1 DASH ContentProtection Tanımlayıcı Öğeleri
2.2 Uygulama Önerileri ve Gereksinimleri
3 Medya Sunusu Açıklaması Örneği
3.1 Başlatma Segmentinde veya Medya İçeriğinde PRO'yu Düzelt
3.2 MPD'ye PlayReady Nesnesi Ekleme

Tablolar

Tablo Başlık
Tablo 1 Track Şifreleme Kutusu
Tablo 2 KID gösterimi örneği

1. Giriş

MPEG'nin HTTP standardı [DASH] üzerinden Dinamik Uyarlamalı Akış, medya içeriğinin HTTP sunucularından HTTP istemcilerine teslimine yönelik biçimleri belirtir. DASH'de medya içeriğinin sunumu bir Medya Sunu Açıklaması (MPD) dosyasıyla açıklanmıştır. MPD, Bir Medya Sunusu içindeki bu kaynakların bağlamıyla birlikte Segmentler için kaynak tanımlayıcıları sağlar.

DASH'te bir Medya Sunumu, zaman dizisi Dönemler'den ([DASH], bölüm 5.3.2) oluşur. Bir Dönem içinde, medya içeriği Uyarlama Kümeleri ([DASH], bölüm 5.3.3) adı verilen bir dizi değiştirilebilir kodlanmış sürüm halinde düzenlenir. Her Uyarlama Kümesi, medya içerik bileşenlerinin teslim edilebilir kodlanmış sürümleri olan Gösterimlerden ([DASH], bölüm 5.3.5) oluşur.

Bir ContentProtection Tanımlayıcısı öğesi, şifreleme düzenini göstermek için bir Uyarlama Kümesi veya Gösterim ile ilişkilendirilebilir ve DRM lisans alımını etkinleştirmek için bir veya daha fazla ContentProtection Tanımlayıcısı öğesi eklenebilir ([DASH], bölüm 5.8.4.1).

1.1 Kapsam

ISO/IEC 23009-1 DASH Medya Sunu Açıklaması dosyasında İçerik Koruması şeması olarak Microsoft PlayReady'yi kullanma.

1.2 Kuralları

Bu belgedeki "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" ve "OPTIONAL" anahtar sözcükleri [RFC2119] içinde açıklandığı gibi yorumlanmalıdır. Yani:

  • "MUST", "REQUIRED" ve "SHALL", tanımın belirtimin mutlak bir gereksinimi olduğu anlamına gelir.

  • "MUST NOT" ve "SHALL NOT" ifadeleri, tanımın belirtimin mutlak bir yasaklanması olduğu anlamına gelir.

  • "GEREKLİ" ve "ÖNERİLEN", belirli bir öğeyi yoksaymak için geçerli nedenler olabileceği anlamına gelir, ancak farklı bir ders seçmeden önce tüm etkilerin anlaşılması ve dikkatle tartılması gerekir.

  • "DEĞİl" ve "ÖNERİlMEMELİ" ifadeleri, belirli bir davranışın kabul edilebilir olmasının geçerli nedenleri olabileceği anlamına gelir, ancak bu etiketle açıklanan herhangi bir davranış uygulanmadan önce tüm etkilerin anlaşılması ve olayın dikkatle ele alınması gerekir.

  • "MAY" ve "İSTEĞE BAĞLI", öğenin gerçekten isteğe bağlı olduğu anlamına gelir.

Başa dön

1.3 Terminoloji, Kısaltmalar ve Akronimler

1.3.1 Terminolojisi

Süre Açıklama
Uyarlama Kümesi DASH'te, bir veya birden çok medya içerik bileşeninin değiştirilebilir kodlanmış sürümleri kümesi.
İçerik Koruması (CP) İstemci cihazına teslim edilmesinden sonra Korumalı Kaynağın güvenliğini sağlama işlemi.
Katıştırılmış Lisans PlayReady Nesnesinde (PRO) depolanan bir Lisans.
Katıştırılmış Lisans Deposu (ELS) Katıştırılmış Lisansları depolamak için PlayReady Nesnesi'nde (PRO) bir kayıt.
Genel Benzersiz Tanımlayıcı (GUID) 32 karakterlik onaltılık dize şeklinde, kısa çizgilerle ayrılarak temsil edilen ve genellikle 128 bitlik bir tamsayı olarak depolanan benzersiz bir referans numarası.
Başlatma Segmenti Medya Segmentlerinde kapsüllenmiş medya akışlarını sunmak için gerekli meta verileri içeren bir DASH Segmenti; ISO Medya durumunda, bir dosya üst bilgisi.
Anahtar Tanımlayıcısı (KID) İçeriği, lisansları veya diğer hassas bilgileri koruyan bir anahtarı benzersiz olarak tanımlayan UUID; PlayReady durumunda GUID olarak depolanır.
Anahtar Döndürme Medyayla ilişkili şifreleme anahtarında düzenli değişiklikler. Bu genellikle şu anlama gelir:
Yaprak Lisans Kök Lisanstaki bir içerik anahtarı kullanılarak içerik anahtarı şifrelenmiş olan bir lisans.
Lisans İlkeler ve şifrelenmiş içerik anahtarı içeren playready veri yapısı.
Lisans Alma URL'si (LAURL) PlayReady lisans alma web hizmeti URL'si.
Lisans Zinciri Lisans Zinciri, Kök Lisans ve Yaprak Lisans'lardan oluşur. Bir Yaprak Lisans’ın birden çok Kök Lisansı ve bir Kök Lisans’ın birden çok Yaprak Lisansı olabilir. Her çift için bir Lisans Zinciri vardır.
Canlı Profil ISO Temel medya dosyası biçimi canlı profili (bkz. [DASH] bölüm 8.4). Canlı Profil canlı kodlama için en iyi duruma getirilmiştir; burada her film kesimi şablon tarafından oluşturulan bir URL kullanılarak kodlandıktan hemen sonra istenebilir.
Medya Sunusu ISO/IEC 23009-1'de tanımlandığı gibi, medya sunusu olarak indirilebilen ve işlenebilen meta veriler ve medya verilerinin toplanması.
Medya Sunusu Açıklaması (MPD) ISO/IEC 23009-1'de tanımlanan medya sunusunun resmi XML belgesi açıklaması.
Medya Kesimi Medya biçimiyle uyumlu olan ve diğer Medya Kesimleri ve/veya Başlatma Kesimi ile birlikte oynatmayı etkinleştiren bir DASH Segmenti.
Film kutusu ('moov') ISO Temel Medya Dosya Biçimi'nde, alt kutuları medya sunumu için meta verileri tanımlayan kutu [ISOBFF].
Film Parçası kutusu ('moof') ISO Temel Medya Dosya Biçimi'nde, Film Parçası kutusu medya sunusunun süresini [ISOBFF] genişletir ve DASH Medya Kesiminde bulunur.
İsteğe Bağlı Profil ISO Temel medya dosyası biçimi İsteğe Bağlı Profil (bkz. [DASH] bölüm 8.3). İsteğe Bağlı Profil, İsteğe Bağlı içerik için temel destek sağlar. Her Gösterim tek bir Segment olarak sağlanır, Alt Bölümler Uyarlama Kümesinin Gösterimleri arasında hizalanır ve Alt Bölümler bir film segmentine karşılık gelen Bir Akış Erişim Noktası ile başlar.
Dönem Medya Sunusu Aralığı.
PlayReady Nesnesi (PRO) İsteğe bağlı olarak PRH ve ELS kayıtları dahil olmak üzere değişken sayıda kayıt içeren ikili nesne. Bu kayıtlar lisanslar ve lisans alımıyla ilgili bilgileri içerir (bkz. [PRO]).
Koruma Sistemine Özgü Üst Bilgi kutusu ('pssh') ISO Temel Medya Dosya Biçimi'nde, Koruma Sistemine Özgü Üst Bilgi kutusu belirli bir İçerik Koruma sisteminin lisans almak ve [ISOBFF] medya içeriğinin şifresini çözmek için gereken meta verileri içerir.
Temsil ISO medya dosyası gibi tanımlı bir dönem boyunca medya içeriği bileşenlerinden birinin alternatif seçimidir. Bir MPD Gösterimi öğesi ([DASH], bölüm 5.3.5) tarafından açıklanır.
PlayReady Üst Bilgisi (PRH) PlayReady Nesnesi'nde (PRO) bir veya birden çok Anahtar Kimlik ve Lisans Alma URL'si dahil olmak üzere medya içeriğinin şifresini çözmek için gereken meta verileri içeren bir kayıt (bkz. [PRH]).
Kök Lisans Yaprak Lisanstaki içerik anahtarını şifrelemek için içerik anahtarı kullanılan lisans
Parça DASH'de, MPD içerisinde bir medya kaynağını HTTP-URL ve isteğe bağlı bayt aralığı ile referans alan bir öğedir.
Segment Dizini MPD'den ayrı bir Medya Kesimi içinde bayt aralığı dizin eşlemesine kadar olan zaman aralığı, ISO Medyası 'sidx' kutusu olarak tanımlanır.
Akış Erişim Noktası (SAP) Bir Temsil içerisindeki konum, yalnızca o konumdan itibaren mevcut Temsil verilerini kullanarak medya kesimini oynatmayı sağlar.
Alt Ayrım DASH'de bu, Segment Dizini tarafından dizine alınan bir Medya Kesimi içindeki bir birimdir. Film segmenti, DASH İsteğe Bağlı Profilinde Alt Bölüm olarak, DASH Canlı Profilinde segment olarak ele alınıyor.
Şifrelemeyi İzle kutusu ISO Temel Medya Dosya Biçimi'nde, Parça Şifreleme kutusu ('tenc'), bir parça için [CENC], [ISOBFF] varsayılan şifreleme parametrelerini açıklar.
UUID [X.667] içinde belirtildiği gibi sayı veya dize olarak temsil edilen matematiksel olarak benzersiz bir tanımlayıcı
İsteğe Bağlı Video (VOD) Son kullanıcının isteğe bağlı olarak video içeriği seçmesini ve izlemesini sağlayan sistem. HEM DASH Canlı Profili hem de İsteğe Bağlı DASH Profili VOD sunusu için kullanılabilir.

1.3.2 Kısaltmalar ve Akronimler

Abbr. Anlamı
CP İçerik Koruması
KOŞMAK HTTP üzerinden Dinamik Uyarlamalı Akış
ELS Gömülü Lisans Deposu
GUID Genel Benzersiz Tanımlayıcı
ÇOCUK Anahtar Tanımlayıcısı
LAURL Lisans Alma URL'si
Metropol Polis Departmanı (MPD) Medya Sunumu Açıklaması
PRH PlayReady Başlık
PROFESYONEL PlayReady Nesnesi
SAP Akış Erişim Noktası
UUID Evrensel Olarak Benzersiz Tanımlayıcı
VOD İsteğe Bağlı Video

1.4 Kaynaklar

1.4.1 Normatif Başvurular

Kod Normatif Başvuru
[CENC] ISO/IEC FDIS 23001-7:2016 "Bilgi teknolojisi – MPEG sistemleri teknolojileri – Bölüm 7: ISO temel medya dosya biçimi dosyalarında ortak şifreleme", https://www.iso.org/standard/68042.html
[DASH] ISO/IEC 23009-1:2014, İkinci Sürüm, "Bilgi teknolojisi — HTTP (DASH) üzerinden dinamik uyarlamalı akış — Bölüm 1: Medya sunu açıklaması ve segment biçimleri", http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip
[EME] "Şifrelenmiş Medya Uzantıları", W3C Önerisi 18 Eylül 2017https://www.w3.org/TR/encrypted-media/
[PRH] "Microsoft PlayReady Üst Bilgisi, bkz. PlayReady Üst Bilgi Belirtimi
[PRO] "Microsoft PlayReady Nesnesi, bkz. PlayReady Üst Bilgi Belirtimi
[RFC2119] " Gereksinim Düzeylerini Belirtmek için RFC'lerde kullanılacak anahtar sözcükler ", S. Bradner, Mart 1997, http://www.ietf.org/rfc/rfc2119.txt
[RFC3629] "UTF-8, ISO 10646 dönüşüm biçimi", F. Yergeau, Kasım 2003, http://tools.ietf.org/html/rfc3629
[RFC4122] "A Universally Unique IDentifier (UUID) URN İsim Alanı", P. Leach, M. Mealling, R. Salz, Temmuz 2005,http://www.ietf.org/rfc/rfc4122.txt
[X.667] "Bilgi teknolojisi – Open Systems Interconnection – OSI Kayıt Yetkililerinin çalışmasına yönelik yordamlar: Evrensel Benzersiz Tanımlayıcıların (UUID) oluşturulması ve kaydedilmesi ve BUNLARıN ASN.1 nesne tanımlayıcı bileşenleri olarak kullanılması" X Serisi ITU-T Önerisihttp://www.itu.int/rec/T-REC-X.667-201210-I/en

1.4.2 Bilgi Referansları

Kod Bilgilendirme Referansı
[CPSID] DASH Endüstri Forumu, "Koruma Sistemine Özgü Tanımlayıcılar",http://dashif.org/identifiers/content_protection/
[DASHIF] DASH Endüstri Forumu, "Uygulama Yönergeleri: DASH-IF Birlikte Çalışabilirlik Noktaları", 07 Eylül 2017, Sürüm 4.1,https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf
[ISOBFF] ISO/IEC 14496-12, Fourth Edition (Düzeltilen sürüm 2012-09-15), "Bilgi teknolojisi – Görsel-işitsel nesnelerin kodlaması – Bölüm 12: ISO Temel Medya Dosya Biçimi",http://standards.iso.org/ittf/PubliclyAvailableStandards/c061988_ISO_IEC_14496-12_2012.zip

Başa dön

1.5 Değişiklik Geçmişi

Sürüm Tarih Ayrıntılar
Sürüm 1.3 15 Şubat 2018 16 bayt Başlatma Vektörleri (16 baytlık IV) için desteği netleştirin.
Sürüm 1.2 8 Ekim 2014, Cumartesi 1) CENC 2. sürüm değişiklikleri
2) DASH MPD ContentProtection Tanımlayıcı öğeleriyle ilgili değişiklikler
3) Terim ekleme ve açıklama terimleri için Terminolojideki değişiklikler
4) Normatif ve bilgilendirici başvuruların en son sürüme atfedilmesi için yapılan değişiklikler
5) ISOBFF kutularında, PRO ve PlayReady lisansında KID temsilini ve byte sıralamasını netleştirin.
Sürüm 1.1 18 Şubat 2013, Saat 2013 PlayReady SystemID gösterimini netleştirin.
PlayReady SystemID değeri 9a04f079-9840-4286-ab92-e65be0885f95 şeklindedir.
Büyük endian gösterimi = {0x9A, 0x04, 0xF0, 0x79, 0x98, 0x40, 0x42, 0x86, 0xAB, 0x92, 0xE6, 0x5B, 0xE0, 0x88, 0x5F, 0x95}.
Küçük endian gösterimi = {0x79, 0xF0, 0x04, 0x9A, 0x40, 0x98, 0x86, 0x42, 0xAB, 0x92, 0xE6, 0x5B, 0xE0, 0x88, 0x5F, 0x95}.
Sürüm 1.0 17 Temmuz 2012 İlk sürüm



2. PlayReady DASH İçerik Koruma Şeması

Microsoft PlayReady, yeni ISO/IEC 23009-1 [DASH] ve ISO/IEC 23001-7 [CENC] standartlarını destekler. Bu belirtim, hem İsteğe Bağlı ([DASH], bölüm 8.3) hem de Canlı ([DASH], bölüm 8.4) uyarlamalı akış senaryoları için ISO Temel Medya Dosya Biçimi medya gösterimleri için Microsoft PlayReady kullanımına işaret eden bir DASH Medya SunuSu Açıklama dosyasının nasıl oluşturulacağını açıklar.

Bu belirtimlerin odak noktası olan dört senaryo VOD veya medyanın canlı sunularıdır:

  1. tek bir anahtarla şifrelenir

  2. bazı içeriklerin şifrelendiği ve bazı içeriğin temiz olduğu

  3. Katıştırılmış Yaprak Lisansları Olmadan Anahtar Döndürme ile

  4. Katıştırılmış Yaprak Lisanslarla Anahtar Yenileme

2.1 DASH ContentProtection Tanımlayıcı Öğeleri

DASH, ISO Medyası için iki tür ContentProtection Tanımlayıcısı öğesi tanımlar ([DASH] bölüm 5.3.7.2-Tablo 9, 5.8.5.2 ve 5.8.4.1):

  1. @schemeIdUri=”urn:mpeg:dash:mp4protection:2011” @value=”<scheme>” ile
  2. @schemeIdUri=”urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” @value=”DRMNAME version” ile

İlk tanımlayıcı türü, şifrelenmiş her ISO Medyası yolundaki Koruma Düzeni Bilgi Kutusu'nda ('schi'ler) yer alan şifreleme düzeninin dört karakter kodunu ("4CC") gösterir. Bu tanımlayıcı türü her zaman mevcut olacaktır, böylece oyuncular içeriğin şifrelendiğini fark ederler ve indirmeye ve oynatmaya çalışmadan önce şifreleme şemasının şifresini çözüp çözemediğini belirleyebilirler.

İkinci tanımlayıcı türü, ilişkili Uyarlama Kümesi için lisans ve şifre çözme anahtarı sağlayabilen belirli bir DRM sisteminin UUID dizesini gösterir. DASH Endüstri Forumu, DVB ve DECE tarafından oluşturulan uygulama spesifikasyonları, Bir Uyarlama Kümesindeki tüm Gösterimlerin aynı anahtarları ve lisansları paylaşmasını zorunlu kılar, bu da uyarlamalı geçişin sorunsuz gerçekleşmesini sağlamak için MPD'nin Gösterim düzeyinden ContentProtection Tanımlayıcısı kısıtlanarak sağlanır. UUID dizesi, bir dosyanın veya DASH Başlatma Kesiminin Movie Box'ında ('moov') bulunabilecek ISO Medya Koruma Sistemine Özgü Bilgi Kutusu ('pssh') tarafından belirtilen SystemID alanına eşittir.

Not 'pssh' kutusu, içerik koruma sistemini benzersiz olarak tanımlayan bir SystemID, bir UUID [X.667] içerir. PlayReady SystemID değeri 9a04f079-9840-4286-ab92-e65be0885f95 şeklindedir.

DRM sistemleri için SystemID değerleri şu konumda kayıtlıdır: https://dashif.org/identifiers/content_protection/

Her AdaptationSet öğesi, birden fazla DRM sistemi için lisansların mevcut olduğunu belirtmek üzere birden çok DRM Tanımlayıcısı listeleyebilir. Her DRM sistemi kendi ad alanında öğeleri ve öznitelikleri belirtebilir ve bunları SystemID'lerini kullanarak Tanımlayıcılar'da isteğe bağlı veya gerekli hale getirir.

Ortak Şifreleme'nin ([CENC] bölüm 11) ikinci sürümü, geliştirilmiş birlikte çalışabilirlik için tüm DRM ContentProtection Tanımlayıcıları tarafından kullanılabilen isteğe bağlı bir cenc:pssh öğesi belirtir. Ayrıca, tüm sistemler için gereken lisansı tek bir yerde tanımlamak üzere mp4protection Tanımlayıcısı'na eklenmesi için önerilen bir cenc:default_KID özniteliğini belirtir. cenc:pssh öğesi tam bir 'pssh' kutu yapısı içerdiğinden, [EME] web tarayıcılarındaki Şifrelenmiş Medya Uzantısı (EME) API'si tarafından aynı şekilde işlenir.

DRM sistemleri şu durumlarda lisans alma bilgileri sağlayabilir:

  1. MPD'de ContentProtection Tanımlayıcısı'ndaki bir cenc:pssh öğesi
  2. Bir dosyanın veya Başlatma Segmentinin 'moov' kutusunda bir 'pssh' kutusu
  3. Yukarıdakilerin her ikisi de (bu durumda, cenc:pssh öğesi önceliklidir)

İş akışına bağlı olarak, kodlama veya paketleme sırasında Adaptasyon Setindeki her dosyanın içine lisans edinme bilgilerini yerleştirmek daha etkili olabilir; veya akış sunumu sunulduğunda bir MPD'ye bir cenc:pssh öğesi eklemek daha etkili olabilir. Canlı akış için, ilk Başlatma Segmenti ve 'pssh' kutusu aynı anda muhtemelen milyonlarca izleyiciye aynı anda teslim edilirken birçok eşzamanlı lisans isteğini tetiklemektense, erken lisans almayı etkinleştirmek için MPD'de cenc:pssh kullanmak daha iyidir. MPD'deki lisans alma bilgileri, farklı akış hizmetlerinin ayrı medya dosyaları oluşturup yönetmeden farklı lisans sunucuları kullanmasına, bunları zaman içinde değiştirmesine vb. olanak tanır.

PlayReady söz konusu olduğunda, lisans almayı etkinleştirmek için bir cenc:pssh öğesinde, mspr:pro öğesinde veya 'pssh' kutusunda bir PlayReady Nesnesi (PRO) [PRO] bulunabilir. mspr:pro öğesi Microsoft PlayReady tarafından tanımlanır ve 'pssh' ve cenc:pssh içindeki kutu yapısını değil yalnızca PRO [PRO] bilgilerini içerir. Hem mspr:pro hem de cenc:pssh dahil olmak üzere, Silverlight tabanlı bir oyuncu dahil eski oyunculara ve HTML5 tarayıcılarında korumalı DASH sunularını oynatmak için betik kullanan web sayfaları dahil yeni oyunculara olanak tanır.

Not Bu belirtim boyunca 'mspr' xmlns:mspr="urn:microsoft:playready" tarafından tanımlanan 'urn:microsoft:playready'dir.

Başa dön

2.1.1 Başlatma Kesiminde veya Medya İçeriğinde PRO'yu Düzelt

Doğru PRO'yu içeren bir Başlatma Kesimi varsa veya medya içeriği doğru PRO'ya sahip bir PlayReady 'pssh' kutusu içeriyorsa, PlayReady Content Protection Sisteme özgü tanımlayıcısı [CPSID] olan aşağıdaki ContentProtection Tanımlayıcısı öğesi, PlayReady lisansının kullanılabilirliğini göstermek için MPD'deki adaptasyon kümesi öğesinde kullanılmalıdır:

<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”/>

PlayReady, Ortak Şifreleme [CENC] standardını destekler. Lisans alma meta verileri Başlatma Kesiminde veya 'pssh' medya içeriğinde depolandığında, PlayReady ContentProtection Tanımlayıcı öğesi MEVCUT OLMALıDıR.

Aşağıdaki ContentProtection Tanımlayıcısı öğesi her korumalı Uyarlama Kümesinde BULUNACAKTıR ve tek bir örnek 'cenc' düzenini destekleyen tüm DRM'ler için şifreleme düzenini gösterir.

<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>

2.1.2 MPD'de PlayReady Nesnesi Ekleme

PlayReady Nesnesi [PRO] öğesinin PlayReady ContentProtection Tanımlayıcısı öğesine eklenmesi gereken birden çok durum vardır. Örneğin:

  • PlayReady 'pssh' kutusunun bulunmadığı bir sunu

  • PlayReady 'pssh' kutusunda bulunan PRO'nun geçersiz kılınması gereken bir sunum

PlayReady'yi İçerik Koruma Düzeni olarak tanımlamak ve İçerikKoruma Tanımlayıcı elementi içine PRO eklemek için, hem [CENC] cenc:pssh söz dizimi hem de mspr:pro söz dizimi geriye dönük uyumluluk sağlamak amacıyla aşağıdaki gibi kullanılması önerilir:

<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”>
  	<cenc:pssh>
          <!-- *base64-encoded PlayReady ‘pssh’ complete box* -->
  	</cenc:pssh>
  	<mspr:pro>
          <!-- *base64-encoded PlayReady Object* -->
    </mspr:pro>
</ContentProtection>

PlayReady ContentProtection Tanımlayıcısı öğesine PlayReady 'pssh' kutusu ve PRO dahil edildiğinde aşağıdaki kurala uyulmalıdır:

  • PlayReady ContentProtection Tanımlayıcısı öğesine cenc:pssh veya mspr:pro eklenmişse:

    • Bir PRO, medya içeriğindeki Koruma Sistemine Özgü Üst Bilgi ('pssh') kutusuna dahil edilmişse, hem cenc:pssh hem de mspr:pro SHALL içinde yer alan BIR PRO'daki KID base64 kodlu dize değeri ([PRO] KID etiket değeri), 'pssh' kutusuna dahil edilen PRO'daki KID base64 kodlu dize değeriyle eşdeğerdir.

    • Temsil için PlayReady 'pssh' içeren bir Başlatma Kesimi varsa, o temsil için hem cenc:pssh hem de mspr:pro içinde yer alan BIR PRO'daki KID base64 kodlu dize değeri, Başlatma Segmentinin 'pssh' kutusunda yer alan PRO'daki KID base64 kodlu dize değeriyle eşdeğer olmalıdır. Başlatma Kesiminin, HTTP yanıt gövdesinde yer alan depolanmış medya içerik dosyasının dosya üst bilgisinin bir kopyası olabileceğini, ancak dinamik olarak oluşturulabileceğini ve hiçbir zaman dosya olarak depolanmadığını unutmayın.

  • Medya içeriğinde LAURL içeren bir PRO barındıran bir PlayReady 'pssh' kutusu varsa ve bu LAURL, ContentProtection Tanımlayıcı öğesinde yer alan PRO'daki LAURL'den farklıysa, ContentProtection Tanımlayıcı öğesi LAURL öncelikli kabul edilir.

Başa dön

2.1.3 MPD'ye Parça Şifreleme Kutusu Alanlarının Dahil Edilmesi

Ortak Şifreleme, her film segmentindeki her medya örneğinin anahtar tanımlayıcıları (KID) ile hangi anahtarla şifrelendiğini (veya şifrelenmediğini) belirtir. Bazı bilgiler, örneğin Track Encryption Box'taki ('tenc') default_KID, hangi lisansın gerektiğini belirlemek için MPD'de sinyal vermek amacıyla yararlıdır.

Şifrelenmemiş Medya Sunu Dönemleri ve ardından şifrelenmiş Dönemler olabilir. Medya dosyaları ve akışları hem şifrelenmiş hem de şifrelenmemiş bölümler içerebilir. Buna ek olarak, Anahtar Tanımlayıcı (KID) Dönemden Döneme veya bölümden bölüme değişebilir. Bir parçanın bölümlerindeki önemli değişiklikler, her film segmentindeki ISO Medya örnek grubu ve örnek grup açıklama kutuları kullanılarak işaretlenir. Örnek gruplar hakkında daha fazla bilgi edinmek ve Örnek Yardımcı Bilgileri işaret eden 'saio' ve 'saiz' kutularını kullanan Başlatma Vektörleri ve alt örnek şifreleme aralıklarına erişim için bkz. [CENC].

Ortak Şifreleme bilgileri için varsayılan ayarlar, ISO dosya üst bilgisinde ve Başlangıç Segmentinde bir İzleme Kutusu'nda ('trak') depolanan her parçanın kendi Şifreleme İzle kutusunda ('tenc') kodlanır (bkz. [ISOBFF] ve [CENC]). Parça Şifreleme Kutusundaki (default_KID alanı) varsayılan Anahtar Tanımlayıcısı (KID) Medya Sunumu Uyarlama Seti ile ilişkilendirilmiş ContentProtection Tanımlayıcı öğesinde de iletilmelidir. cenc:default_KID, üst AdaptationSet öğesi tarafından başvuruda bulunılan Medya Kesimlerinin şifresini çözebilen bir lisansı tanımlamak için kullanılabilir.

Ortak Şifreleme ContentProtection Tanımlayıcısı öğesine varsayılan Anahtar Tanımlayıcısını (KID) eklemek için [CENC] içinde belirtilen aşağıdaki cenc:default_KID özniteliğini kullanın:

<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="da9b5994-600c-2ad0-f96d-f12725780978"/>

'tenc' içindeki default_KID alanı 16 baytlık büyük bir endian dizisidir ve yukarıda Common Encryption ContentProtection Descriptor öğesindeki cenc:default_KID özniteliğinde UUID dizesi olarak depolanacak şekilde tanımlanır.

ContentProtection Tanımlayıcısı öğesi birkaç parçaya başvurduğunda ve bunlar farklı 'tenc' kutularında farklı varsayılan Anahtar Tanımlayıcıları kullandığında, cenc:default_KID özniteliği BU farklı default_KID değerlerinin boşlukla ayrılmış bir listesini depolamalıdır.

cenc:default_KID özniteliği PlayReady ContentProtection Tanımlayıcısı öğesinde de bulunabilir.

Aşağıdaki Tablo 1'de ISO Media Track Şifreleme Kutusu'nda ('tenc') belirtilen alanlar listelenmiştir (bkz. bölüm 9.2, [CENC]). Ortak Şifreleme'nin ilk sürümü (mspr:IsEncrypted, mspr:IV_size ve mspr:kid) için "mspr" ad alanında tanımlanan ancak kullanım dışı bırakılan ve işlevsel olarak İkinci Ortak Şifreleme [CENC] sürümünde belirtilen cenc:default_KID ile değiştirilen Tablo 1'in altındaki öğeler. Parça Şifreleme Kutusu'ndaki ('tenc') IV_size ve IsEncrypted alanları şifre çözme sırasında kullanılır, ancak MPD ContentProtection Açıklayıcı elemanlarında gerekli değildir.

Not mspr:kid içindeki KID değeri, büyük bir endian UUID'sini depolamak için tanımlanan 'tenc' default_KID bayt dizisinin base64 kodlu küçük endian GUID yorumudur. İzleme Şifreleme Kutusundaki tüm alanlar MPD'ye aktarılabilir, ancak lisans alımı için yalnızca default_KID'in açığa çıkarılması gereklidir.

Tablo 1 – Şifreleme Kutusu Alanlarını İzleme

Öğe Varsayılan Açıklama
default_IsEncrypted 1 Örnek grubundaki örneklerin şifreleme durumunu gösteren bayrak. İzin verilen değerler 0 (şifrelenmemiş) ve 1 (şifrelenmiş) değerleridir.
default_IV_size 8 Başlatma Vektör (IV) alanının bayt cinsinden boyutu.
- PlayReady sürüm 1, 2, 3, 0 ve 8'i destekler.
- PlayReady sürüm 4 ve üzeri 0, 8 ve 16'yı destekler.
default_IsEncrypted = 1 ise, default_IV_size 0 olarak ayarlanmamalıdır.

PlayReady özellikli tüm oyuncular 16 bayt Başlatma Vektörlerini desteklemediğinden, hizmetin PlayReady sürüm 1/2/3 oyunculara ulaşması gerekiyorsa şifrelenmiş içerik için yalnızca 8 default_IV_size kullanılması ÖNERILIR.
default_KID Hiçbiri İlişkili örneklerin şifresini çözmek için gereken anahtarı benzersiz olarak tanımlayan 16 Baytlık (128 bit) Anahtar Tanımlayıcısı. Anahtar tanımlayıcısı [CENC] işlevine göre UUID olarak değerlendirilir
PlayReady Header [PRH] içindeki KID'den farklı olarak, 'tenc' default_KID, büyük endian bayt sıralamasıyla sıralanmış, 128-bit tamsayı ikiliye eşdeğer (bölüm 6.2) ve sayı (bölüm 6.3) olarak [X.667] içerisinde belirtilen UUID gösterimlerine karşılık gelen, 16 baytlık bir dizi şeklinde depolanır.

Not: Parça Şifreleme Kutusu'ndaki default_KID biçimi, cenc:pssh, mspr:pro ve mspr:kid içinde PRO'ya eklenmiş KID değerinin biçiminden farklıdır. Ayrıntılar için bölüm 2.2.5, [CENC] ve [PRO] bölümüne bakın.

PlayReady'yi İçerik Koruma Düzeni olarak tanımlamak ve MPD'ye Şifreleme Kutusunu İzle alanlarını eklemek için aşağıdaki söz dizimini kullanın:

<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”>
  <mspr:IsEncrypted>1</mspr:IsEncrypted>
  <mspr:IV_size>8</mspr:IV_size>
  <mspr:kid>2ptZlGAMKtD5bfEnJXgJeA==</mspr:kid>
</ContentProtection>

PlayReady İçerik Koruma Tanımlayıcısı öğesindeki Ortak Şifreleme İçerik Koruma Tanımlayıcısı öğesine ve İzleme Şifreleme Kutusu alanlarına cenc:default_KID özniteliği eklenirken aşağıdaki kurallara mutlaka uyulmalıdır:

  • Common Encryption ContentProtection Descriptor öğesindeki cenc:default_KID özniteliğindeki KID dizesi, bu parçanın Parça Şifreleme kutusundaki default_KID UUID ile eşdeğer olmalıdır.

  • PlayReady ContentProtection Tanımlayıcı öğesindeki mspr:IsEncrypted, mspr:IV_size ve/veya mspr:kid değeri, ilgili parçanın Parça Şifreleme kutusundaki default_IsEncrypted, default_IV_size veya default_KID alanlarında bulunanlarla eşdeğer olmalıdır.

  • PlayReady ContentProtection Tanımlayıcısı öğesine mspr:pro ve cenc:pssh ekleniyorsa (bkz. bölüm 2.1.2) Şifreleme Kutusu alanları ile birlikte:

    • mspr:pro ve cenc:pssh öğeleri içindeki PRO'da katıştırılmış KID, o parçanın Parça Şifreleme Kutusundaki default_KID'e eşdeğer olmalıdır.

    • Common Encryption ContentProtection Descriptor öğesindeki cenc:default_KID özniteliğindeki KID ve PlayReady ContentProtection Descriptor öğesindeki mspr:kid değeri, bu parçanın Parça Şifreleme Kutusundaki default_KID ile eşdeğer olmalıdır.

Not İzleme Şifreleme Kutusu'ndaki default_KID, 16 baytlık büyük endian bayt dizisi olarak depolanan ikili veya sayısal UUID olarak, cenc:default_KID içinde UUID tireli dize olarak ve PRO ve mspr:kid içindeki küçük endian bayt sırası GUID gösteriminden kodlanmış bir base64 dizesi olarak yorumlanır; ancak tümü aynı UUID'in alternatif temsilleri olmalıdır. Bkz. bölüm 2.2.5.

Başa dön

2.2 Uygulama Önerileri ve Gereksinimleri

PlayReady Nesnesi (PRO) [PRO], kodlanmış medya Koruma Sistemine Özgü Başlık kutusu ('pssh') [ISOBFF], Başlatma Kesimi veya MPD'nin kendisinde kodlanarak dahil edilebilir.

Film kutusuna ('moov') veya Film Parçası kutusuna ('moof') bir 'pssh' kutusu eklenebilir. Örneğin, Başlatma Kesimlerinin ([DASH], bölüm 5.3.9.5.2) kullanımını etkinleştirmek için 'moov' kutusuna bir 'pssh' kutusu eklenebilir. Anahtar değişimi için KID tarafından dizine alınan Yaprak Lisansları iletmek amacıyla her 'moof' kutusuna bir 'pssh' kutusu eklenebilir.

Örnekleme Grubu ve Örnekleme Yardımcı Bilgiler, ilgili film segmentinde depolanmalıdır. Örnek Gruplandırma Kutusu ('sbgp') mevcut olduğunda her 'moof' kutusunda bir Örnek Grup Açıklama Kutusu ('sgdp') bulunmalıdır. Örnek Yardımcı Bilgi Uzaklığı Kutusu ('saio') ve Örnek Yardımcı Bilgi Boyut Kutusu ('saiz') Her parçanın Parça Şifreleme Kutusu ('tenc') içeren her film segmentinde, Örnek Yardımcı Bilgiler için geçerli işaretçilerle birlikte bulunmalıdır.

2.2.1 Genel

PlayReady ContentProtection Tanımlayıcısı öğesi Uyarlama Kümeleri veya bunların Gösterimleri ile ilişkilendirilebilir, ancak sorunsuz uyarlamalı bit hızı değiştirme ve DASH uygulama belirtimlerine uygunluk için PlayReady ContentProtection Tanımlayıcısı öğesi, Gösterim öğeleri yerine AdaptationSet öğesinde yer alır. Bu, bir Uyarlama Kümesindeki tüm Segmentler için tek bir lisans ve şifre çözücü yapılandırmasının kullanılabilmesini sağlar.

MPD'ye PlayReady ContentProtection Tanımlayıcısı'nın eklenmesi ÖNERİLİR ve "cenc" değerine sahip DASH MP4 ContentProtection Tanımlayıcısı'nın eklenmesi ZORUNLUDUR.

Bu, bir uygulamada veya MPD'de ya da başlatma kesimindeki bir 'pssh'de "cenc" özellikli ve lisans alma bilgilerine sahip olan DRM'lerin içeriğin Common Encrypted olduğunu belirlemesini, gerekli lisansı tanımlamasını (default_KID kullanarak), lisans almasını ve medyanın şifresini çözmesini sağlar.

İnsan tanıma için PlayReady ContentProtection Tanımlayıcısı'nda UUID'ye ek olarak adı ve sürümü "MSPR 2.0" olan özniteliğin eklenmesi @value ÖNERILIR. Örneğin:

<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="da9b5994-600c-2ad0-f96d-f12725780978"/>

<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”/>

2.2.2 PRO Konumunun Önceliği

bir istemci uygulaması MPD'de bir PRO bulduğunda, başlatma segmentinde yer alan bir PRO'ya göre öncelikli olacaktır (bkz. 2.2.3'te ek Başlatma Segmenti PRO gereksinimleri).

İstemci uygulama MPD'de bir PRO bulduğunda, bu PRO'da bulunan Rights Management Üst Bilgisi, medya içeriğinin 'moov' kutusundaki 'pssh' kutusunda yer alan PRO'daki Rights Management Üst Bilgisi'ne göre öncelik verilmelidir.

Bir istemci uygulaması, Başlatma Segmenti içinde bir PRO bulduğunda, bu PRO, medya içeriğinin ‘moov’ kutu üst bilgisindeki ‘pssh’ kutusunda bulunan PRO'ya göre öncelik taşımalıdır (bkz. 2.2.3'te ek Başlatma Segmenti PRO gereksinimleri).

PRO nerede dahil edilmeli

PRO, MPD veya Başlatma Segmentinde bulunmalıdır. her ikisinde de bulunabilir. MPD'de, playready content protection tanımlayıcısında (eski oyuncular için mspr:pro) hem mspr:pro öğesinde hem de bir cenc:pssh öğesinde bulunmalıdır.

Başlatma Segmenti veya MPD'deki bir PRO, Hak Yönetimi Başlığı içerebilir.

Başlatma Kesimi kullanılıp kullanılmaması fark etmeksizin, MPD'nin doğru PRO'yu içermesi ÖNERILIR, böylece Rights Management Üst Bilgisi bilgileri Başlatma Kesimi indirilmeden alınabilir.

2.2.4 MPD PRO'ya neler dahil edilir?

PRO, Hak Yönetimi Üstbilgisi ve/veya Gömülü Lisans Deposu (ELS) içerebilir.

MPD PRO'nun Hak Yönetim Başlığını içermesi tavsiye edilir.

DRM Etki Alanı veya Lisans Zinciri şemasının bir parçası olarak gerekli olmadıkça ELS eklenmesi ÖNERILMEZ.

2.2.5 KID Bayt Sırası

PlayReady'deki Anahtar tanımlayıcıları (KID'ler), GUID (DWORD, WORD, WORD, 8 BAYT dizisi) olarak biçimlendirilmiş bir bayt dizisinde küçük endian bayt sırasına göre depolanır ve bu da PRO'da dize olarak depolama için base64 kodlanır. PlayReady ekosistemindeki playready lisans sunucuları ve PlayReady istemcileri, PRO ve PlayReady lisansındaki KID'nin [GUID] küçük bir endian bayt sırası gösterimi olmasını bekler.

Eşdeğer KID bir UUID dizesi ([X.667] bölüm 6.4) veya [X.667] içinde belirtildiği gibi büyük endian bayt sırası ikilisinde UUID içeren bayt dizisi (bölüm 6.2) veya sayı (bölüm 6.3) olarak temsil edilebilir. Ortak Şifreleme [CENC] ve DASH, cenc:default_KID özniteliğinde (6.4 dize), Track Şifreleme Kutusu ('tenc') ve 'seig' Örnek Grup Açıklama Kutusu ('sgpd') (6.2 ikili veya 6.3 sayı bayt dizisi) bu gösterimleri kullanır.

Sonuç olarak, bir değişiklik olmadığı sürece istemcinin PlayReady lisansıyla eşleştirmek için KIDs bayt dizisinin bitiş değerini dönüştürmesi gerekir.

cenc:default_KID özniteliği ve [ISOBFF] kutularındaki KID'leri PlayReady KID'ye dönüştürmek için aşağıdaki örnek kodu kullanın:

// Create a PlayReady GUID from the KID value in ISOBFF box.
// Since the PlayReady Server always runs on an Intel processor,
// this will be a little endian representation.
// e.g. KID in Track Encryption Box is:
//      {f81d4fae-7dec-11d0-a765-00a0c91e6bf6}

byte[] tencKidBytes = new byte[] {
    0xf8, 0x1d, 0x4f, 0xae,
    0x7d, 0xec,
    0x11, 0xd0,
    0xa7, 0x65,
    0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6
};

Byte[] prKidBytes = new byte[16];

// Swap the endianness of the GUID value:
// - Reverse bytes 0 to 3,
// - swap bytes 4 and 5,
// - swap bytes 6 and 7, and
// - copy bytes 8-15 as-is without swapping

ConvertEndianness(tencKidBytes, prKidBytes);
Guid prKid = new Guid(prKidBytes);
void ConvertEndianness(byte[] original, byte[] guidBytes)
{
    System.Array.Copy(original, guidBytes, 16);
    Swap(ref guidBytes, 0, 3);
    Swap(ref guidBytes, 1, 2);
    Swap(ref guidBytes, 4, 5);
    Swap(ref guidBytes, 6, 7);
}

void Swap(ref byte[] bytes, int pos1, int pos2)
{
    byte temp = bytes[pos1];
    bytes[pos1] = bytes[pos2];
    bytes[pos2] = temp;
}

Tablo 2KID gösterimi örneği

KID Parametresi Türü Temsil
ÇOCUK UUID BE Onaltılık Sayı f81d4fae7dec11d0a76500a0c91e6bf6
Bölüm 6.3, [X.667]
cenc:default_KID özniteliği Tireli UUID Onaltılık Dizgi "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
Bölüm 6.4, [X.667]
ISOBFF kutularında KID (Açıklama: KID nedir?) UUID BE Bayt Dizisi Onaltılık gösterim: { 0xf8, 0x1d, 0x4f, 0xae, 0x7d, 0xec, 0x11, 0xd0, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 }
Bölüm 6.2, [X.667]
KID PRO'da GUID LE Bayt Dizisinin Base64 Dizesi "rk8d+Ox90BGnZQCgyR5r9g=="
(Base64 kodlamadan önce verilerin onaltılık gösterimi { 0xae, 0x4f, 0x1d, 0xf8, 0xec, 0x7d, 0xd0, 0x11, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 })
mspr:kid 'tenc' kutusunda default_KID Bayt Dizisinin Base64 Dizesi "+B1Prn3sEdCnZQCgyR5r9g=="
(Base64 kodlamadan önce verilerin onaltılık gösterimi { 0xf8, 0x1d, 0x4f, 0xae, 0x7d, 0xec, 0x11, 0xd0, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 })
PlayReady lisansında KID GUID LE Bayt Dizisi Onaltılık temsil: { 0xae, 0x4f, 0x1d, 0xf8, 0xec, 0x7d, 0xd0, 0x11, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 }

Başa dön



3. Medya Sunusu Açıklaması Örneği

3.1 Başlatma Segmentinde veya Medya İçeriğinde PRO'yu Düzeltin

Yukarıdaki bölüm 2.1.1'e bakın.

<?xml version="1.0" encoding="utf-8"?>

<MPD
  xmlns="urn:mpeg:DASH:schema:MPD:2011"
  xmlns:cenc="urn:mpeg:cenc:2013"
  minBufferTime="PT2.00S"
  profiles="urn:mpeg:dash:profile:isoff-live:2011"
  type="static">
  <Period>
    <AdaptationSet mimeType="audio/mp4">
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="0b630844-cb17-496a-9700-3702e1d23ee2"/>
      <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”>
      </ContentProtection>
      <Representation bandwidth="134878" id="audio">
        <SegmentList duration="4000" timescale="1000">
          <Initialization sourceURL="audio/init.mp4"/>
          <SegmentURL media="audio/seg-0000.m4f"/>
          <SegmentURL media="audio/seg-0001.m4f"/>
          <SegmentURL media="audio/seg-0002.m4f"/>
        </SegmentList>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

3.2 MPD'de PlayReady Nesnesi (PRO) Ekleme

Yukarıdaki bölüm 2.1.2'ye bakın.

<?xml version="1.0" encoding="utf-8"?>

<MPD
  xmlns="urn:mpeg:DASH:schema:MPD:2011"
  xmlns:cenc="urn:mpeg:cenc:2013"
  xmlns:mspr="urn:microsoft:playready"
  minBufferTime="PT4.00S"
  profiles="urn:mpeg:dash:profile:isoff-live:2011"
  type="static">
  <Period>
    <AdaptationSet mimeType="audio/mp4">
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="0b630844-cb17-496a-9700-3702e1d23ee2"/>
      <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”>
<cenc:pssh>AAAAAJoE8HmYQEKGq5LmW+CIX5UAAALq6gIAAAEAAQDgAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AUgBBAGgAagBDAHgAZgBMAGEAawBtAFgAQQBEAGMAQwA0AGQASQArADQAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBxAGgASwBXAEgASgBhAEwAMAAxAEkAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAHkAbgBkAG4AcwAuAG8AcgBnAC8AYwBvAG4AdABvAHMAbwBzAHMAcAByAC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABEAFMAXwBJAEQAPgBpAEsARwBsAFcARwA0AEQAWABVAHEANAB3AGIAVwBnAFIATgBMAFIASgBnAD0APQA8AC8ARABTAF8ASQBEAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</cenc:pssh>
<mspr:pro>6gIAAAEAAQDgAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AUgBBAGgAagBDAHgAZgBMAGEAawBtAFgAQQBEAGMAQwA0AGQASQArADQAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBxAGgASwBXAEgASgBhAEwAMAAxAEkAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAHkAbgBkAG4AcwAuAG8AcgBnAC8AYwBvAG4AdABvAHMAbwBzAHMAcAByAC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABEAFMAXwBJAEQAPgBpAEsARwBsAFcARwA0AEQAWABVAHEANAB3AGIAVwBnAFIATgBMAFIASgBnAD0APQA8AC8ARABTAF8ASQBEAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</mspr:pro>
      </ContentProtection>
      <Representation bandwidth="134878" id="audio">
        <SegmentList duration="4000" timescale="1000">
          <Initialization sourceURL="audio/init.mp4"/>
          <SegmentURL media="audio/seg-0000.m4f"/>
          <SegmentURL media="audio/seg-0001.m4f"/>
          <SegmentURL media="audio/seg-0002.m4f"/>
        </SegmentList>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>