Media Services PlayReady-licencsablonok
Figyelmeztetés
Az Azure Media Services 2024. június 30-án megszűnik. További információkért lásd az AMS kivezetési útmutatót.
Az Azure Media Services lehetővé teszi a tartalmak titkosítását Microsoft PlayReady és PlayReady-licenccel. A Media Services a PlayReady-licencek kézbesítésére is kínál szolgáltatást. Amikor egy játékos megpróbálja lejátszani a PlayReady által védett tartalmat, a rendszer kérést küld a licenckézbesítési szolgáltatásnak a licenc beszerzésére. Ha a licencszolgáltatás jóváhagyja a kérést, kiadja az ügyfélnek küldött licencet, amelyet a rendszer a megadott tartalom visszafejtésére és lejátszására használ.
A PlayReady-licencek tartalmazzák azokat a jogokat és korlátozásokat, amelyeket a PlayReady digitális jogkezelési (DRM) futtatókörnyezete kényszeríthet, amikor egy felhasználó védett tartalmakat próbál visszajátszani. Íme néhány példa a PlayReady licenckorlátozásaira, amelyeket megadhat:
- A licenc érvényességének dátuma és időpontja.
- A DateTime érték, amikor a licenc lejár.
- Ahhoz, hogy a licenc az ügyfél állandó tárolójában legyen mentve. Az állandó licenceket általában a tartalom offline lejátszásának engedélyezésére használják.
- A minimális biztonsági szint, amelyet a játékosnak le kell játszania a tartalommal.
- A hang- és videotartalmak kimeneti vezérlőinek kimeneti védelmi szintje.
- További információ: A PlayReady megfelelőségi szabályainak dokumentum "Kimeneti vezérlők" szakasza (3.5).
PlayReady SL3000-támogatás
A Media Services PlayReady DRM tartalomvédelmi és licenckézbesítési funkciói támogatják a PlayReady SL3000-et. A biztonsági szint egy PlayReady-ügyfél része. Minden ügyfélnek kézbesített licenc rendelkezik egy tulajdonságával, amely jelzi a licenchez való kötés engedélyezéséhez szükséges minimális biztonsági szintet. A 3000-es biztonsági szint olyan eszközökhöz érhető el, amelyek a legmagasabb szintű kereskedelmi tartalmat használják. Az SL3000-licencet a Tartalomkulcs-szabályzatokban állíthatja be.
A PlayReady biztonsági szintjeiről további információt a Biztonsági szint használata licencben című cikkben talál.
Néhány dolog, amit tudnia kell:
- Ha hozzáad egy SL3000 PlayReady ContentKeyPolicyOptiont egy tartalomkulcs-szabályzathoz, az csak további PlayReady SL3000 vagy Widevine L1 beállításokat tartalmazhat.
- Az SL3000 használatához másik kulcsot kell használnia a hanghoz.
- A hangkulcs nem használhat SL3000 szintű licencet.
- A hangnak SL2000-ra vagy alacsonyabbra vagy titkosítatlanra kell korlátozódnia.
- Az SL3000-lejátszás jelenleg nem működik az Azure Media Playerben (AMP). Tesztelje külső lejátszóban (pl. Shaka Player) vagy olyan eszközön, amely támogatja az SL3000 lejátszást.
Példa SL3000-ra egy tartalomkulcs-szabályzatban
{
"properties": {
"description": "ArmPolicyDescription",
"options": [
{
"name": "ArmPolicyOptionName",
"configuration": {
"@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
"licenses": [
{
"allowTestDevices": true,
"securityLevel": "SL3000",
"beginDate": "2022-10-16T18:22:53.46Z",
"playRight": {
"scmsRestriction": 2,
"digitalVideoOnlyContentRestriction": false,
"imageConstraintForAnalogComponentVideoRestriction": true,
"imageConstraintForAnalogComputerMonitorRestriction": false,
"allowPassingVideoContentToUnknownOutput": "NotAllowed"
},
"licenseType": "Persistent",
"contentKeyLocation": {
"@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
},
"contentType": "UltraVioletDownload"
}
]
},
"restriction": {
"@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
}
}
]
}
}
Egyszerű streamelési licenc – példa
Az alábbi példa a legegyszerűbb (és leggyakoribb) sablont mutatja be, amely alapszintű streamelési licencet konfigurál. Ezzel a licenccel az ügyfelek lejátszhatják a PlayReady által védett tartalmakat.
Az XML megfelel a PlayReady-licencsablon XML-sémája szakaszban meghatározott PlayReady-licencsablon XML-sémájának .
<?xml version="1.0" encoding="utf-8"?>
<PlayReadyLicenseResponseTemplate xmlns:i="https://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/Azure/MediaServices/KeyDelivery/PlayReadyTemplate/v1">
<LicenseTemplates>
<PlayReadyLicenseTemplate>
<ContentKey i:type="ContentEncryptionKeyFromHeader" />
<PlayRight />
</PlayReadyLicenseTemplate>
</LicenseTemplates>
</PlayReadyLicenseResponseTemplate>
A Media Services API-k használata licencsablonok konfigurálásához
A Media Services olyan típusokat biztosít, amelyekkel PlayReady-licencsablonokat konfigurálhat.
A licencsablonok konfigurálásához szükséges mintákat a Content Protection-minták oldalon találja.
Fontos
A PlayReady-licenc erős korlátozásokkal rendelkezik. Ha a kimeneti védelem túl korlátozó, előfordulhat, hogy egyes ügyfeleken a tartalom nem játszható le. További információ: PlayReady megfelelőségi szabályok.
PlayReady-licencsablon XML-sémája
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.microsoft.com/Azure/MediaServices/KeyDelivery/PlayReadyTemplate/v1" xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/Azure/MediaServices/KeyDelivery/PlayReadyTemplate/v1" xmlns:xs="https://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:complexType name="AgcAndColorStripeRestriction">
<xs:sequence>
<xs:element minOccurs="0" name="ConfigurationData" type="xs:unsignedByte" />
</xs:sequence>
</xs:complexType>
<xs:element name="AgcAndColorStripeRestriction" nillable="true" type="tns:AgcAndColorStripeRestriction" />
<xs:simpleType name="ContentType">
<xs:restriction base="xs:string">
<xs:enumeration value="Unspecified" />
<xs:enumeration value="UltravioletDownload" />
<xs:enumeration value="UltravioletStreaming" />
</xs:restriction>
</xs:simpleType>
<xs:element name="ContentType" nillable="true" type="tns:ContentType" />
<xs:complexType name="ExplicitAnalogTelevisionRestriction">
<xs:sequence>
<xs:element minOccurs="0" name="BestEffort" type="xs:boolean" />
<xs:element minOccurs="0" name="ConfigurationData" type="xs:unsignedByte" />
</xs:sequence>
</xs:complexType>
<xs:element name="ExplicitAnalogTelevisionRestriction" nillable="true" type="tns:ExplicitAnalogTelevisionRestriction" />
<xs:complexType name="PlayReadyContentKey">
<xs:sequence />
</xs:complexType>
<xs:element name="PlayReadyContentKey" nillable="true" type="tns:PlayReadyContentKey" />
<xs:complexType name="ContentEncryptionKeyFromHeader">
<xs:complexContent mixed="false">
<xs:extension base="tns:PlayReadyContentKey">
<xs:sequence />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ContentEncryptionKeyFromHeader" nillable="true" type="tns:ContentEncryptionKeyFromHeader" />
<xs:complexType name="ContentEncryptionKeyFromKeyIdentifier">
<xs:complexContent mixed="false">
<xs:extension base="tns:PlayReadyContentKey">
<xs:sequence>
<xs:element minOccurs="0" name="KeyIdentifier" type="ser:guid" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ContentEncryptionKeyFromKeyIdentifier" nillable="true" type="tns:ContentEncryptionKeyFromKeyIdentifier" />
<xs:complexType name="PlayReadyLicenseResponseTemplate">
<xs:sequence>
<xs:element name="LicenseTemplates" nillable="true" type="tns:ArrayOfPlayReadyLicenseTemplate" />
<xs:element minOccurs="0" name="ResponseCustomData" nillable="true" type="xs:string">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="PlayReadyLicenseResponseTemplate" nillable="true" type="tns:PlayReadyLicenseResponseTemplate" />
<xs:complexType name="ArrayOfPlayReadyLicenseTemplate">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="PlayReadyLicenseTemplate" nillable="true" type="tns:PlayReadyLicenseTemplate" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfPlayReadyLicenseTemplate" nillable="true" type="tns:ArrayOfPlayReadyLicenseTemplate" />
<xs:complexType name="PlayReadyLicenseTemplate">
<xs:sequence>
<xs:element minOccurs="0" name="AllowTestDevices" type="xs:boolean" />
<xs:element minOccurs="0" name="BeginDate" nillable="true" type="xs:dateTime">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="ContentKey" nillable="true" type="tns:PlayReadyContentKey" />
<xs:element minOccurs="0" name="ContentType" type="tns:ContentType">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="ExpirationDate" nillable="true" type="xs:dateTime">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="GracePeriod" nillable="true" type="ser:duration">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="LicenseType" type="tns:PlayReadyLicenseType" />
<xs:element minOccurs="0" name="PlayRight" nillable="true" type="tns:PlayReadyPlayRight" />
</xs:sequence>
</xs:complexType>
<xs:element name="PlayReadyLicenseTemplate" nillable="true" type="tns:PlayReadyLicenseTemplate" />
<xs:simpleType name="PlayReadyLicenseType">
<xs:restriction base="xs:string">
<xs:enumeration value="Nonpersistent" />
<xs:enumeration value="Persistent" />
</xs:restriction>
</xs:simpleType>
<xs:element name="PlayReadyLicenseType" nillable="true" type="tns:PlayReadyLicenseType" />
<xs:complexType name="PlayReadyPlayRight">
<xs:sequence>
<xs:element minOccurs="0" name="AgcAndColorStripeRestriction" nillable="true" type="tns:AgcAndColorStripeRestriction">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="AllowPassingVideoContentToUnknownOutput" type="tns:UnknownOutputPassingOption">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="AnalogVideoOpl" nillable="true" type="xs:int">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="CompressedDigitalAudioOpl" nillable="true" type="xs:int">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="CompressedDigitalVideoOpl" nillable="true" type="xs:int">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="DigitalVideoOnlyContentRestriction" type="xs:boolean">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="ExplicitAnalogTelevisionOutputRestriction" nillable="true" type="tns:ExplicitAnalogTelevisionRestriction">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="FirstPlayExpiration" nillable="true" type="ser:duration">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="ImageConstraintForAnalogComponentVideoRestriction" type="xs:boolean">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="ImageConstraintForAnalogComputerMonitorRestriction" type="xs:boolean">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="ScmsRestriction" nillable="true" type="tns:ScmsRestriction">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="UncompressedDigitalAudioOpl" nillable="true" type="xs:int">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="UncompressedDigitalVideoOpl" nillable="true" type="xs:int">
<xs:annotation>
<xs:appinfo>
<DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="PlayReadyPlayRight" nillable="true" type="tns:PlayReadyPlayRight" />
<xs:simpleType name="UnknownOutputPassingOption">
<xs:restriction base="xs:string">
<xs:enumeration value="NotAllowed" />
<xs:enumeration value="Allowed" />
<xs:enumeration value="AllowedWithVideoConstriction" />
</xs:restriction>
</xs:simpleType>
<xs:element name="UnknownOutputPassingOption" nillable="true" type="tns:UnknownOutputPassingOption" />
<xs:complexType name="ScmsRestriction">
<xs:sequence>
<xs:element minOccurs="0" name="ConfigurationData" type="xs:unsignedByte" />
</xs:sequence>
</xs:complexType>
<xs:element name="ScmsRestriction" nillable="true" type="tns:ScmsRestriction" />
</xs:schema>
Súgó és támogatás
Kérdéseket tehet fel a Media Serviceshez, vagy kövesse a frissítéseket az alábbi módszerek egyikével:
- Q & A
- Stack Overflow. Kérdések címkézése a következővel:
azure-media-services
. - @MSFTAzureMediavagy @AzureSupport használatával kérjen támogatást.
- Nyisson meg egy támogatási jegyet a Azure Portal keresztül.