หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Overview
PlayReady output protections ensure that protected content maintains its security requirements across different output types and quality levels. This documentation provides a complete mapping of output protection policies defined in the Compliance Rules and their corresponding test server parameter syntax.
Output Protection Categories
Audio Output Protections
Compressed Digital Audio Content
Compliance Reference: CRs section 3.6.2
Parameter Syntax: caopl:200
Description: Controls output protection level for compressed digital audio content such as MP3, AAC, or other compressed audio formats.
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(caopl:200)
Explicit Digital Audio Output Restriction
Compliance Reference: CRs section 3.6.2.8
Parameter Syntax: avop:(guid:6D5CFA59-C250-4426-930E-FAC72C8FCFA6)
Description: Provides explicit restrictions on digital audio outputs using specific GUID identifiers.
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(avop:(guid:6D5CFA59-C250-4426-930E-FAC72C8FCFA6))
Uncompressed Digital Audio Content
Compliance Reference: CRs section 3.6.3
Parameter Syntax: ucaopl:200
Description: Controls output protection level for uncompressed digital audio content such as PCM or other uncompressed audio formats.
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(ucaopl:200)
Video Output Protections
Compressed Digital Video Content
Compliance Reference: CRs section 3.6.4
Parameter Syntax: cvopl:500
Description: Controls output protection level for compressed digital video content such as H.264, H.265, or other compressed video formats.
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(cvopl:500)
Uncompressed Digital Video Content
Compliance Reference: CRs section 3.6.5
Parameter Syntax: ucvopl:200
Description: Controls output protection level for uncompressed digital video content.
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(ucvopl:200)
Advanced Video Protection Features
Maximum Decode Resolution
Compliance Reference: CRs section 3.6.5.7.1
Parameter Syntax Options:
- Simple:
maxres:1920x1080 - Advanced:
dvop:(guid:9645E831-E01D-4FFF-8342-0A720E3E028F,data:AAAEOAAAB4A=)
Description: Restricts the maximum resolution at which content can be decoded and displayed.
Examples:
# Simple resolution restriction
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(maxres:1920x1080)
# Advanced resolution restriction using GUID
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(dvop:(guid:9645E831-E01D-4FFF-8342-0A720E3E028F,data:AAAEOAAAB4A=))
HDCP Type Restriction
Compliance Reference: CRs section 3.6.5.7.2
Parameter Syntax: dvop:(guid:ABB2C6F1-E663-4625-A945-972D17B231E7,data:AAAAAQ==)
Description: Specifies High-bandwidth Digital Content Protection (HDCP) requirements for digital video outputs.
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(dvop:(guid:ABB2C6F1-E663-4625-A945-972D17B231E7,data:AAAAAQ==))
Analog Output Protections
Analog Television Outputs
Compliance Reference: CRs section 3.6.6
Parameter Syntax: avopl:200
Description: Controls output protection level for analog television outputs.
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(avopl:200)
Extended Analog TV Controls - CGMS-A
Compliance Reference: CRs section 3.6.7.1
Parameter Syntax: avop:(guid:225CD36F-F132-49EF-BA8C-C91EA28E4369,data:AAAAAQ==)
Server SDK Code:
right.AddAnalogVideoOutputProtection(
new Guid("{225CD36F-F132-49EF-BA8C-C91EA28E4369}"),
BitConverter.GetBytes((int)1)
);
Description: Implements Copy Generation Management System - Analog (CGMS-A) protection for analog television outputs.
Extended Analog TV Controls - AGCCS
Compliance Reference: CRs section 3.6.7.2
Parameter Syntax: avop:(guid:C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA,data:AgAAAA==)
Server SDK Code:
right.AddAnalogVideoOutputProtection(
new Guid("C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA"),
BitConverter.GetBytes((int)2)
);
Description: Implements Automatic Gain Control Copy System (AGCCS) protection for analog television outputs.
Analog Computer Monitor Output
Compliance Reference: CRs section 3.6.8
Parameter Syntax: avop:(guid:D783A191-E083-4BAF-B2DA-E69F910B3772)
Description: Controls output protection for analog computer monitor connections (VGA, etc.).
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(avop:(guid:D783A191-E083-4BAF-B2DA-E69F910B3772))
Analog Component Video Output
Compliance Reference: CRs section 3.6.9
Parameter Syntax: avop:(guid:811C5110-46C8-4C6E-8163-C0482A15D47E)
Description: Controls output protection for analog component video outputs (YPbPr).
Example:
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(avop:(guid:811C5110-46C8-4C6E-8163-C0482A15D47E))
Digital Video Only Content
Compliance Reference: CRs section 3.6.11
Parameter Syntax: avop:(guid:760AE755-682A-41E0-B1B3-DCDF836A7306,data:AAAAAQ==)
Server SDK Code:
right.AddAnalogVideoOutputProtection(
new Guid("{760AE755-682A-41E0-B1B3-DCDF836A7306}"),
BitConverter.GetBytes((int)1)
);
Description: Restricts content to digital video outputs only, preventing analog video output.
Unknown Output Handling
Passing to Unknown Output
Compliance Reference: CRs section 3.9.1
Parameter Syntax Options:
allowunknownhd:trueplayenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7)
Description: Controls whether content can be passed to unknown or unrecognized outputs at high definition quality.
Examples:
# Allow unknown HD outputs
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(allowunknownhd:true)
# Using play enabler GUID
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(playenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7))
Passing Constrained Resolution to Unknown Output
Compliance Reference: CRs section 3.9.2
Parameter Syntax Options:
allowunknownsd:trueplayenablers:(B621D91F-EDCC-4035-8D4B-DC71760D43E9)
Description: Controls whether content can be passed to unknown outputs at standard definition quality.
Examples:
# Allow unknown SD outputs
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(allowunknownsd:true)
# Using play enabler GUID
http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(playenablers:(B621D91F-EDCC-4035-8D4B-DC71760D43E9))
Protection Level Values
Common Protection Levels
| Level | Description | Usage |
|---|---|---|
| 100 | Minimal protection | Basic content, low security requirements |
| 150 | Low protection | Standard definition content |
| 200 | Medium protection | High definition content |
| 270 | High protection | Premium content |
| 300 | Maximum protection | Ultra-high value content |
Audio-Specific Levels
| Level | Description | Audio Quality |
|---|---|---|
| 100 | Basic audio protection | Compressed, low bitrate |
| 150 | Standard audio protection | CD quality |
| 200 | High audio protection | High-resolution audio |
| 250 | Premium audio protection | Lossless audio |
Video-Specific Levels
| Level | Description | Video Quality |
|---|---|---|
| 150 | Standard definition | Up to 480p |
| 200 | High definition | Up to 720p |
| 270 | Full HD | Up to 1080p |
| 300 | Ultra HD | 4K and above |
Testing Scenarios
Basic Output Protection Testing
// Test basic video output protection
async function testVideoOutputProtection() {
const testCases = [
{ name: 'SD Video', config: 'cvopl:150' },
{ name: 'HD Video', config: 'cvopl:200' },
{ name: 'Full HD Video', config: 'cvopl:270' }
];
for (const testCase of testCases) {
const url = `http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(${testCase.config})`;
const result = await testLicenseAcquisition(url);
console.log(`${testCase.name}: ${result.success ? 'PASS' : 'FAIL'}`);
}
}
HDCP Requirement Testing
// Test HDCP requirements
async function testHDCPRequirements() {
const hdcpConfig = 'dvop:(guid:ABB2C6F1-E663-4625-A945-972D17B231E7,data:AAAAAQ==)';
const url = `http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(${hdcpConfig})`;
const result = await testLicenseAcquisition(url);
return result.outputProtections.hdcpRequired;
}
Analog Protection Testing
// Test analog output restrictions
async function testAnalogProtections() {
const analogTests = [
{
name: 'Analog TV Protection',
config: 'avopl:200'
},
{
name: 'CGMS-A Protection',
config: 'avop:(guid:225CD36F-F132-49EF-BA8C-C91EA28E4369,data:AAAAAQ==)'
},
{
name: 'Digital Video Only',
config: 'avop:(guid:760AE755-682A-41E0-B1B3-DCDF836A7306,data:AAAAAQ==)'
}
];
const results = [];
for (const test of analogTests) {
const url = `http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(${test.config})`;
const result = await testLicenseAcquisition(url);
results.push({
test: test.name,
success: result.success,
analogRestricted: result.outputProtections.analogRestricted
});
}
return results;
}
Server SDK Implementation
Basic Output Protection Setup
// Add video output protection level
right.AddVideoOutputProtectionLevel(
PlayReadyVideoOutputProtectionLevel.CompressedDigitalVideo,
270
);
// Add audio output protection level
right.AddAudioOutputProtectionLevel(
PlayReadyAudioOutputProtectionLevel.CompressedDigitalAudio,
200
);
Advanced Protection Configuration
// Add specific analog video output protection
right.AddAnalogVideoOutputProtection(
new Guid("{225CD36F-F132-49EF-BA8C-C91EA28E4369}"),
BitConverter.GetBytes((int)1)
);
// Add HDCP requirement
right.AddDigitalVideoOutputProtection(
new Guid("{ABB2C6F1-E663-4625-A945-972D17B231E7}"),
BitConverter.GetBytes((int)1)
);
// Add maximum resolution restriction
right.AddDigitalVideoOutputProtection(
new Guid("{9645E831-E01D-4FFF-8342-0A720E3E028F}"),
resolutionData
);
Play Enabler Configuration
// Allow unknown outputs at SD quality
right.AddPlayEnabler(
new Guid("{B621D91F-EDCC-4035-8D4B-DC71760D43E9}")
);
// Allow unknown outputs at HD quality
right.AddPlayEnabler(
new Guid("{786627D8-C2A6-44BE-8F88-08AE255B01A7}")
);
Best Practices
Output Protection Strategy
- Assess Content Value - Higher value content requires stricter protection
- Consider Device Capabilities - Ensure devices can support required protection levels
- Test Across Platforms - Validate protection on different device types
- Balance Security and Usability - Avoid overly restrictive policies
Implementation Guidelines
- Start with Basic Protection - Begin with standard protection levels
- Add Specific Restrictions - Layer additional protections as needed
- Test Unknown Output Handling - Validate behavior with unrecognized outputs
- Document Protection Requirements - Clearly specify protection policies
Testing Recommendations
- Comprehensive Testing - Test all protection levels and combinations
- Device Compatibility - Validate on target device types
- Output Type Testing - Test with different output connection types
- Failure Scenario Testing - Verify behavior when protection fails
Related Documentation
- PlayReady Test Server Service - Main test server functionality
- Query String Syntax - Parameter syntax reference
- Testing Server Exceptions - Error condition testing
- PlayReady Test Servers - Complete server documentation
Support Resources
Business Queries
- Email: playready@microsoft.com
Operations Queries
- Website: http://wmlalicensing.com/
- Email: ipla@microsoft.com
Technical Support
- Support Portal: PlayReady Technical Support
Training Information
- Email: plyrdyev@microsoft.com
© Microsoft Corporation. All rights reserved. Trademarks | Privacy