Delen via


DASH Contentbescherming door middel van Microsoft PlayReady

Inhoudsbeveiliging implementeren voor live- en on-demand profielen van dynamische adaptieve streaming via HTTP (ISO/IEC 23009-1) met behulp van Common Encryption (ISO/IEC 23001-7) en Microsoft PlayReady.

Huidige versie

De huidige versie is versie 1.3 gepubliceerd op 15 februari 2018

Raadpleeg de wijzigingsgeschiedenis voor meer informatie.

Samenvatting

De ISO/IEC 23009-1 ISO Base Media File Format On-Demand en Live DASH-profielen kunnen worden gebruikt met de ISO/IEC 23001-7, "Common Encryption in ISO base media file format files" specificatie. Microsoft PlayReady ondersteunt zowel ISO/IEC 23001-7 als ISO/IEC 23009-1. In deze specificatie wordt beschreven hoe u een ISO/IEC 23009-1 Media Presentation Description-bestand maakt dat het gebruik van Microsoft PlayReady voor ISO/IEC 14496-12-mediaweergaven voor zowel live- als on-demand adaptieve streamingscenario's aangeeft.

Juridische kennisgeving

© Microsoft Corporation 2018. Alle rechten voorbehouden. Dit document wordt geleverd "as-is." De informatie in dit document, inclusief URL en andere websiteverwijzingen, kan zonder kennisgeving worden gewijzigd. U gebruikt deze op eigen risico.

Dit document biedt u geen wettelijke rechten voor enig intellectueel eigendom in een Microsoft-product. U mag dit document kopiëren en gebruiken voor uw eigen referentiedoeleinden. U mag geen kennisgevingen uit dit document verwijderen.

Inhoud

Afdeling Titel
1 Introductie
1.1 Omvang
1.2 Verdragen
1.3 Terminologie, afkortingen en acroniem
1.4 Verwijzingen
1.5 Wijzigingsgeschiedenis
2 PlayReady DASH-inhoudsbeveiligingsschema
2.1 DASH ContentProtection-descriptorelementen
2.2 Aanbevelingen en vereisten voor implementatie
3 Voorbeeld van beschrijving van mediapresentatie
3.1 Corrigeer PRO in initialisatie-segment of mediainhoud
3.2 Een PlayReady-object opnemen in de MPD

Tabellen

Tabel Titel
Tabel 1 Track Encryptie Box
Tabel 2 Voorbeeld van KID-weergave

1. Inleiding

Dynamische adaptieve streaming via HTTP-standaard [DASH] geeft indelingen op voor de levering van media-inhoud van HTTP-servers aan HTTP-clients. In DASH wordt de presentatie van media-inhoud beschreven door een MPD-bestand (Media Presentation Description). De MPD biedt resource-id's voor segmenten, samen met context voor deze resources in een mediapresentatie.

In DASH bestaat een mediapresentatie uit een tijdreeks van perioden ([DASH], sectie 5.3.2). Binnen een periode wordt media-inhoud gerangschikt in een set verwisselbare gecodeerde versies met de naam Adaptation Sets ([DASH], sectie 5.3.3). Elke adaptatieset bestaat uit representaties ([DASH], sectie 5.3.5) - productcodeerbare versies van de media-inhoudsonderdelen.

Een ContentProtection Descriptor-element kan worden gekoppeld aan een adaptatieset of een weergave, om het versleutelingsschema aan te geven en een of meer ContentProtection Descriptor-elementen kunnen worden toegevoegd om het verkrijgen van DRM-licenties in te schakelen ([DASH], sectie 5.8.4.1).

1.1 Bereik

Microsoft PlayReady gebruiken als het Content Protection-schema in een ISO/IEC 23009-1 DASH Media Presentation Description-bestand.

1.2 Conventies

De sleutelwoorden "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" en "OPTIONAL" in dit document moeten worden geïnterpreteerd zoals beschreven in [RFC2119]. Dat wil zeggen:

  • "MUST", "REQUIRED" en "SHALL": de definitie is een absolute vereiste van de specificatie.

  • "MOET NIET" en "MAG NIET" betekenen dat de definitie een absoluut verbod van de specificatie is.

  • "SHOULD" en "AANBEVOLEN": er kunnen geldige redenen zijn om een bepaald item te negeren, maar de volledige implicaties moeten worden begrepen en zorgvuldig worden gewogen voordat u een andere cursus kiest.

  • "MAG NIET" en "NIET AANBEVOLEN" betekenen dat er geldige redenen kunnen zijn wanneer het specifieke gedrag acceptabel is, maar de volledige gevolgen moeten worden begrepen en de zaak zorgvuldig wordt gewogen voordat u een gedrag implementeert dat met dit label wordt beschreven.

  • "Mag" en "OPTIONEEL" betekent dat het item echt optioneel is.

Terug naar boven

1.3 Terminologie, afkortingen en acroniem

1.3.1 Terminologie

Termijn Beschrijving
Aanpassingsset In DASH, is er een set van verwisselbare gecodeerde versies van een of meerdere media-inhoudcomponenten.
Inhoudsbeveiliging (CP) Het proces voor het beveiligen van een beveiligde resource na de levering ervan aan een clientapparaat.
Ingesloten licentie Een licentie die is opgeslagen in het PlayReady-object (PRO).
Ingesloten licentiearchief (ELS) Een record in het PlayReady-object (PRO) voor het opslaan van ingesloten licenties.
Globally Unique Identifier (GUID) Een uniek verwijzingsnummer, weergegeven als een afbreekstreepje gescheiden hexadecimale tekenreeks van 32 tekens en wordt meestal opgeslagen als een geheel getal van 128 bits.
Initialisatiesegment Een DASH-segment met metagegevens die nodig zijn om de mediastromen te presenteren die zijn ingekapseld in mediasegmenten; in het geval van ISO-media, een bestandskoptekst.
Key Identifier (KID) Een UUID die een sleutel identificeert die inhoud, licenties of andere gevoelige informatie beschermt; in het geval van PlayReady, opgeslagen als een GUID.
Sleutelrotatie Periodieke wijzigingen in de versleutelingssleutel die is gekoppeld aan media. Dit betekent meestal
Leaf-licentie Een licentie waarvan de inhoudssleutel is versleuteld met behulp van een inhoudssleutel in een basislicentie.
Licentie Een PlayReady-gegevensstructuur met beleidsregels en een versleutelde inhoudssleutel.
URL voor het verkrijgen van licenties (LAURL) De URL van de PlayReady-webservice voor het verkrijgen van licenties.
Licentieketen Een licentieketen bestaat uit een basislicentie en een Leaf-licentie. Een Leaf-licentie kan meerdere basislicenties hebben en een basislicentie kan meerdere Leaf-licenties hebben. Er bestaat een licentieketen voor elke combinatie.
Liveprofiel Het LIVE-profiel van de ISO Base-mediabestandindeling (zie sectie 8.4 van [DASH]). Het liveprofiel is geoptimaliseerd voor livecodering, waarbij elk filmsegment direct kan worden aangevraagd nadat het is gecodeerd met behulp van een door een sjabloon gegenereerde URL.
Mediapresentatie Verzameling metagegevens en mediagegevens die kunnen worden gedownload en weergegeven als een mediapresentatie, zoals gedefinieerd in ISO/IEC 23009-1.
Beschrijving van mediapresentatie (MPD) Formele XML-documentbeschrijving van een mediapresentatie die is gedefinieerd in ISO/IEC 23009-1.
Mediasegment Een DASH-segment dat voldoet aan een media-indeling en het afspelen mogelijk maakt, mogelijk gecombineerd met andere mediasegmenten en/of een initialisatiesegment.
Filmbox ('moov') In de ISO Base Media-bestandsindeling is de box waarvan de subvakken de metagegevens voor een mediapresentatie bepalen [ISOBFF].
Filmfragmentvak ('moof') In de ISO Base Media-bestandsindeling breidt het vak Filmfragment de mediapresentatie in de tijd uit [ISOBFF] en bevindt zich in een DASH Media-segment.
Profiel op aanvraag Het ISO Base-mediabestandsformaat On Demand-profiel (zie sectie 8.3 van [DASH]). Het On Demand-profiel biedt basisondersteuning voor inhoud op aanvraag. Elke weergave wordt geleverd als één segment, subsegmenten worden uitgelijnd op de weergaven van een adaptatieset en subsegmenten beginnen met een Stream Access Point dat overeenkomt met een filmsegment.
Periode Interval van een mediapresentatie.
PlayReady-object (PRO) Een binair object met een variabel aantal records, inclusief optioneel PRH- en ELS-records. Deze records bevatten informatie met betrekking tot licenties en het verkrijgen van licenties (zie [PRO]).
Beveiligingssysteemspecifieke headervak ('pssh') In de ISO Base Media-bestandsindeling bevat het vak Beveiligingssysteemspecifieke header metagegevens die nodig zijn voor een specifiek Content Protection-systeem om een licentie te verkrijgen en de media-inhoud te ontsleutelen [ISOBFF].
Vertegenwoordiging Een van de alternatieve opties voor media-inhoudsonderdelen tijdens een gedefinieerde periode, bijvoorbeeld een ISO-mediabestand. Het wordt beschreven door een MPD-weergaveelement ([DASH], sectie 5.3.5).
PlayReady-header (PRH) Een record in het PlayReady-object (PRO) met metagegevens die nodig zijn om de media-inhoud te ontsleutelen, inclusief een of meer sleutel-id's en URL's voor het verkrijgen van licenties (zie [PRH]).
Basislicentie Een licentie waarvan de inhoudssleutel wordt gebruikt voor het versleutelen van een inhoudssleutel in een Leaf-licentie
Gedeelte In DASH, een element in een MPD dat verwijst naar een mediaresource met een HTTP-URL en optioneel bytebereik.
Segmentindex Tijdsbereik tot bytebereikindextoewijzing binnen een mediasegment, gescheiden van de MPD, gedefinieerd als een ISO Media sidx-vak.
Stroomtoegangspunt (SAP) De positie in een weergave waarmee mediasegment kan worden afgespeeld met behulp van alleen de weergavegegevens van die positie voorwaarts.
Onderdeel In DASH is dit een eenheid binnen een mediasegment geïndexeerd door een segmentindex. Een filmsegment wordt behandeld als een subsegment in DASH On Demand Profile, maar een segment in DASH Live Profile.
Vak Versleuteling bijhouden In de ISO Base Media-bestandsindeling beschrijft het vak Track Encryption ('tenc') de standaardversleutelingsparameters voor een track [CENC], [ISOBFF].
UUID (universeel unieke identificator) Een wiskundig unieke id die wordt weergegeven als een getal of tekenreeks zoals opgegeven in [X.667]
Video op aanvraag (VOD) Systeem waarmee de eindgebruiker video-inhoud op aanvraag kan selecteren en bekijken. Zowel het DASH Live-profiel als het DASH On Demand-profiel kunnen worden gebruikt voor VOD-presentaties.

1.3.2 Afkortingen en acroniem

Abbr. Betekenis
CP Inhoudsbeveiliging
SCHEUTJE Dynamisch Adaptief Streaming over HTTP
ELS Ingebouwde licentiewinkel
GUID (Globaal Unieke Identificatiecode) Globaal Uniek Identificatie
KIND Sleutel-id
LAURL URL voor het verkrijgen van licenties
MPD Beschrijving van mediapresentatie
PRH PlayReady-header
PRO PlayReady-object
SAP Streamtoegangspunt
UUID (universeel unieke identificator) Universeel Unieke Identificatie
VOD Video op aanvraag

1.4 Verwijzingen

1.4.1 Normatieve verwijzingen

Code Normatieve verwijzing
[CENC] ISO/IEC FDIS 23001-7:2016 "Information technology – MPEG systems technologies – Part 7: Common encryption in ISO base media file format files", https://www.iso.org/standard/68042.html
[STREEPJE] ISO/IEC 23009-1:2014, Tweede editie, "Informatietechnologie — Dynamisch adaptief streamen via HTTP (DASH) — Deel 1: Beschrijving van mediapresentatie en segmentindelingen", http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip
[EME] "Versleutelde media-extensies", W3C-aanbeveling 18 september 2017https://www.w3.org/TR/encrypted-media/
[PRH] "Microsoft PlayReady Header, zie PlayReady Header Specification
[PRO] "Microsoft PlayReady-object, zie PlayReady-headerspecificatie
[RFC2119] " Sleutelwoorden voor gebruik in RFC's om vereisteniveaus aan te geven ", S. Bradner, maart 1997, http://www.ietf.org/rfc/rfc2119.txt
[RFC3629] "UTF-8, een transformatie-indeling van ISO 10646", F. Yergeau, november 2003, http://tools.ietf.org/html/rfc3629
[RFC4122] "A Universally Unique IDentifier (UUID) URN Namespace", P. Leach, M. Mealling, R. Salz, juli 2005,http://www.ietf.org/rfc/rfc4122.txt
[X.667] "Informatietechnologie – Open Systems Interconnection – Procedures voor de werking van OSI-registratieautoriteiten: Generatie en registratie van Universally Unique Identifiers (UUID's) en hun gebruik als ASN.1 object identifier-onderdelen" Series X ITU-T Aanbevelinghttp://www.itu.int/rec/T-REC-X.667-201210-I/en

1.4.2 Informatieve verwijzingen

Code Naslaginformatie
[CPSID] DASH Industry Forum, "Beschermingssysteem-specifieke Identifiers",http://dashif.org/identifiers/content_protection/
[DASHIF] DASH Industry Forum, "Guidelines for Implementation: DASH-IF Interoperability Points", 07 september 2017, versie 4.1,https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf
[ISOBFF] ISO/IEC 14496-12, Fourth Edition (Gecorrigeerde versie 2012-09-15), "Information technology – Coding of audio-visual objects – Part 12: ISO Base Media File Format",http://standards.iso.org/ittf/PubliclyAvailableStandards/c061988_ISO_IEC_14496-12_2012.zip

Terug naar boven

1.5 Wijzigingsgeschiedenis

Versie Datum Bijzonderheden
Versie 1.3 15 februari 2018 Verduidelijk ondersteuning voor initialisatie-vectors van 16 bytes (IV's van 16 bytes).
Versie 1.2 8 oktober 2014 1) Wijzigingen voor CENC 2e editie
2) Wijzigingen met betrekking tot de DASH MPD ContentProtection Descriptor-elementen
3) Wijzigingen in de terminologie voor het toevoegen en verduidelijken van termen
4) Wijzigingen in normatieve en informatieve verwijzingen om naar de nieuwste versie te verwijzen
5) Verhelder de KID-representatie en -dianiteit in de ISOBFF-vakken, PRO en PlayReady-licentie.
Versie 1.1 18 februari 2013 PlayReady SystemID-weergave verduidelijken.
De PlayReady SystemID is 9a04f079-9840-4286-ab92-e65be0885f95.
Big endian-representatie = {0x9A, 0x04, 0xF0, 0x79, 0x98, 0x40, 0x42, 0x86, 0xAB, 0x92, 0xE6, 0x5B, 0xE0, 0x88, 0x5F, 0x95}.
Little endian representation = {0x79, 0xF0, 0x04, 0x9A, 0x40, 0x98, 0x86, 0x42, 0xAB, 0x92, 0xE6, 0x5B, 0xE0, 0x88, 0x5F, 0x95}.
Versie 1.0 17 juli 2012 Eerste versie



2. PlayReady DASH Inhoudsbeschermingsschema

Microsoft PlayReady ondersteunt de nieuwe ISO/IEC 23009-1 [DASH] en ISO/IEC 23001-7 [CENC]-standaarden. In deze specificatie wordt beschreven hoe u een BESCHRIJVINGsbestand voor DASH Media-presentatie maakt dat het gebruik van Microsoft PlayReady voor ISO Base Media Bestandsindeling media-weergaven aangeeft, voor zowel on-demand ([DASH], sectie 8.3) als live ([DASH], sectie 8.4) adaptieve streamingscenario's.

De vier scenario's die de focus van deze specificatie vormen, zijn VOD- of livepresentaties van media:

  1. versleuteld met één sleutel

  2. waarbij sommige inhoud is versleuteld en sommige inhoud duidelijk is

  3. met sleutelrotatie zonder ingebouwde leaf-licenties

  4. met sleutelrotatie en ingesloten licenties voor 'leaf'-elementen

2.1 DASH Contentbescherming Descriptor Elementen

DASH definieert twee typen ContentProtection Descriptor-elementen voor ISO-media ([DASH] secties 5.3.7.2-Tabel 9, 5.8.5.2 en 5.8.4.1):

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

Het eerste descriptortype geeft de vier tekencode ('4CC') aan van het versleutelingsschema dat is opgenomen in het informatievak van het beveiligingsschema ('schi') in elk versleuteld ISO-mediaspoor. Dit type descriptor MOET altijd aanwezig zijn, zodat spelers zich bewust zijn van de versleutelde inhoud en kunnen bepalen of ze het versleutelingsschema kunnen ontsleutelen voordat ze proberen het te downloaden en afspelen.

Het tweede descriptortype geeft de UUID-tekenreeks aan voor een bepaald DRM-systeem dat een licentie- en ontsleutelingssleutel kan bieden voor de bijbehorende adaptatieset. Toepassingsspecificaties, zoals die van het DASH Industry Forum, DVB, en DECE, beperken alle representaties in een adaptatieset zodat ze dezelfde sleutel(s) en licentie kunnen delen om naadloze adaptieve overschakeling mogelijk te maken. Dit wordt bereikt door ContentProtection-descriptors te beperken vanuit het representatieniveau van de MPD. De UUID-tekenreeks is gelijk aan het veld SystemID dat is opgegeven door het ISO Media Protection System Specific Information Box ('pssh') dat mogelijk aanwezig is in de Movie Box ('moov') van een bestand of DASH Initialization Segment.

Notitie Het vak 'pssh' bevat een SystemID, een UUID [X.667] die het inhoudsbeveiligingssysteem uniek identificeert. De PlayReady SystemID is 9a04f079-9840-4286-ab92-e65be0885f95.

SystemID-waarden voor DRM-systemen worden geregistreerd op: https://dashif.org/identifiers/content_protection/

Elk Element AdaptationSet kan meerdere DRM-descriptors vermelden om aan te geven dat er licenties beschikbaar zijn voor meerdere DRM-systemen. Elk DRM-systeem kan elementen en kenmerken in hun eigen naamruimte opgeven en deze optioneel of vereist maken in Descriptors met behulp van hun SystemID.

In de tweede editie van Common Encryption ([CENC] sectie 11) wordt een optioneel cenc:pssh-element opgegeven dat kan worden gebruikt door alle DRM ContentProtection Descriptors voor verbeterde interoperabiliteit. Er wordt ook een cenc:default_KID attribuut opgegeven dat wordt aanbevolen voor inclusie in de mp4protection Descriptor om de licentie te identificeren die op één plek is vereist voor alle systemen. Het element cenc:pssh bevat een volledige 'pssh'-boxstructuur, dus wordt identiek verwerkt door de EME-API (Encrypted Media Extension) in webbrowsers [EME].

DRM-systemen kunnen informatie over het verkrijgen van licenties bieden in:

  1. Een cenc:pssh-element in een ContentProtection Descriptor in de MPD
  2. Een 'pssh'-module in de 'moov'-module van een bestand of initialisatiesegment
  3. Beide van het bovenstaande (in dat geval heeft het cenc:pssh-element voorrang)

Afhankelijk van de werkstroom kan het efficiënter zijn om informatie over het verkrijgen van licenties in te sluiten in een pssh-vak in elk bestand in een aanpassingsset tijdens codering of verpakking; of het kan efficiënter zijn om een cenc:pssh-element in te sluiten in een MPD op het moment dat een streamingpresentatie wordt aangeboden. Voor live streamen is het beter om cenc:pssh in de MPD te gebruiken om vroegtijdige licentieverwerving mogelijk te maken, in plaats van veel gelijktijdige licentieaanvragen te activeren op het moment dat het eerste initialisatiesegment en 'pssh'-vak gelijktijdig aan mogelijk miljoenen kijkers worden geleverd. Met informatie over het verkrijgen van licenties in de MPD kunnen verschillende streamingservices verschillende licentieservers gebruiken, deze in de loop van de tijd wijzigen, enzovoort, zonder afzonderlijke mediabestanden te maken en te beheren.

In het geval van PlayReady kan een PlayReady Object (PRO) [PRO] worden opgenomen in een cenc:pssh-element, een mspr:pro-element of een 'pssh'-vak om het verkrijgen van licenties mogelijk te maken. Het mspr:pro-element wordt gedefinieerd door Microsoft PlayReady en bevat alleen de PRO [PRO]-informatie, niet de boxstructuur die is opgenomen in 'pssh' en cenc:pssh. Als u zowel mspr:pro als cenc:pssh opneemt, kunnen oude spelers, waaronder een speler op basis van Silverlight, en nieuwe spelers, waaronder webpagina's met behulp van scripts, beveiligde DASH-presentaties afspelen op HTML5-browsers.

Notitie In deze specificatie is mspr 'urn:microsoft:playready', gedefinieerd door xmlns:mspr="urn:microsoft:playready".

Terug naar boven

Corrigeer de PRO in het initialisatiesegment of de mediainhoud

Als er een initialisatiesegment met de juiste PRO bevat of als de media-inhoud een PlayReady pssh-vak met de juiste PRO bevat, moet het volgende ContentProtection Descriptor-element met playReady Content Protection System-specifieke id [CPSID] worden gebruikt in een AdaptationSet-element in een MPD om de beschikbaarheid van een PlayReady-licentie aan te geven:

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

PlayReady ondersteunt de Standaard Common Encryption [CENC] . Wanneer de metagegevens voor het verkrijgen van licenties worden opgeslagen in het initialisatiesegment of de media-inhoud 'pssh', moet het element PlayReady ContentProtection Descriptor aanwezig zijn.

Het volgende Element ContentProtection Descriptor moet aanwezig zijn in elke beveiligde aanpassingsset en één exemplaar geeft het versleutelingsschema aan voor alle DRM's die het cenc-schema ondersteunen.

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

2.1.2 Inclusief een PlayReady-object in de MPD

Er zijn meerdere situaties waarin het PlayReady-object [PRO] mogelijk moet worden opgenomen in het PlayReady ContentProtection Descriptor-element. Voorbeeld:

  • Een presentatie waarbij de PlayReady 'pssh'-box afwezig is

  • Een presentatie waarin de PRO in het PlayReady 'pssh'-vak moet worden overschreven

Als u PlayReady wilt identificeren als het Content Protection-schema en de PRO wilt opnemen in het element ContentProtection Descriptor, is het raadzaam om zowel cenc:pssh-syntaxis te gebruiken volgens [CENC] als mspr:pro-syntaxis voor achterwaartse compatibiliteit als volgt:

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

De volgende regel moet worden gevolgd wanneer u een PlayReady pssh-vak en een PRO in het PlayReady ContentProtection Descriptor-element opvoegt:

  • Als cenc:pssh of mspr:pro is opgenomen in het PlayReady ContentProtection Descriptor-element:

    • Als een PRO is opgenomen in een beveiligingssysteemspecifieke header ('pssh') in de media-inhoud , moet een kid base64-gecodeerde tekenreekswaarde (een KID-tagwaarde van [PRO]) in een PRO die is opgenomen in zowel cenc:pssh als mspr:pro gelijk zijn aan de kid base64-gecodeerde tekenreekswaarde in die PRO die is opgenomen in het vak 'pssh'.

    • Als er een initialisatiesegment is voor de representatie die een PlayReady 'pssh' bevat, moet een door KID base64 gecodeerde tekenreekswaarde in een PRO die is opgenomen in zowel cenc:pssh als mspr:pro voor die representatie gelijk zijn aan de kid base64-gecodeerde tekenreekswaarde in die PRO die is opgenomen in het vak 'pssh' van het initialisatiesegment. Een initialisatiesegment kan een kopie zijn van de bestandskoptekst van een opgeslagen media-inhoudsbestand in een HTTP-antwoordtekst, maar het kan ook dynamisch worden gegenereerd en nooit als een bestand worden opgeslagen.

  • Als de media-inhoud een PlayReady 'pssh'-vak bevat met een PRO met een LAURL en dat LAURL verschilt van de LAURL in de PRO die is opgenomen in het element ContentProtection Descriptor, heeft het element ContentProtection Descriptor LAURL voorrang.

Terug naar boven

Het opnemen van velden van de Track Encryption Box in de MPD

Common Encryption geeft aan welke sleutel wordt gebruikt voor het versleutelen van elk mediavoorbeeld (of niet gebruikt) met sleutel-id('s) (KID) in elk filmsegment. Sommige informatie, zoals de default_KID in de Track Encryption Box ('tenc') is handig om in de MPD te signaleren om te bepalen welke licentie is vereist.

Er kunnen mediapresentatieperioden zijn die niet-versleuteld zijn, gevolgd door perioden die zijn versleuteld. Mediabestanden en streams kunnen zowel versleutelde als niet-versleutelde secties bevatten. Daarnaast kan de Sleutel-ID (KID) veranderen van periode naar periode, of van sectie naar sectie. Belangrijke wijzigingen in secties van een track worden gesignaleerd met behulp van ISO Media sample group en samplegroepbeschrijvingsboxen in elk filmsegment. Zie [CENC] voor meer informatie over voorbeeldgroepen en toegang tot initialisatievectors en subsample versleutelingsbereiken met behulp van de vakken 'saio' en 'saiz' die verwijzen naar voorbeeldhulpinformatie.

De standaardinstellingen voor algemene versleutelingsgegevens worden gecodeerd in het vak Track Encryption ('tenc') van elk track (zie [ISOBFF] en [CENC]) die zijn opgeslagen in een track box ('trak') in een ISO-bestandskoptekst en initialisatiesegment. De standaardsleutel-id (KID) in het veld Track Encryption Box (default_KID veld) moet ook worden gecommuniceerd in het element ContentProtection Descriptor dat is gekoppeld aan de mediapresentatie-aanpassingsset. De cenc:default_KID kan worden gebruikt om een licentie te identificeren die de mediasegmenten waarnaar wordt verwezen door het bovenliggende AdaptationSet-element kan ontsleutelen.

Als u de standaardsleutel-id (KID) wilt opnemen in het element Common Encryption ContentProtection Descriptor, gebruikt u het volgende cenc:default_KID kenmerk dat is opgegeven in [CENC]:

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

Het default_KID veld in 'tenc' is een grote endiane matrix van 16 bytes en wordt hierboven gedefinieerd om te worden opgeslagen in het kenmerk cenc:default_KID in Common Encryption ContentProtection Descriptor-element als een UUID-tekenreeks.

Wanneer een ContentProtection Descriptor-element verwijst naar verschillende sporen en deze verschillende standaardsleutel-id's in verschillende 'tenc'-vakken gebruiken, slaat het kenmerk cenc:default_KID een door spaties gescheiden lijst op van die verschillende default_KID waarden.

Het kenmerk cenc:default_KID kan ook worden opgenomen in het element PlayReady ContentProtection Descriptor.

Tabel 1 hieronder bevat de velden die zijn opgegeven in het ISO Media Track Encryption Box ('tenc') (zie sectie 9.2, [CENC]). De elementen onder tabel 1 , die zijn gedefinieerd in de naamruimte 'mspr' voor de eerste editie van Common Encryption (mspr:IsEncrypted, mspr:IV_size en mspr:kid), maar zijn afgeschaft en functioneel vervangen door cenc:default_KID opgegeven in de tweede editie van Common Encryption [CENC]. De IV_size- en IsEncrypted-velden in de Track Encryption Box ('tenc') worden gebruikt tijdens de ontsleuteling, maar zijn niet nodig in MPD ContentProtection Descriptor-elementen.

Notitie KID-waarde in mspr:kid is een base64-gecodeerde guid-interpretatie van de 'tenc' default_KID bytematrix die is gedefinieerd voor het opslaan van een grote endiane UUID. Alle velden uit de Track Encryption Box kunnen worden gekopieerd naar de MPD, maar alleen default_KID hoeft beschikbaar te worden gemaakt voor het verkrijgen van licenties.

Tabel 1 : Velden van versleutelingsvak bijhouden

Element standaard Beschrijving
default_IsEncrypted 1 Vlag die de versleutelingsstatus van de voorbeelden in de voorbeeldgroep aangeeft. Toegestane waarden zijn 0 (niet versleuteld) en 1 (versleuteld).
default_IV_size 8 De grootte in bytes van het veld Initialisatievector (IV).
- PlayReady versie 1, 2, 3 ondersteunt 0 en 8.
- PlayReady versie 4 en hoger ondersteunen 0, 8 en 16.
Als default_IsEncrypted =1, moet default_IV_size NIET worden ingesteld op 0.

Aangezien niet alle PlayReady-spelers ondersteuning bieden voor 16 byte Initialization Vectors, wordt aanbevolen dat slechts een default_IV_size van 8 worden gebruikt voor versleutelde inhoud, als de service PlayReady versie 1/2/3 spelers moet bereiken.
default_KID Geen 16-byte (128-bits) sleutel-id die de sleutel identificeert die nodig is om de bijbehorende samples te ontsleutelen. De sleutel-id wordt behandeld als UUID volgens [CENC]
Houd er rekening mee dat, in tegenstelling tot de KID in de PlayReady Header [PRH], 'tenc' default_KID wordt opgeslagen als een matrix van 16 bytes die een 128-bit geheel getal is, geordend in big endian formaat, hetgeen gelijk is aan de binaire (sectie 6.2) en numerieke (sectie 6.3) UUID-representaties zoals gespecificeerd in [X.667].

Notitie: De indeling van de default_KID in de Track Encryption Box verschilt van de indeling van de KID-waarde die is ingesloten in PRO in cenc:pssh, mspr:pro en mspr:kid. Zie sectie 2.2.5, [CENC] en [PRO] voor meer informatie.

Als u PlayReady wilt identificeren als het Inhoudsbeveiligingsschema en de velden Track Encryption Box in de MPD wilt opnemen, gebruikt u de volgende syntaxis:

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

De volgende regels moeten worden gevolgd bij het opnemen van het kenmerk cenc:default_KID in het element Common Encryption ContentProtection Descriptor en de velden Versleutelingsvak bijhouden in het element PlayReady ContentProtection Descriptor:

  • De KID-tekenreeks in cenc:default_KID kenmerk in het element Common Encryption ContentProtection Descriptor moet gelijk zijn aan de default_KID UUID in het vak Track Encryption voor dat spoor.

  • De mspr:IsEncrypted-, mspr:IV_size- en/of mspr:kid-waarde in het PlayReady ContentProtection Descriptor-element moeten gelijk zijn aan de velden default_IsEncrypted, default_IV_size of default_KID in de Track Encryption-box voor die track.

  • Indien mspr:pro en cenc:pssh zijn opgenomen in het PlayReady ContentProtection Descriptor-element (zie sectie 2.1.2) met de Track Encryption Box fields:

    • De KID die is ingebed in PRO in mspr:pro en cenc:pssh-elementen moet gelijkwaardig zijn aan de default_KID in de Track Encryption Box van dat track.

    • De KID in het kenmerk cenc:default_KID in het element Common Encryption ContentProtection Descriptor en de mspr:kid waarde in het PlayReady ContentProtection Descriptor-element zouden gelijk zijn aan de default_KID in de Track Encryption Box van die track.

Notitie Houd er rekening mee dat default_KID in de Track Encryption Box wordt geïnterpreteerd als een binaire of numerieke UUID, opgeslagen als een 16 byte big endian byte-array, als een met streepjes gescheiden UUID-tekst in cenc:default_KID, en als een base64-tekenreeks die is gecodeerd vanuit een little endian bytevolgorde GUID-weergave in PRO en mspr:kid; maar alle moeten alternatieve representaties van dezelfde UUID zijn. Zie sectie 2.2.5.

Terug naar boven

2.2 Aanbevelingen en vereisten voor implementatie

Het PlayReady-object (PRO) [PRO] KAN worden opgenomen in het gecodeerde mediabeveiligingssysteemspecifieke headervak ('pssh') [ISOBFF], het initialisatiesegment of gecodeerd in de MPD zelf.

Een 'pssh'-vak kan worden ingevoegd in het filmvak ('moov') of het vak Filmfragment ('moof'). Een pssh-vak kan bijvoorbeeld worden ingevoegd in het vak moov om het gebruik van initialisatiesegmenten ([DASH], sectie 5.3.9.5.2) mogelijk te maken. Er kan een 'pssh'-blok worden ingevoegd in elk 'moof'-blok om Leaf Licenses te communiceren die door KID zijn geïndexeerd voor sleutelrotatie.

De voorbeeldgroep en de voorbeeldhulpinformatie moeten worden opgeslagen in een filmsegment waarnaar wordt verwezen. Een voorbeeld van een groepsbeschrijvingsvak ('sgdp') moet aanwezig zijn in elk moof-vak wanneer er een sample-naar-groepsvak ('sbgp') aanwezig is. Sample Auxiliary Information Offset Box ('saio') en Sample Auxiliary Information Size Box ('saiz') dienen aanwezig te zijn in elk filmsegment van elke track die een Track Encryption Box ('tenc') bevat, met geldige verwijzingen naar Sample Auxiliary Information.

2.2.1 Algemeen

Het PlayReady ContentProtection Descriptor-element kan worden gekoppeld aan adaptatiesets of hun representaties, maar voor naadloze adaptieve bitsnelheidswisseling en conformiteit met DASH-toepassingsspecificaties, moet het element PlayReady ContentProtection Descriptor zijn opgenomen in een AdaptationSet-element in plaats van weergave-elementen. Dit zorgt ervoor dat één licentie- en decryptorconfiguratie kan worden gebruikt voor alle segmenten in een adaptatieset.

Het wordt AANBEVOLEN om de PlayReady ContentProtection Descriptor op te nemen, en het is VEREIST om de DASH MP4 ContentProtection Descriptor met de waarde 'cenc' in de MPD op te nemen.

Dit maakt DRM's mogelijk die 'cenc' kunnen hebben en licentieverwervingsgegevens hebben in een toepassing, of in de MPD, of in een 'pssh' in het initialisatiesegment om te identificeren dat de inhoud Common Encrypted is, de vereiste licentie te identificeren (met behulp van default_KID), een licentie te verkrijgen en de media te ontsleutelen.

Het is RAADZAAM om het kenmerk met de @value naam en versie MSPR 2.0 op te nemen naast de UUID in de PlayReady ContentProtection Descriptor voor menselijke erkenning. Voorbeeld:

<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 Prioriteit van PRO-locatie

Wanneer een clienttoepassing een PRO vindt in de MPD, heeft deze voorrang op een PRO in het initialisatiesegment (zie aanvullende vereisten voor initialisatiesegment PRO in 2.2.3).

Wanneer een client-applicatie een PRO vindt in de MPD, krijgt de Rights Management-header in die PRO voorrang boven de Rights Management-header in een PRO binnen een 'pssh'-vak in de 'moov'-box van de media-inhoud.

Wanneer een clienttoepassing een PRO vindt in het initialisatiesegment, zal deze voorrang krijgen boven een PRO in een 'pssh'-vak in de koptekst 'moov' van de media-inhoud (zie aanvullende vereisten voor initialisatiesegment PRO in 2.2.3).

2.2.3 Waar moet de PRO worden opgenomen

De PRO MOET aanwezig zijn in MPD of het initialisatiesegment. Het kan aanwezig zijn in beide. In de MPD moet het aanwezig zijn in zowel een mspr:pro-element als een cenc:pssh-element in de PlayReady Content Protection Descriptor (mspr:pro voor verouderde spelers).

Een PRO in het initialisatiesegment of de MPD KAN een Rights Management-header bevatten.

Of u nu een initialisatiesegment gebruikt of niet, het is RAADZAAM dat de MPD de juiste PRO bevat, zodat de Rights Management-headergegevens kunnen worden verkregen zonder het initialisatiesegment te downloaden.

2.2.4 Wat moet u opnemen in de MPD PRO

De PRO kan de Rights Management Header en/of een Embedded License Store (ELS) bevatten.

Het is RAADZAAM dat de MPD PRO de Rights Management-header bevat.

Het wordt NIET AANBEVOLEN om een ELS op te nemen, tenzij dit nodig is als onderdeel van een DRM-domein of een licentieketenschema.

2.2.5 KID Byte Order

De sleutel-id's (KID's) in PlayReady worden opgeslagen in een bytematrix die is opgemaakt als een GUID (DWORD, WORD, WORD, 8-BYTE-matrix) in een kleine bytevolgorde, die vervolgens base64 is gecodeerd voor opslag als een tekenreeks in de PRO. Zowel PlayReady-licentieservers als PlayReady-clients in een PlayReady-ecosysteem verwachten dat de KID in de PRO- en PlayReady-licentie een little-endian bytevolgorde representatie van [GUID] is.

Het equivalente KID kan worden weergegeven als een UUID-tekenreeks ([X.667] sectie 6.4) of bytematrix die een UUID bevat in het binaire bestand van big endian bytevolgorde (sectie 6.2) of getal (sectie 6.3) zoals opgegeven in [X.667]. Common Encryption [CENC] en DASH gebruiken deze weergaven in het kenmerk cenc:default_KID (6.4 tekenreeks), Track Encryption Box ('tenc') en 'seig' Sample Group Description Box ('sgpd') (6.2 binair of 6.3 number byte array).

Als gevolg hiervan moet de client, tenzij er een wijziging is, de endianness van de KIDs bytematrix converteren om deze te koppelen aan de PlayReady-licentie.

Gebruik de volgende voorbeeldcode om de KIDs in het attribuut cenc:default_KID en [ISOBFF]-vakken naar PlayReady KID te converteren.

// 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 2VOORBEELD VAN KID-weergave

KID-parameter Typ Vertegenwoordiging
KIND UUID BE Hex-nummer f81d4fae7dec11d0a76500a0c91e6bf6
Sectie 6.3 van [X.667]
cenc:default_KID attribuut UUID Hex-tekenreeks met afbreekstreepjes "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
Sectie 6.4 van [X.667]
KID in ISOBFF-vakken UUID BE Byte Array Hex-weergave is { 0xf8, 0x1d, 0x4f, 0xae, 0x7d, 0xec, 0x11, 0xd0, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 }
Sectie 6.2 van [X.667]
KID in PRO Base64-tekenreeks van GUID LE Byte-matrix "rk8d+Ox90BGnZQCgyR5r9g="
(Hex-weergave van de gegevens vóór Base64-codering is { 0xae, 0x4f, 0x1d, 0xf8, 0xec, 0x7d, 0xd0, 0x11, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 })
mspr:kid Base64-tekenreeks van default_KID Bytematrix in het vak 'tenc' "+B1Prn3sEdCnZQCgyR5r9g="
(Hex-weergave van de gegevens vóór Base64-codering is { 0xf8, 0x1d, 0x4f, 0xae, 0x7d, 0xec, 0x11, 0xd0, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 })
KID in PlayReady-licentie GUID LE Byte-array Hexweergave is { 0xae, 0x4f, 0x1d, 0xf8, 0xec, 0x7d, 0xd0, 0x11, 0xa7, 0x65, 0x00, 0xa0, 0xc9, 0x1e, 0x6b, 0xf6 }

Terug naar boven



3. Voorbeeld van beschrijving van mediapresentatie

3.1 Juiste PRO in initialisatiesegment of mediainhoud

Zie sectie 2.1.1 hierboven.

<?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 Het opnemen van een PlayReady-object (PRO) in de MPD

Zie sectie 2.1.2 hierboven.

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