Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menerapkan Perlindungan Konten untuk Profil Langsung dan Sesuai Permintaan Streaming Adaptif Dinamis melalui HTTP (ISO/IEC 23009-1) menggunakan Enkripsi Umum (ISO/IEC 23001-7) dan Microsoft PlayReady.
Versi Saat Ini
Versi saat ini adalah versi 1.3 yang diterbitkan pada 15 Februari 2018
Silakan merujuk ke Riwayat Perubahan untuk informasi lebih lanjut.
Abstrak
ISO/IEC 23009-1 ISO Base Media File Format Sesuai Permintaan dan Profil DASH Langsung dapat digunakan dengan spesifikasi ISO/IEC 23001-7, "Enkripsi Umum dalam file format file media dasar ISO". Microsoft PlayReady mendukung ISO/IEC 23001-7 dan ISO/IEC 23009-1. Spesifikasi ini merinci cara membuat file Deskripsi Presentasi Media ISO/IEC 23009-1 yang menandakan penggunaan Microsoft PlayReady untuk representasi media ISO/IEC 14496-12 untuk skenario streaming adaptif Langsung dan Sesuai Permintaan.
Pemberitahuan Hukum
© 2018 Microsoft Corporation. Hak cipta dilindungi undang-undang. Dokumen ini disediakan "as-is." Informasi yang terkandung dalam dokumen ini, termasuk URL dan referensi situs Web Internet lainnya, dapat berubah tanpa pemberitahuan. Anda menanggung risiko menggunakannya.
Dokumen ini tidak memberi Anda hak hukum apa pun atas kekayaan intelektual apa pun dalam produk Microsoft apa pun. Anda dapat menyalin dan menggunakan dokumen ini untuk tujuan referensi internal Anda. Anda tidak boleh menghapus pemberitahuan apa pun dari dokumen ini.
Daftar Isi
Tabel
Meja | Titel |
---|---|
Tabel 1 | Lacak Kotak Enkripsi |
Tabel 2 | Contoh representasi KID |
1. Pengantar
Streaming Adaptif Dinamis MPEG melalui standar HTTP [DASH] menentukan format untuk pengiriman konten media dari server HTTP ke klien HTTP. Di DASH, presentasi konten media dijelaskan oleh file Deskripsi Presentasi Media (MPD). MPD menyediakan pengidentifikasi sumber daya untuk Segment bersama dengan konteks untuk sumber daya ini dalam Presentasi Media.
Dalam DASH Presentasi Media terdiri dari urutan waktu Periode ([DASH], bagian 5.3.2). Dalam Periode, konten media diatur ke dalam sekumpulan versi yang dikodekan yang dapat dipertukarkan yang disebut Set Adaptasi ([DASH], bagian 5.3.3). Setiap Set Adaptasi terdiri dari Representasi ([DASH], bagian 5.3.5) - versi yang dikodekan yang dapat dikirimkan dari komponen konten media.
Elemen ContentProtection Descriptor dapat dikaitkan dengan Set Adaptasi atau Representasi, untuk menunjukkan skema enkripsi, dan satu atau beberapa elemen Deskriptor ContentProtection dapat ditambahkan untuk mengaktifkan akuisisi lisensi DRM ([DASH], bagian 5.8.4.1).
1.1 Cakupan
Cara menggunakan Microsoft PlayReady sebagai skema Perlindungan Konten dalam file Deskripsi Presentasi MEDIA DASH ISO/IEC 23009-1.
1.2 Konvensi
Kata kunci "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", dan "OPTIONAL" dalam dokumen ini harus ditafsirkan sesuai dengan penjelasan dalam [RFC2119]. Yaitu:
"MUST", "REQUIRED" dan "SHALL" berarti bahwa definisi adalah persyaratan absolut dari spesifikasi.
"TIDAK BOLEH" dan "TIDAK BOLEH" berarti bahwa definisi adalah larangan absolut dari spesifikasi.
"HARUS" dan "DIREKOMENDASIKAN" berarti bahwa mungkin ada alasan yang valid untuk mengabaikan item tertentu, tetapi implikasi penuh harus dipahami dan ditimbang dengan hati-hati sebelum memilih kursus yang berbeda.
"TIDAK BOLEH" dan "TIDAK DIREKOMENDASIKAN" berarti bahwa mungkin ada alasan yang valid ketika perilaku tertentu dapat diterima, tetapi implikasi penuh harus dipahami dan kasus ditimbang dengan hati-hati sebelum menerapkan perilaku apa pun yang dijelaskan dengan label ini.
"MAY" dan "OPSIONAL" berarti item benar-benar opsional.
1.3 Terminologi, Singkatan dan Akronim
1.3.1 Terminologi
Istilah | Deskripsi |
---|---|
Set Adaptasi | Di DASH, sekumpulan versi yang dikodekan yang dapat dipertukarkan dari satu atau beberapa komponen konten media. |
Perlindungan Konten (CP) | Proses mengamankan Sumber Daya Yang Dilindungi selanjutnya ke pengirimannya ke perangkat Klien. |
Lisensi Tersemat | Lisensi yang disimpan di Objek PlayReady (PRO). |
Penyimpanan Lisensi Tersemat (ELS) | Rekaman di Objek PlayReady (PRO) untuk menyimpan Lisensi Tersemat. |
Pengidentifikasi Unik Global (GUID) | Nomor referensi unik, dinyatakan sebagai string heksadesimal 32 karakter yang dipisahkan tanda hubung, dan biasanya disimpan sebagai bilangan bulat 128-bit. |
Segmen Inisialisasi | Segmen DASH yang berisi metadata yang diperlukan untuk menyajikan aliran media yang dienkapsulasi di Segmen Media; dalam kasus ISO Media, header file. |
Pengidentifikasi Kunci (KID) | UUID yang secara unik mengidentifikasi kunci yang melindungi konten, lisensi, atau informasi sensitif lainnya; dalam kasus PlayReady, disimpan sebagai GUID. |
Rotasi Kunci | Perubahan berkala pada kunci enkripsi yang terkait dengan media. Biasanya ini berarti |
Lisensi Daun | Lisensi yang kunci kontennya dienkripsi menggunakan kunci konten di Lisensi Akar. |
Lisensi | Struktur data PlayReady yang menyertakan kebijakan dan kunci konten terenkripsi. |
URL Akuisisi Lisensi (LAURL) | URL layanan web PlayReady Akuisisi Lisensi. |
Rantai Lisensi | Rantai Lisensi terdiri dari Lisensi Akar dan Lisensi Daun. Lisensi Leaf mungkin memiliki beberapa Lisensi Akar dan Lisensi Akar mungkin memiliki beberapa Lisensi Leaf. Rantai Lisensi ada untuk setiap pasangan. |
Profil Langsung | Profil aktif format file media dasar ISO (lihat bagian 8.4 dari [DASH]). Profil Langsung dioptimalkan untuk pengodean langsung, di mana setiap segmen film dapat diminta segera setelah dikodekan menggunakan URL yang dihasilkan templat. |
Presentasi Media | Kumpulan data metadata dan media yang dapat diunduh dan dirender sebagai presentasi media, seperti yang didefinisikan dalam ISO/IEC 23009-1. |
Deskripsi Presentasi Media (MPD) | Deskripsi dokumen XML formal dari Presentasi Media yang ditentukan dalam ISO/IEC 23009-1. |
Segmen Media | Segmen DASH yang mematuhi format media dan memungkinkan pemutaran, mungkin dikombinasikan dengan Segmen Media lainnya dan/atau Segmen Inisialisasi. |
Kotak film ('moov') | Dalam Format File Media Dasar ISO, kotak yang sub-kotaknya menentukan metadata untuk presentasi media [ISOBFF]. |
Kotak Fragmen Film ('moof') | Dalam Format File Media Dasar ISO, kotak Fragmen Film memperluas presentasi media tepat waktu [ISOBFF], dan terkandung dalam Segmen Media DASH. |
Profil Sesuai Permintaan | Profil format file media Basis ISO Sesuai Permintaan (lihat bagian 8.3 dari [DASH]). Profil Sesuai Permintaan menyediakan dukungan dasar untuk konten Sesuai Permintaan. Setiap Representasi disediakan sebagai Segmen tunggal, Subsegmen diselaraskan di seluruh Representasi Set Adaptasi, dan Subsegmen dimulai dengan Titik Akses Aliran yang sesuai dengan segmen film. |
Masa | Interval Presentasi Media. |
Objek PlayReady (PRO) | Objek biner yang berisi jumlah variabel rekaman, termasuk rekaman PRH dan ELS opsional. Rekaman ini berisi informasi yang terkait dengan lisensi dan akuisisi lisensi (lihat [PRO]). |
Kotak Header Khusus Sistem Perlindungan ('pssh') | Dalam Format File Media Dasar ISO, kotak Header Khusus Sistem Perlindungan berisi metadata yang diperlukan oleh sistem Perlindungan Konten tertentu untuk memperoleh lisensi dan mendekripsi konten media [ISOBFF]. |
Representasi | Salah satu pilihan alternatif komponen konten media selama Periode yang ditentukan, misalnya file MEDIA ISO. Ini dijelaskan oleh elemen Representasi MPD ([DASH], bagian 5.3.5). |
Header PlayReady (PRH) | Rekaman dalam Objek PlayReady (PRO) yang berisi metadata yang diperlukan untuk mendekripsi konten media, termasuk satu atau banyak ID Kunci dan URL Akuisisi Lisensi (lihat [PRH]). |
Lisensi Akar | Lisensi yang kunci kontennya digunakan untuk mengenkripsi kunci konten dalam Lisensi Daun |
Segmen | Dalam DASH, elemen dalam MPD yang mereferensikan sumber daya media dengan HTTP-URL dan rentang byte opsional. |
Indeks Segment | Pemetaan indeks rentang waktu ke rentang byte dalam Segmen Media yang terpisah dari MPD, didefinisikan sebagai kotak 'sidx' Media ISO. |
Stream Access Point (SAP) | Posisi dalam Representasi yang memungkinkan pemutaran Segmen Media hanya menggunakan data Representasi dari posisi tersebut ke depan. |
Subsegmen | Di DASH, ini adalah unit dalam Segmen Media yang diindeks oleh Indeks Segmen. Segmen film ditujukan sebagai Subsegmen di Profil Sesuai Permintaan DASH, tetapi Segmen di Profil Langsung DASH. |
Kotak Enkripsi Trek | Dalam Format File Media Dasar ISO, kotak Enkripsi Trek ('tenc') menjelaskan parameter enkripsi default untuk trek [CENC], [ISOBFF]. |
UUID (Pengidentifikasi Unik Universal) | Pengidentifikasi unik matematis yang direpresentasikan sebagai angka atau string seperti yang ditentukan dalam [X.667] |
Video Sesuai Permintaan (VOD) | Sistem yang memungkinkan Pengguna akhir untuk memilih dan menonton konten video sesuai permintaan. Profil Langsung DASH dan Profil Sesuai Permintaan DASH dapat digunakan untuk presentasi VOD. |
1.3.2 Singkatan dan Akronim
Abbr. | Arti |
---|---|
CP | Perlindungan Isi |
DASH | Streaming Adaptif Dinamis melalui HTTP |
ELS | Penyimpanan Lisensi Tersemat |
- GUID | Pengidentifikasi Unik Global |
ANAK | Pengidentifikasi Kunci |
LAURL | URL Akuisisi Lisensi |
MPD | Deskripsi Presentasi Media |
PRH | PlayReady Header |
PRO | Objek PlayReady |
GETAH | Titik Akses Aliran |
UUID (Pengidentifikasi Unik Universal) | Pengidentifikasi Unik Universal |
VOD | Video Sesuai Permintaan |
1.4 Referensi
1.4.1 Referensi Normatif
Kode | Referensi Normatif |
---|---|
[CENC] | ISO/IEC FDIS 23001-7:2016 "Teknologi informasi – Teknologi sistem MPEG – Bagian 7: Enkripsi umum dalam file format file media dasar ISO", https://www.iso.org/standard/68042.html |
[DASH] | ISO/IEC 23009-1:2014, Edisi Kedua, "Teknologi informasi — Streaming adaptif dinamis melalui HTTP (DASH) — Bagian 1: Deskripsi presentasi media dan format segmen", http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip |
[EME] | "Ekstensi Media Terenkripsi", Rekomendasi W3C 18 September 2017https://www.w3.org/TR/encrypted-media/ |
[PRH] | "Microsoft PlayReady Header, lihat Spesifikasi Header PlayReady |
[PRO] | "Objek Microsoft PlayReady, lihat Spesifikasi Header PlayReady |
[RFC2119] | " Kata kunci untuk digunakan dalam RFC untuk Menunjukkan Tingkat Persyaratan ", S. Bradner, Maret 1997, http://www.ietf.org/rfc/rfc2119.txt |
[RFC3629] | "UTF-8, sebuah format transformasi dari ISO 10646", F. Yergeau, November 2003, http://tools.ietf.org/html/rfc3629 |
[RFC4122] | "UUID Namespace ('Universally Unique IDentifier' - Penanda Sumber Teruniform), P. Leach, M. Mealling, R. Salz, Juli 2005," |
[X.667] | "Teknologi informasi – Interkoneksi Sistem Terbuka – Prosedur untuk pengoperasian Otoritas Pendaftaran OSI: Pembuatan dan pendaftaran Pengidentifikasi Unik Universal (UUID) dan penggunaannya sebagai komponen pengidentifikasi objek ASN.1" Rekomendasi Seri X ITU-Thttp://www.itu.int/rec/T-REC-X.667-201210-I/en |
1.4.2 Referensi Informasi
Kode | Referensi Informasi |
---|---|
[CPSID] | Forum Industri DASH, "Identifier Khusus Sistem Perlindungan",http://dashif.org/identifiers/content_protection/ |
[DASHIF] | DASH Industry Forum, "Pedoman Implementasi: DASH-IF Titik Interoperabilitas", 07 September 2017, Versi 4.1,https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf |
[ISOBFF] | ISO/IEC 14496-12, Edisi Keempat (Versi dikoreksi 2012-09-15), "Teknologi informasi – Pengodean objek audio-visual – Bagian 12: Format File Media Dasar ISO",http://standards.iso.org/ittf/PubliclyAvailableStandards/c061988_ISO_IEC_14496-12_2012.zip |
1.5 Riwayat Perubahan
Versi | Tanggal | Rincian |
---|---|---|
Versi 1.3 | 15 Februari 2018 | Mengklarifikasi dukungan untuk Vektor Inisialisasi 16 byte (IV 16-byte). |
Versi 1.2 | 8 Oktober 2014 | 1) Perubahan untuk CENC edisi ke-2 2) Perubahan yang berkaitan dengan elemen Deskriptor ContentProtection DASH MPD 3) Perubahan dalam Terminologi untuk penambahan istilah dan klarifikasi 4) Perubahan referensi normatif dan informatif untuk merujuk versi terbaru 5) Klarifikasi representasi dan endianness KID dalam kotak ISOBFF, PRO, dan lisensi PlayReady. |
Versi 1.1 | 18 Februari 2013 | Mengklarifikasi representasi PlayReady SystemID. PlayReady SystemID adalah 9a04f079-9840-4286-ab92-e65be0885f95. Representasi big endian = {0x9A, 0x04, 0xF0, 0x79, 0x98, 0x40, 0x42, 0x86, 0xAB, 0x92, 0xE6, 0x5B, 0xE0, 0x88, 0x5F, 0x95}. Representasi little endian = {0x79, 0xF0, 0x04, 0x9A, 0x40, 0x98, 0x86, 0x42, 0xAB, 0x92, 0xE6, 0x5B, 0xE0, 0x88, 0x5F, 0x95}. |
Versi 1.0 | 17 Juli 2012 | Versi awal |
2. Skema Perlindungan Konten PLAYReady DASH
Microsoft PlayReady mendukung standar ISO/IEC 23009-1 [DASH] dan ISO/IEC 23001-7 [CENC] baru. Spesifikasi ini merinci cara membuat file Deskripsi Presentasi Media DASH yang menandakan penggunaan Microsoft PlayReady untuk representasi media Format File Media Dasar ISO, untuk skenario streaming adaptif Sesuai Permintaan ([DASH], bagian 8.3) dan Langsung ([DASH], bagian 8.4).
Empat skenario yang menjadi fokus spesifikasi ini adalah VOD atau presentasi langsung media:
dienkripsi dengan satu kunci
di mana beberapa konten dienkripsi dan beberapa konten berada di jelas
dengan Rotasi Kunci tanpa Lisensi Leaf Tertanam
dengan Rotasi Kunci dengan Lisensi Leaf Tertanam
2.1 Elemen Deskriptor Perlindungan Konten DASH
DASH mendefinisikan dua jenis elemen ContentProtection Descriptor untuk ISO Media ([DASH] bagian 5.3.7.2-Table 9, 5.8.5.2, dan 5.8.4.1):
- Dengan
@schemeIdUri=”urn:mpeg:dash:mp4protection:2011” @value=”<scheme>”
- Dengan
@schemeIdUri=”urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” @value=”DRMNAME version”
Jenis deskriptor pertama menunjukkan empat kode karakter ("4CC") dari skema enkripsi yang terkandung dalam Kotak Informasi Skema Perlindungan ('schi') di setiap trek MEDIA ISO terenkripsi. Jenis deskriptor ini HARUS selalu ada sehingga pemain menyadari bahwa konten dienkripsi, dan dapat menentukan apakah mereka dapat mendekripsi skema enkripsi sebelum mencoba mengunduh dan memutarnya.
Jenis deskriptor kedua menunjukkan string UUID untuk sistem DRM tertentu yang dapat menyediakan lisensi dan kunci dekripsi untuk Set Adaptasi terkait. Spesifikasi aplikasi, seperti yang dilakukan oleh DASH Industry Forum, DVB, dan DECE membatasi semua Representasi dalam Set Adaptasi untuk berbagi kunci dan lisensi yang sama untuk mengaktifkan pengalihan adaptif yang mulus, yang dicapai dengan membatasi Deskriptor ContentProtection dari tingkat Representasi MPD. String UUID sama dengan bidang SystemID yang ditentukan oleh Iso Media Protection System Specific Information Box ('pssh') yang MUNGKIN ada di Movie Box ('moov') file atau Segmen Inisialisasi DASH.
Nota Kotak 'pssh' mencakup SystemID, UUID [X.667] yang secara unik mengidentifikasi sistem perlindungan konten. PlayReady SystemID adalah 9a04f079-9840-4286-ab92-e65be0885f95.
Nilai SystemID untuk sistem DRM terdaftar di: https://dashif.org/identifiers/content_protection/
Setiap elemen AdaptationSet MUNGKIN mencantumkan beberapa Deskriptor DRM untuk menunjukkan bahwa lisensi tersedia untuk beberapa sistem DRM. Setiap sistem DRM dapat menentukan elemen dan atribut di namespace layanan mereka sendiri dan membuatnya opsional atau diperlukan dalam Deskriptor menggunakan SystemID mereka.
Edisi kedua Common Encryption ([CENC] bagian 11) menentukan elemen cenc:pssh opsional yang dapat digunakan oleh semua Deskriptor ContentProtection DRM untuk meningkatkan interoperabilitas. Ini juga menentukan atribut cenc:default_KID yang direkomendasikan untuk dimasukkan dalam Deskriptor mp4protection untuk mengidentifikasi lisensi yang diperlukan di satu tempat untuk semua sistem. Elemen cenc:pssh berisi struktur kotak 'pssh' lengkap, jadi diproses secara identik oleh API Encrypted Media Extension (EME) di browser web [EME].
Sistem DRM dapat memberikan informasi akuisisi lisensi dalam:
- Elemen cenc:pssh dalam Deskriptor ContentProtection di MPD
- Kotak 'pssh' di kotak 'moov' file atau Segmen Inisialisasi
- Kedua hal di atas (dalam hal ini, elemen cenc:pssh lebih diutamakan)
Bergantung pada alur kerja, mungkin lebih efisien untuk menyematkan informasi akuisisi lisensi dalam kotak 'pssh' di setiap file dalam Set Adaptasi selama pengodean atau pengemasan; atau mungkin lebih efisien untuk menyematkan elemen cenc:pssh dalam MPD pada saat presentasi streaming ditawarkan. Untuk streaming langsung, lebih baik menggunakan cenc:pssh di MPD untuk mengaktifkan akuisisi lisensi awal, daripada memicu banyak permintaan lisensi simultan pada saat Segmen Inisialisasi pertama dan kotak 'pssh' secara bersamaan dikirimkan ke mungkin jutaan penonton. Informasi akuisisi lisensi dalam MPD memungkinkan layanan streaming yang berbeda untuk menggunakan server lisensi yang berbeda, mengubahnya dari waktu ke waktu, dll. tanpa membuat dan mengelola file media terpisah.
Dalam kasus PlayReady, Objek PlayReady (PRO) [PRO] dapat dimuat dalam elemen cenc:pssh, elemen mspr:pro, atau kotak 'pssh' untuk mengaktifkan akuisisi lisensi. Elemen mspr:pro ditentukan oleh Microsoft PlayReady, dan hanya menyertakan informasi PRO [PRO], bukan struktur kotak yang disertakan dalam 'pssh' dan cenc:pssh. Termasuk mspr:pro dan cenc:pssh akan memungkinkan pemain lama termasuk pemutar berdasarkan Silverlight, dan pemutar baru termasuk halaman web menggunakan skrip untuk memutar presentasi DASH yang dilindungi di browser HTML5.
Nota Sepanjang spesifikasi 'mspr' ini adalah 'urn:microsoft:playready', yang ditentukan oleh xmlns:mspr="urn:microsoft:playready".
2.1.1 BENAR PRO di Segmen Inisialisasi atau Konten Media
Jika ada Segmen Inisialisasi yang berisi PRO yang benar, atau jika konten media menyertakan kotak 'pssh' PlayReady dengan PRO yang benar, elemen Deskriptor ContentProtection berikut dengan pengidentifikasi khusus Sistem Perlindungan Konten PlayReady [CPSID] HARUS digunakan dalam elemen AdaptationSet dalam MPD untuk menunjukkan ketersediaan lisensi PlayReady:
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value=”MSPR 2.0”/>
PlayReady mendukung standar Common Encryption [CENC]. Ketika metadata akuisisi lisensi disimpan di Segmen Inisialisasi atau konten media 'pssh', elemen Deskriptor ContentProtection PlayReady HARUS ada.
Elemen ContentProtection Descriptor berikut HARUS ada di setiap Set Adaptasi yang dilindungi, dan satu instans menunjukkan skema enkripsi untuk semua DRM yang mendukung skema 'cenc'.
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
2.1.2 Termasuk Objek PlayReady di MPD
Ada beberapa situasi di mana Objek PlayReady [PRO] mungkin perlu disertakan dalam elemen Descriptor ContentProtection PlayReady. Misalnya:
Presentasi tempat kotak 'pssh' PlayReady tidak ada
Presentasi tempat PRO ditemukan di kotak 'pssh' PlayReady perlu ditimpa
Untuk mengidentifikasi PlayReady sebagai Skema Perlindungan Konten dan menyertakan PRO dalam elemen Deskriptor ContentProtection, disarankan untuk menggunakan sintaks cenc:pssh sesuai dengan sintaks [CENC] dan mspr:pro untuk kompatibilitas mundur sebagai berikut:
<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>
Aturan berikut HARUS diikuti saat menyertakan kotak 'pssh' PlayReady dan PRO di elemen Descriptor ContentProtection PlayReady:
Jika cenc:pssh atau mspr:pro disertakan dalam elemen Deskriptor ContentProtection PlayReady:
Jika PRO disertakan dalam kotak Header Spesifik Sistem Perlindungan ('pssh') dalam konten media , nilai string yang dikodekan KID base64 (nilai tag KID [PRO]) dalam PRO yang disertakan dalam kotak cenc:pssh atau mspr:pro HARUS setara dengan nilai string yang dikodekan KID base64 dalam PRO yang disertakan dalam kotak 'pssh'.
Jika ada Segmen Inisialisasi untuk Representasi yang berisi PlayReady 'pssh', maka nilai string yang dikodekan kid base64 dalam PRO yang disertakan dalam cenc:pssh atau mspr:pro untuk Representasi tersebut harus setara dengan nilai string yang dikodekan kid base64 dalam PRO yang disertakan dalam kotak 'pssh' dari Segmen Inisialisasi. Perhatikan bahwa Segmen Inisialisasi mungkin merupakan salinan header file dari file konten media tersimpan yang terkandung dalam isi respons HTTP, tetapi mungkin juga dihasilkan secara dinamis dan tidak pernah disimpan sebagai file.
Jika konten media berisi kotak 'pssh' PlayReady dengan PRO yang berisi LAURL, dan BAHWA LAURL berbeda dari LAURL dalam PRO yang disertakan dalam elemen ContentProtection Descriptor, elemen ContentProtection Descriptor LAURL HARUS diutamakan.
2.1.3 Termasuk Lacak Bidang Kotak Enkripsi di MPD
Enkripsi Umum menunjukkan kunci yang digunakan untuk mengenkripsi setiap sampel media (atau tidak digunakan) dengan pengidentifikasi kunci (KID) di setiap segmen film. Beberapa informasi, seperti default_KID di Kotak Enkripsi Trek ('tenc') berguna untuk memberi sinyal di MPD untuk menentukan lisensi apa yang diperlukan.
Mungkin ada Periode Presentasi Media yang tidak terenkripsi, diikuti oleh Periode yang dienkripsi. File dan aliran media dapat mencakup bagian terenkripsi dan tidak terenkripsi. Selain itu, Pengidentifikasi Kunci (KID) dapat berubah dari Periode ke Periode, atau dari bagian ke bagian. Perubahan utama di bagian trek disinyalir menggunakan grup sampel ISO Media dan contoh kotak deskripsi grup di setiap segmen film. Lihat [CENC] untuk informasi selengkapnya tentang grup sampel dan akses ke Vektor Inisialisasi dan rentang enkripsi subsampel menggunakan kotak 'saio' dan 'saiz' yang menunjuk ke Informasi Tambahan Sampel.
Pengaturan default untuk informasi Enkripsi Umum dikodekan dalam kotak Enkripsi Trek setiap trek ('tenc') (lihat [ISOBFF] dan [CENC]) yang disimpan dalam Kotak Trek ('trak') di header file ISO dan Segmen Inisialisasi. Pengidentifikasi Kunci default (KID) di Kotak Enkripsi Trek (bidang default_KID) JUGA HARUS dikomunikasikan dalam elemen Deskriptor ContentProtection yang terkait dengan Set Adaptasi Presentasi Media. cenc:default_KID dapat digunakan untuk mengidentifikasi lisensi yang dapat mendekripsi Segmen Media yang dirujuk oleh elemen AdaptationSet induk.
Untuk menyertakan Pengidentifikasi Kunci (KID) default dalam elemen Deskriptor Common Encryption ContentProtection, gunakan atribut cenc:default_KID berikut yang ditentukan dalam [CENC]:
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="da9b5994-600c-2ad0-f96d-f12725780978"/>
Bidang default_KID di 'tenc' adalah array big endian 16 byte, dan didefinisikan di atas untuk disimpan dalam atribut cenc:default_KID dalam elemen Common Encryption ContentProtection Descriptor sebagai string UUID.
Ketika elemen ContentProtection Descriptor mengacu pada beberapa trek, dan ini menggunakan Pengidentifikasi Kunci default yang berbeda dalam kotak 'tenc' yang berbeda, atribut cenc:default_KID HARUS menyimpan daftar yang dibatasi spasi dari nilai default_KID yang berbeda.
Atribut cenc:default_KID MUNGKIN juga terkandung dalam elemen Deskriptor ContentProtection PlayReady.
Tabel 1 di bawah ini mencantumkan bidang yang ditentukan dalam ISO Media Track Encryption Box ('tenc') (lihat bagian 9.2, [CENC]). Elemen-elemen di bawah Tabel 1 yang didefinisikan dalam namespace 'mspr' untuk edisi pertama Common Encryption (mspr:IsEncrypted, mspr:IV_size, dan mspr:kid), tetapi telah dinyatakan usang dan secara fungsional digantikan oleh cenc:default_KID yang ditentukan dalam edisi kedua Common Encryption [CENC]. Bidang IV_size dan IsEncrypted di Kotak Enkripsi Trek ('tenc') digunakan selama dekripsi, tetapi tidak diperlukan dalam elemen Deskriptor ContentProtection MPD.
Nota Nilai KID dalam mspr:kid adalah interpretasi GUID little endian yang dikodekan dalam base64 dari array byte default_KID 'tenc' yang ditentukan untuk menyimpan UUID big endian. Semua bidang dari Kotak Enkripsi Trek dapat disalin ke MPD, tetapi hanya default_KID yang diperlukan untuk mengekspos akuisisi lisensi.
Tabel 1 – Lacak Bidang Kotak Enkripsi
Elemen | Default | Deskripsi |
---|---|---|
default_IsEncrypted | 1 | Bendera yang menunjukkan status enkripsi sampel dalam grup sampel. Nilai yang diizinkan adalah 0 (tidak dienkripsi) dan 1 (dienkripsi). |
default_IV_size | 8 | Ukuran dalam byte bidang Initialization Vector (IV). - PlayReady versi 1, 2, 3 mendukung 0 dan 8. - PlayReady versi 4 dan yang lebih tinggi mendukung 0, 8 dan 16. Jika default_IsEncrypted =1, default_IV_size TIDAK BOLEH diatur ke 0. Karena tidak semua pemutar yang diaktifkan PlayReady mendukung Vektor Inisialisasi 16 byte, diSARANKAN bahwa hanya default_IV_size 8 yang digunakan untuk konten terenkripsi, jika layanan perlu menjangkau pemutar PlayReady versi 1/2/3. |
default_KID | Tidak | Pengidentifikasi Kunci 16-Byte (128-bit) yang secara unik mengidentifikasi kunci yang diperlukan untuk mendekripsi sampel terkait. Pengidentifikasi kunci diperlakukan sebagai UUID menurut [CENC] Harap dicatat bahwa tidak seperti KID di Header PlayReady [PRH], 'tenc' default_KID disimpan sebagai array 16 byte yang berisi byte big endian yang diurutkan, bilangan bulat 128-bit yang setara dengan biner (bagian 6.2) dan angka (bagian 6.3) representasi UUID yang ditentukan dalam [X.667]. |
Nota: Format default_KID dalam Kotak Enkripsi Trek berbeda dari format nilai KID yang disematkan dalam PRO dalam cenc:pssh, mspr:pro, dan mspr:kid. Lihat bagian 2.2.5, [CENC], dan [PRO] untuk detailnya.
Untuk mengidentifikasi PlayReady sebagai Skema Perlindungan Konten dan menyertakan bidang Track Encryption Box di MPD, gunakan sintaks berikut :
<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>
Aturan berikut HARUS diikuti saat menyertakan atribut cenc:default_KID dalam elemen Deskriptor Common Encryption ContentProtection dan bidang Lacak Kotak Enkripsi di elemen Deskriptor ContentProtection PlayReady:
String KID dalam atribut cenc:default_KID dalam elemen Common Encryption ContentProtection Descriptor HARUS setara dengan default_KID UUID dalam kotak Enkripsi Trek untuk trek tersebut.
Nilai mspr:IsEncrypted, mspr:IV_size, dan/atau mspr:kid dalam elemen Descriptor ContentProtection PlayReady HARUS setara dengan yang ditemukan di bidang default_IsEncrypted, default_IV_size, atau default_KID di kotak Enkripsi Trek untuk trek tersebut.
Jika mspr:pro dan cenc:pssh disertakan dalam elemen Deskriptor ContentProtection PlayReady (lihat bagian 2.1.2) dengan bidang Kotak Enkripsi Trek:
ELEMEN KID yang disematkan dalam PRO dalam elemen mspr:pro dan cenc:pssh HARUS setara dengan default_KID di Track Encryption Box dari trek tersebut.
KID dalam atribut cenc:default_KID dalam elemen Deskriptor Common Encryption ContentProtection dan nilai mspr:kid dalam elemen Descriptor PlayReady ContentProtectionShall setara dengan default_KID di Track Encryption Box dari trek tersebut.
Nota Harap dicatat bahwa default_KID dalam Kotak Enkripsi Trek ditafsirkan sebagai UUID biner atau numerik yang disimpan sebagai array byte big endian sepanjang 16 byte, sebagai string UUID dengan tanda hubung dalam cenc:default_KID, dan sebagai string base64 yang dikodekan dari representasi GUID dalam urutan byte little endian di PRO dan mspr:kid; namun semua harus menjadi bentuk alternatif dari UUID yang sama. Lihat bagian 2.2.5.
2.2 Rekomendasi dan Persyaratan Implementasi
Objek PlayReady (PRO) [PRO] DAPAT disertakan dalam kotak Header Spesifik Sistem Perlindungan Media yang dikodekan ('pssh') [ISOBFF], Segmen Inisialisasi atau dikodekan dalam MPD itu sendiri.
Kotak 'pssh' dapat dimasukkan ke dalam kotak Film ('moov') atau kotak Fragmen Film ('moof'). Misalnya, kotak 'pssh' dapat disisipkan dalam kotak 'moov' untuk mengaktifkan penggunaan Segmen Inisialisasi ([DASH], bagian 5.3.9.5.2). Kotak 'pssh' dapat disisipkan di setiap kotak 'moof' untuk menyampaikan Lisensi Daun yang diindeks oleh KID untuk rotasi kunci.
Sampel Grup dan Sampel Informasi Tambahan HARUS disimpan dalam segmen film apa pun yang mereferensikannya. Kotak Deskripsi Grup Sampel ('sgdp') HARUS ada di setiap kotak 'moof' saat Kotak Sampel Ke Grup ('sbgp') ada. Contoh Kotak Offset Informasi Tambahan ('saio') dan Sampel Kotak Ukuran Informasi Tambahan ('saiz') HARUS ada di setiap segmen film dari setiap trek yang berisi Kotak Enkripsi Trek ('tenc'), dengan penunjuk yang valid ke Informasi Tambahan Sampel.
2.2.1 Umum
Elemen Deskriptor PlayReady ContentProtection dapat dikaitkan dengan Set Adaptasi atau Representasinya, tetapi untuk pengalihan dan kesesuaian laju bit adaptif yang mulus dengan spesifikasi aplikasi DASH, elemen Deskriptor ContentProtection PlayReady HARUS terkandung dalam elemen AdaptationSet daripada elemen Representasi. Ini memastikan bahwa satu lisensi dan konfigurasi dekripsi dapat digunakan untuk semua Segmen dalam Set Adaptasi.
DISARANKAN untuk menyertakan Deskriptor ContentProtection PlayReady dan, DIPERLUKAN untuk menyertakan Deskriptor ContentProtection DASH MP4 dengan nilai "cenc" dalam MPD.
Hal ini memungkinkan DRM yang mampu "cenc" dan memiliki informasi akuisisi lisensi dalam aplikasi, atau di MPD, atau dalam 'pssh' di segmen inisialisasi untuk mengidentifikasi bahwa konten adalah Common Encrypted, mengidentifikasi lisensi yang diperlukan (menggunakan default_KID), memperoleh lisensi, dan mendekripsi media.
Disarankan untuk menyertakan @value atribut dengan nama dan versi "MSPR 2.0" selain UUID dalam Deskriptor ContentProtection PlayReady untuk pengenalan manusia. Misalnya:
<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 Prioritas Lokasi PRO
Ketika aplikasi klien menemukan PRO di MPD, itu AKAN lebih diutamakan daripada PRO yang terkandung dalam Segmen Inisialisasi (lihat persyaratan Segmen Inisialisasi PRO tambahan di 2.2.3).
Ketika aplikasi klien menemukan PRO di MPD, Header Manajemen Hak yang terkandung dalam PRO HARUS lebih diutamakan daripada Header Manajemen Hak dalam PRO yang terkandung dalam kotak 'pssh' di kotak 'moov' konten media.
Ketika aplikasi klien menemukan PRO di Segmen Inisialisasi, itu AKAN lebih diutamakan daripada PRO yang terkandung dalam kotak 'pssh' di header kotak 'moov' konten media (lihat persyaratan Segment PRO Inisialisasi tambahan di 2.2.3).
2.2.3 Tempat menyertakan PRO
PRO HARUS ada di Segmen MPD atau Inisialisasi. Mungkin ada di keduanya. Dalam MPD, itu HARUS ada dalam elemen mspr:pro dan elemen cenc:pssh dalam Deskriptor Perlindungan Konten PlayReady (mspr:pro untuk pemutar warisan).
PRO di Segmen Inisialisasi atau MPD MAY menyertakan Header Manajemen Hak.
Baik menggunakan Segmen Inisialisasi atau tidak, DIREKOMENDASIKAN bahwa MPD menyertakan PRO yang benar, sehingga informasi Header Manajemen Hak dapat diperoleh tanpa mengunduh Segmen Inisialisasi.
2.2.4 Apa yang harus disertakan dalam MPD PRO
PRO dapat mencakup Header Manajemen Hak dan/atau Penyimpanan Lisensi Tersemat (ELS).
Disarankan agar MPD PRO menyertakan Header Manajemen Hak.
TIDAK DISARANKAN untuk menyertakan ELS kecuali diperlukan sebagai bagian dari Domain DRM atau skema Rantai Lisensi.
2.2.5 Pesanan Byte KID
Pengidentifikasi kunci (KID) di PlayReady disimpan dalam array byte yang diformat sebagai GUID (DWORD, WORD, WORD, array 8-BYTE) dalam urutan byte little endian, yang kemudian dikodekan base64 untuk penyimpanan sebagai string di PRO. Server lisensi PlayReady dan klien PlayReady dalam ekosistem PlayReady mengharapkan bahwa KID dalam lisensi PRO dan PlayReady adalah representasi urutan byte dalam format little-endian dari [GUID].
KID yang setara dapat direpresentasikan sebagai string UUID ([X.667] bagian 6.4) atau array byte yang berisi UUID dalam biner urutan byte big endian (bagian 6.2) atau angka (bagian 6.3) seperti yang ditentukan dalam [X.667]. Enkripsi Umum [CENC] dan DASH menggunakan representasi ini dalam atribut cenc:default_KID (string 6.4), Track Encryption Box ('tenc'), dan 'seig' Sample Group Description Box ('sgpd') (6,2 biner atau array byte angka 6,3).
Akibatnya, kecuali ada perubahan klien harus mengonversi endianness array byte KID untuk mencocokkannya dengan lisensi PlayReady.
Untuk mengonversi KID dalam atribut cenc:default_KID dan kotak [ISOBFF] ke PlayReady KID, gunakan kode sampel berikut:
// 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;
}
Tabel 2 – Contoh representasi KID
KID Parameter | Tipe | Representasi |
---|---|---|
ANAK | UUID BE Nomor Heksadesimal | f81d4fae7dec11d0a76500a0c91e6bf6 Bagian 6.3 dari [X.667] |
atribut cenc:default_KID | UUID Hex String dengan tanda hubung | "f81d4fae-7dec-11d0-a765-00a0c91e6bf6" Bagian 6.4 dari [X.667] |
KID dalam kotak ISOBFF | UUID BE Byte Array | Representasi Hex adalah { 0xf8, 0x1d, 0x4f, 0xae, 0x7d, 0xec, 0x11, 0xd0, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 } Bagian 6.2 dari [X.667] |
KID di PRO | String Base64 dari Guid LE Byte Array | "rk8d+Ox90BGnZQCgyR5r9g==" (Representasi Hex dari data sebelum pengodean Base64 adalah { 0xae, 0x4f, 0x1d, 0xf8, 0xec, 0x7d, 0xd0, 0x11, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 }) |
mspr:kid | String Base64 dari Array Byte default_KID dalam kotak 'tenc' | "+B1Prn3sEdCnZQCgyR5r9g==" (Representasi Hex dari data sebelum pengodean Base64 adalah { 0xf8, 0x1d, 0x4f, 0xae, 0x7d, 0xec, 0x11, 0xd0, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 }) |
KID di lisensi PlayReady | GUID LE Byte Array | Representasi Hex adalah { 0xae, 0x4f, 0x1d, 0xf8, 0xec, 0x7d, 0xd0, 0x11, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 } |
3. Contoh Deskripsi Presentasi Media
3.1 Pro yang Benar di Segmen Inisialisasi atau Konten Media
Lihat bagian 2.1.1 di atas.
<?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 Menyertakan Objek PlayReady (PRO) di MPD
Lihat bagian 2.1.2 di atas.
<?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>