Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İçerik Şifreleme
Paketleyicinin içeriği şifrelemesi gerekir. CTR modunda veya CBC modunda kullanılan AES-128 anahtarlarını kullanan tüm şifreleme biçimlerine Uyumluluk Kuralları tarafından izin verilir.
MP4 tabanlı biçimler önerilir. CMAF, PlayReady İstemcileri, Windows 10 ve Xbox One için tercih edilen MP4 tabanlı biçimdir.
Microsoft, endüstride geniş bir kabule sahip iki yaygın şifreleme şemasını destekler: 'cbcs' AES-CBC ve 'cenc' AES-CTR koruma şemaları. Bkz . ISO/IEC FDIS 23001-7:2016 "Bilgi teknolojisi – MPEG sistemleri teknolojileri – Bölüm 7: ISO temel medya dosya biçimindeki dosyalarda ortak şifreleme"
Daha fazla bilgi için bkz. İçerik Şifrelemesi ve Teslimi
İçeriğe PlayReady Üst Bilgisi Ekleme
Paketleyici, oluşturduğu PlayReady Başlığını içeriğe eklemelidir. Genellikle içerik dosyalarının üst bilgisine veya akış öğelerinin manifestosuna eklenir.
Bu üst bilgi, playready istemcisinin bu içerik parçası için lisans istemesi için gereken bilgiler için varsayılan değerleri içerir. Örneğin, PlayReady istemcisinin anahtar değerlerini isteyebilmesi için varlıkta hangi Anahtar Kimliklerinin (KID) kullanıldığını bilmesi gerekir. Ayrıca, bu lisansı teslim edecek bir lisans sunucusunun adresini de bilmesi gerekir. İsteğe bağlı olarak lisans sunucusu tarafından bir lisans isteğinin reddedilmesi durumunda kullanıcıya hangi web sayfasının işlendiğini bilmesi gerekir (kullanıcı bir ödeme sayfasına yönlendirilebilir).
PlayReady Üst Bilgisi örneği aşağıda verilmiştir
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.3.0.0">
<DATA>
<PROTECTINFO>
<KIDS>
<KID ALGID="AESCTR" VALUE="PV1LM/VEVk+kEOB8qqcWDg=="></KID>
</KIDS>
</PROTECTINFO>
<LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
<LUI_URL>http://www.contoso.com/pay/</LUI_URL>
</DATA>
</WRMHEADER>
PlayReady istemcisinin korumalı içeriği oynatması gerektiğinde ve henüz bir lisansı yoksa, içerik için bir lisans talep eder. Lisans isteğini başlatmak için uygulama geliştiricisi uygulamayı KID dizisi, LA_URL ve lisans isteği reddi durumunda davranış için sabit kodlanmış veya dinamik değerlerle sağlamış olabilir. Uygulama KID veya LA_URL varsayılan değerleri geçersiz kılmıştır. Geliştirici yapmadıysa, istemcinin içerik üst bilgisinin kendisinde bulunan varsayılan değerlere göre lisans isteğini gerçekleştirmesi beklenir.
MP4 ISO dosyaları için Microsoft, ISO biçim belirtiminin izlenmesini ve PlayReady Üst Bilgisinin bir 'pssh' kutusuna eklenmesini önerir.
PlayReady Nesnesi içeren bir MP4 dosyası örneği
Aşağıdaki şekilde PlayReady Üst Bilgisi içeren PlayReady Nesnesine sahip segmentlere ayrılmış bir MP4 dosyası gösterilmektedir:
Bu dosyanın HEX görünümü aşağıdadır:
Aşağıdaki şekilde, PlayReady Üst Bilgisi içeren PlayReady Nesnesine sahip kesimli bir MP4 dosyası ve PlayReady Embedded Lisans Deposu içeren başka bir PlayReady Nesnesi gösterilmektedir:
Uyarlamalı akış varlıkları için Microsoft, varlığın bildirimine PlayReady Üst Bilgisinin eklenmesini önerir.
PlayReady Üst Bilgisi içeren MPEG-DASH manifestosu örneği
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" mediaPresentationDuration="PT10M56.907S" minBufferTime="PT4S">
<Period>
<AdaptationSet id="1" group="1" profiles="ccff" bitstreamSwitching="true" segmentAlignment="true" contentType="video" mimeType="video/mp4" codecs="avc1.640028" maxWidth="1920" maxHeight="1080" startWithSAP="1">
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="10000000-1000-1000-1000-100000000001"/>
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="2.0" cenc:default_KID="10000000-1000-1000-1000-100000000001">
<mspr:pro>PABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMwAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcAA6AC8ALwBlAHgAcABlAHIAaQBtAGUAbgB0AGEAbAAxAC4AYQB6AHUAcgBlAHcAZQBiAHMAaQB0AGUAcwAuAG4AZQB0AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPwBjAGYAZwA9ACgAYwBrADoAVwAzADEAYgBmAFYAdAA5AFcAMwAxAGIAZgBWAHQAOQBXADMAMQBiAGYAUQA9AD0ALABjAGsAdAA6AEEARQBTADEAMgA4AEIAaQB0AEMAQgBDACkAPAAvAEwAQQBfAFUAUgBMAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAEIAQwAiACAAVgBBAEwAVQBFAD0AIgBBAEEAQQBBAEUAQQBBAFEAQQBCAEEAUQBBAEIAQQBBAEEAQQBBAEEAQQBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</mspr:pro>
</ContentProtection>
<SegmentTemplate timescale="10000000" media="video/bbb_sunflower_1080p_60fps_normal_VIDEO$Number$.mp4" initialization="video/bbb_sunflower_1080p_60fps_normal_VIDEO0.mp4">
<SegmentTimeline>
<S d="83166700" />
<S d="79166700" />
<S d="80333300" />
<S d="73000000" />
</SegmentTimeline>
</SegmentTemplate>
<Representation id="video" bandwidth="10646158" width="1920" height="1080"/>
</AdaptationSet>
</Period>
</MPD>