다음을 통해 공유


PlayReady DRM

이 항목에서는 UWP(유니버설 Windows 플랫폼) 앱에 PlayReady로 보호된 미디어 콘텐츠를 추가하는 방법을 설명합니다.

개발자는 PlayReady DRM을 통해 콘텐츠 공급자가 정의한 액세스 규칙을 적용하면서 사용자에게 PlayReady 콘텐츠를 제공할 수 있는 UWP 앱을 만들 수 있습니다. 이 섹션에서는 Windows 10용 Microsoft PlayReady DRM의 변경 내용과 이전 Windows 8.1 버전에서 Windows 10 버전으로 변경된 내용을 지원하도록 PlayReady UWP 앱을 수정하는 방법을 설명합니다.

항목 설명
하드웨어 DRM 이 항목에서는 PlayReady 하드웨어 기반 DRM(디지털 권한 관리)을 UWP 앱에 추가하는 방법에 대한 개요를 제공합니다.
PlayReady를 사용한 적응 스트리밍 이 문서에서는 Microsoft PlayReady 콘텐츠 보호를 사용하여 멀티미디어 콘텐츠의 적응 스트리밍을 UWP(유니버설 Windows 플랫폼) 앱에 추가하는 방법을 설명합니다. 이 기능은 현재 HLS(Http Live Streaming) 및 DASH(Dynamic Streaming over HTTP) 콘텐츠 재생을 지원합니다.

PlayReady MDM의 새로운 기능

다음 목록에서는 Windows 10용 PlayReady DRM의 새로운 기능 및 변경 내용을 설명합니다.

  • HWDRM(하드웨어 디지털 권한 관리)이 추가되었습니다.

    하드웨어 기반 콘텐츠 보호 지원을 사용하면 여러 디바이스 플랫폼에서 HD(고화질) 및 UHD(초고화질) 콘텐츠를 안전하게 재생할 수 있습니다. 키 자료(프라이빗 키, 콘텐츠 키 및 해당 키를 파생하거나 잠금 해제하는 데 사용되는 기타 키 자료 포함) 및 암호 해독된 압축 및 압축되지 않은 비디오 샘플은 하드웨어 보안을 활용하여 보호됩니다. 하드웨어 DRM을 사용하는 경우 HWDRM 파이프라인이 항상 사용 중인 출력을 알고 있으므로 알 수 없는 인에이블러(알 수 없음으로 재생/다운레스로 알 수 없는 것으로 재생)는 의미가 없습니다. 자세한 정보는 하드웨어 DRM를 참조하세요.

  • PlayReady는 더 이상 appX 프레임워크 구성 요소가 아니라 기본 제공 운영 체제 구성 요소입니다. 네임스페이스가 Microsoft.Media.PlayReadyClient에서 Windows.Media.Protection.PlayReady로 변경되었습니다.

  • PlayReady 오류 코드를 정의하는 다음 헤더는 이제 Windows SDK(소프트웨어 개발 키트)의 일부입니다.(Windows.Media.Protection.PlayReadyErrors.h 및 Windows.Media.Protection.PlayReadyResults.h.)

  • 비영구 라이선스의 사전 취득을 제공합니다.

    이전 버전의 PlayReady DRM은 비영구 라이선스의 사전 취득을 지원하지 않았습니다. 이 기능이 이 버전에 추가되었습니다. 이렇게 하면 첫 번째 프레임까지의 시간이 줄어들 수 있습니다. 자세한 내용은 재생 전에 비영구 라이선스를 사전에 획득하는 방법을 참조하세요.

  • 하나의 메시지로 여러 라이선스 취득을 제공합니다.

    클라이언트 앱이 하나의 라이선스 취득 메시지에서 여러 비영구 라이선스를 획득할 수 있도록 허용합니다. 이렇게 하면 사용자가 콘텐츠 라이브러리를 검색하는 동안 여러 콘텐츠에 대한 라이선스를 획득하여 첫 번째 프레임까지의 시간을 줄일 수 있습니다. 이렇게 하면 사용자가 재생할 콘텐츠를 선택할 때 라이선스 취득이 지연되지 않습니다. 또한 여러 키 식별자(KID)를 포함하는 콘텐츠 헤더를 사용하도록 설정하여 오디오 및 비디오 스트림을 별도의 키로 암호화할 수 있습니다. 이렇게 하면 단일 라이선스 취득이 동일한 결과를 얻기 위해 사용자 지정 논리 및 여러 라이선스 취득 요청을 사용하는 대신 콘텐츠 파일 내의 모든 스트림에 대한 모든 라이선스를 획득할 수 있습니다.

  • 실시간 만료 지원 또는 제한된 기간 라이선스(LDL)가 추가되었습니다.

    라이선스에 대한 실시간 만료를 설정하고 재생 도중 만료된 라이선스에서 다른(유효한) 라이선스로 원활하게 전환할 수 있는 기능을 제공합니다. 한 메시지에서 여러 라이선스 획득과 결합하면 사용자가 콘텐츠 라이브러리를 검색하는 동안 앱에서 여러 LDL을 비동기적으로 획득하고 사용자가 재생할 콘텐츠를 선택한 후에만 더 긴 기간 라이선스를 획득할 수 있습니다. 그러면 라이선스를 이미 사용할 수 있기 때문에 재생이 더 빠르게 시작되며, 앱이 LDL이 만료될 때까지 더 긴 기간 라이선스를 획득하므로 중단 없이 콘텐츠 끝까지 원활하게 재생을 계속합니다.

  • 비영구 라이선스 체인이 추가되었습니다.

  • 비영구 라이선스에 시간 기반 제한(만료, 첫 번째 플레이 후 만료 및 실시간 만료 포함)에 대한 지원이 추가되었습니다.

  • HDCP 유형 1(Windows 10의 버전 2.2) 정책 지원이 추가되었습니다.

    자세한 내용은 고려해야 할 사항을 참조하십시오.

  • Miracast는 이제 출력으로 암시적입니다.

  • 보안 중지가 추가되었습니다.

    보안 정지는 PlayReady 디바이스가 미디어 스트리밍 서비스에 특정 콘텐츠에 대해 미디어 재생이 중지되었음을 자신 있게 주장할 수 있는 수단을 제공합니다. 이 기능을 사용하면 미디어 스트리밍 서비스에서 특정 계정에 대해 여러 디바이스에서 사용 제한을 정확하게 적용하고 보고할 수 있습니다.

  • 오디오 및 비디오 라이선스 분리가 추가되었습니다.

    별도의 트랙은 비디오가 오디오로 디코딩되는 것을 방지합니다. 보다 강력한 콘텐츠 보호를 사용하도록 설정합니다. 새로운 표준에서는 오디오 및 시각적 트랙에 대해 별도의 키가 요구됩니다.

  • MaxResDecode가 추가되었습니다.

    이 기능은 더 유능한 키를 소유하는 경우에도 콘텐츠 재생을 최대 해상도로 제한하기 위해 추가되었습니다(라이선스는 아님). 여러 스트림 크기가 단일 키로 인코딩되는 경우를 지원합니다.

PlayReady DRM에 다음과 같은 새 인터페이스, 클래스 및 열거형이 추가되었습니다.

PlayReady DRM의 새로운 기능을 사용하는 방법을 보여 주는 새 샘플이 만들어졌습니다. 샘플은 코드 샘플 브라우저에서 다운로드할 수 있습니다.

고려해야 할 사항

  • PlayReady DRM은 이제 HDCP 유형 1을 지원합니다(HDCP 버전 2.1 이상에서 지원됨). PlayReady는 디바이스가 적용할 라이선스에 HDCP 형식 제한 정책을 전달합니다. Windows 10에서 이 정책은 HDCP 2.2 이상이 사용되도록 적용합니다. 이 기능은 PlayReady Server v3.0 SDK 라이선스에서 사용하도록 설정할 수 있습니다(서버는 HDCP 형식 제한 GUID를 사용하여 라이선스에서 이 정책을 제어함). 자세한 내용은 PlayReady 준수 및 견고성 규칙을 참조하세요.
  • Windows Media 비디오(VC-1이라고도 함)는 하드웨어 DRM에서 지원되지 않습니다(하드웨어 DRM 재정의 참조).
  • PlayReady DRM은 이제 고효율 비디오 코딩(HEVC /H.265) 비디오 압축 표준을 지원합니다. HEVC를 지원하려면 앱에서 콘텐츠의 조각 헤더를 지우기 상태로 두는 것을 포함하는 CENC(Common Encryption Scheme) 버전 2 콘텐츠를 사용해야 합니다. 자세한 내용은 ISO/IEC 23001-7 정보 기술 -- MPEG 시스템 기술 -- 파트 7: ISO 기본 미디어 파일 형식 파일의 일반 암호화(사양 버전 ISO/IEC 23001-7:2015 이상 필요)를 참조하십시오. 또한 모든 HWDRM 콘텐츠에 CENC 버전 2를 사용하는 것이 좋습니다. 또한 일부 하드웨어 DRM은 HEVC를 지원하며 일부는 지원하지 않습니다(하드웨어 DRM 재정의 참조).
  • 특정 새로운 PlayReady 3.0 기능(하드웨어 기반 클라이언트용 SL3000, 하나의 라이선스 획득 메시지에서 여러 비영구 라이선스 획득, 비영구 라이선스에 대한 시간 기반 제한 포함)을 활용하려면 PlayReady 서버가 Microsoft PlayReady Server 소프트웨어 개발 키트 v3.0.2769 릴리스 버전 이상이어야 합니다.
  • 콘텐츠 라이선스에 지정된 출력 보호 정책에 따라 연결된 출력이 이러한 요구 사항을 지원하지 않는 경우 최종 사용자에게 미디어 재생이 실패할 수 있습니다. 다음 표에서는 결과로 발생하는 일반적인 오류 집합을 나열합니다. 자세한 내용은 PlayReady 준수 및 견고성 규칙을 참조하세요.
Error 설명
ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP 0xC0262513 라이선스의 출력 보호 정책을 사용하려면 모니터가 HDCP를 사용해야 하지만 HDCP를 사용할 수 없습니다.
MF_E_POLICY_UNSUPPORTED 0xC00D7159 라이선스의 출력 보호 정책에 따라 모니터는 HDCP 유형 1을 사용해야 하지만 HDCP 유형 1을 사용할 수 없습니다.
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET 0x8004CD22 이 오류 코드는 하드웨어 DRM에서 실행되는 경우에만 발생합니다. 라이선스의 출력 보호 정책을 사용하려면 모니터가 HDCP에 참여하거나 콘텐츠의 유효 해상도를 줄여야 하지만 HDCP를 사용할 수 없으며 하드웨어 DRM이 콘텐츠 해상도 감소를 지원하지 않으므로 콘텐츠의 유효 해상도를 줄일 수 없습니다. 소프트웨어 DRM에서 콘텐츠가 재생됩니다. 하드웨어 DRM 사용에 대한 고려 사항을 참조하세요.
ERROR_GRAPHICS_OPM_NOT_SUPPORTED 0xc0262500 그래픽 드라이버는 출력 보호를 지원하지 않습니다. 예를 들어 모니터가 VGA를 통해 연결되거나 디지털 출력에 적합한 그래픽 드라이버가 설치되어 있지 않습니다. 후자의 경우 설치되는 일반적인 드라이버는 Microsoft 기본 디스플레이 어댑터이며 적절한 그래픽 드라이버를 설치하면 문제가 해결됩니다.

출력 보호

다음 섹션에서는 PlayReady 라이선스의 출력 보호 정책과 함께 Windows 10용 PlayReady DRM을 사용하는 경우의 동작에 대해 설명합니다.

PlayReady DRM은 Microsoft PlayReady 확장 가능한 미디어 권한 사양에 포함된 출력 보호 수준을 지원합니다. 이 문서는 PlayReady 라이선스 제품과 함께 제공되는 설명서 팩에서 찾을 수 있습니다.

참고 항목

라이선스 서버에서 설정할 수 있는 출력 보호 수준에 허용되는 값은 PlayReady 준수 규칙의 적용을 받습니다.

PlayReady DRM을 사용하면 PlayReady 준수 규칙에 지정된 출력 커넥터에서만 출력 보호 정책을 사용하여 콘텐츠를 재생할 수 있습니다. PlayReady 규정 준수 규칙에 지정된 출력 커넥터 용어에 대한 자세한 내용은 PlayReady 규정 준수 및 견고성 규칙에 대한 정의된 용어를 참조하세요.

이 섹션에서는 일부 Windows 클라이언트에서도 사용할 수 있는 Windows 10용 PlayReady DRM 및 Windows 10용 PlayReady 하드웨어 DRM을 사용하는 출력 보호 시나리오에 중점을 둡니다. PlayReady HWDRM을 사용하면 Windows TEE 구현 내에서 모든 출력 보호가 적용됩니다(하드웨어 DRM 참조). 따라서 일부 동작은 PlayReady SWDRM(소프트웨어 DRM)을 사용하는 경우와 다릅니다.

  • 비압축 디지털 비디오 270에 대한 출력 보호 수준(OPL) 지원: Windows 10용 PlayReady HWDRM은 저해상도를 지원하지 않으며 HDCP(고대역폭 디지털 콘텐츠 보호)를 사용하도록 강제합니다. HWDRM의 고화질 콘텐츠에는 OPL이 270보다 큰 것이 좋습니다(필수는 아니지만). 또한 라이선스(HDCP 버전 2.2 이상)에서 HDCP 형식 제한을 설정해야 합니다.
  • SWDRM과 달리 HWDRM을 사용하면 가장 성능이 낮은 모니터를 기준으로 모든 모니터에 출력 보호가 적용됩니다. 예를 들어 사용자가 두 대의 모니터를 연결했는데 한 대는 HDCP를 지원하고 다른 한 대는 지원하지 않는 경우, 콘텐츠가 HDCP를 지원하는 모니터에서만 렌더링되더라도 라이선스에서 HDCP를 요구하는 경우 재생이 실패합니다. SWDRM에서 콘텐츠는 HDCP를 지원하는 모니터에서만 렌더링되는 한 재생됩니다.
  • 콘텐츠 키 및 라이선스에서 다음 조건을 충족하지 않는 한 HWDRM은 클라이언트에서 사용하고 보안을 보장하지 않습니다.
    • 비디오 콘텐츠 키에 사용되는 라이선스의 최소 보안 수준 속성은 3000이어야 합니다.
    • 오디오는 동영상과 다른 콘텐츠 키로 암호화해야 하며, 오디오에 사용되는 라이선스는 최소 보안 수준 2000이어야 합니다. 또는 오디오를 명확하게 남겨둘 수 있습니다.
  • 모든 SWDRM 시나리오에서는 오디오 및/또는 비디오 콘텐츠 키에 사용되는 PlayReady 라이선스의 최소 보안 수준이 2000보다 낮거나 같아야 합니다.

출력 보호 수준

다음 표에서는 PlayReady 라이선스의 다양한 OPL 간의 매핑과 Windows 10용 PlayReady DRM이 이를 적용하는 방법을 간략하게 설명합니다.

동영상

Opl 압축된 디지털 비디오 비압축 디지털 비디오 아날로그 TV
모두 HDMI, DVI, DisplayPort, MHL 구성 요소, 복합
100 N/A\* 콘텐츠를 전달합니다. 콘텐츠를 전달합니다.
150 N/A\* CGMS-A CopyNever가 연결되거나 CGMS-A를 사용할 수 없는 경우 콘텐츠를 전달합니다.
200 CGMS-A CopyNever가 연결될 때 콘텐츠를 전달합니다.
250 HDCP를 연결하려고 시도하지만 결과에 관계없이 콘텐츠를 전달합니다. N/A\*
270 SWDRM: HDCP를 연결하려고 시도합니다. HDCP가 연결되지 않으면 PC는 유효 해상도를 프레임당 520,000픽셀로 제한하고 콘텐츠를 전달합니다. HWDRM: HDCP를 사용하여 콘텐츠를 전달합니다. HDCP가 연결되지 않으면 HDMI/DVI 포트로의 재생이 차단됩니다.
300

**HDCP 유형 제한이 정의되지 않은 경우:** HDCP를 사용하여 콘텐츠를 전달합니다. HDCP가 연결되지 않으면 HDMI/DVI 포트로의 재생이 차단됩니다.

**HDCP 유형 제한이 정의된 경우**: HDCP 2.2를 사용하고 콘텐츠 스트림 형식을 1로 설정하여 콘텐츠를 전달합니다. HDCP가 연결되지 않거나 콘텐츠 스트림 형식을 1로 설정할 수 없는 경우 HDMI/DVI 포트로의 재생이 차단됩니다.

400 Windows 10은 후속 OPL 값에 관계없이 압축된 디지털 비디오 콘텐츠를 출력에 전달하지 않습니다. 압축된 디지털 비디오 콘텐츠에 대한 자세한 내용은 PlayReady 제품의 규정 준수 규칙을 참조하세요. N/A\*
500

* 출력 보호 수준에 대한 모든 값을 라이선스 서버에서 설정할 수 있는 것은 아닙니다. 자세한 내용은 PlayReady 준수 규칙을 참조하세요.

오디오

Opl 압축된 디지털 오디오 비압축 디지털 오디오 아날로그 또는 USB 오디오
HDMI, DisplayPort, MHL HDMI, DisplayPort, MHL 모두
100 콘텐츠를 전달합니다. 콘텐츠를 전달합니다. 콘텐츠를 전달합니다.
150 콘텐츠를 전달하지 않음
200
250 HDCP가 HDMI, DisplayPort 또는 MHL에서 사용되거나 SCMS가 연결되고 CopyNever로 설정된 경우 콘텐츠를 전달합니다.
300 HDCP가 HDMI, DisplayPort 또는 MHL에 참여할 때 콘텐츠를 전달합니다.

Miracast

PlayReady DRM을 사용하면 HDCP 2.0 이상이 참여하는 즉시 Miracast 출력을 통해 콘텐츠를 재생할 수 있습니다. 그러나 Windows 10에서는 Miracast가 디지털 출력으로 간주됩니다. Miracast 시나리오에 대한 자세한 내용은 PlayReady 준수 규칙을 참조하세요. 다음 표에서는 PlayReady 라이선스의 다양한 OPL 간의 매핑과 PlayReady DRM이 Miracast 출력에서 이를 적용하는 방법을 간략하게 설명합니다.

Opl 압축된 디지털 오디오 비압축 디지털 오디오 압축된 디지털 비디오 비압축 디지털 비디오
100 HDCP 2.0 이상이 참여할 때 콘텐츠를 전달합니다. 연결에 실패하면 콘텐츠를 전달하지 않습니다. HDCP 2.0 이상이 참여할 때 콘텐츠를 전달합니다. 연결에 실패하면 콘텐츠를 전달하지 않습니다. N/A\* HDCP 2.0 이상이 참여할 때 콘텐츠를 전달합니다. 연결에 실패하면 콘텐츠를 전달하지 않습니다.
150 콘텐츠를 전달하지 않음 N/A\*
200
250 HDCP 2.0 이상이 참여할 때 콘텐츠를 전달합니다. 연결에 실패하면 콘텐츠를 전달하지 않습니다.
270 N/A\*
300 HDCP 2.0 이상이 참여할 때 콘텐츠를 전달합니다. 연결에 실패하면 콘텐츠를 전달하지 않습니다. 콘텐츠를 전달하지 않음

**HDCP 유형 제한이 정의되지 않은 경우:** HDCP 2.0 이상이 사용되는 경우 콘텐츠를 전달합니다. 연결에 실패하면 콘텐츠를 전달하지 않습니다.

**HDCP 유형 제한이 정의된 경우:** HDCP 2.2를 사용하고 콘텐츠 스트림 형식을 1로 설정하여 콘텐츠를 전달합니다. HDCP가 참여하지 못하거나 콘텐츠 스트림 형식을 1로 설정할 수 없는 경우 콘텐츠를 전달하지 않습니다.

400 N/A\* Windows 10은 후속 OPL 값에 관계없이 압축된 디지털 비디오 콘텐츠를 출력에 전달하지 않습니다. 압축된 디지털 비디오 콘텐츠에 대한 자세한 내용은 PlayReady 제품의 규정 준수 규칙을 참조하세요. N/A\*
500

* 출력 보호 수준에 대한 모든 값을 라이선스 서버에서 설정할 수 있는 것은 아닙니다. 자세한 내용은 PlayReady 준수 규칙을 참조하세요.

추가 명시적 출력 제한

다음 표에서는 명시적 디지털 비디오 출력 보호 제한의 Windows 10 구현용 PlayReady DRM에 대해 설명합니다.

시나리오 GUID 조건... 결과
최대 유효 해상도 디코딩 크기 9645E831-E01D-4FFF-8342-0A720E3E028F 커넥트 출력은 디지털 비디오 출력, Miracast, HDMI, DVI 등입니다.

다음으로 제한될 때 콘텐츠를 전달합니다.

  • (a) 프레임의 너비는 최대 프레임 너비(픽셀)보다 작거나 같아야 하며 프레임의 높이가 최대 프레임 높이(픽셀)보다 작거나 같아야 합니다.
  • (b) 프레임의 높이는 픽셀 단위로 최대 프레임 너비보다 작거나 같아야 하며, 프레임의 너비는 픽셀 단위로 최대 프레임 높이보다 작거나 같아야 합니다.
HDCP 형식 제한 ABB2C6F1-E663-4625-A945-972D17B231E7 커넥트 출력은 디지털 비디오 출력, Miracast, HDMI, DVI 등입니다. HDCP 2.2 및 콘텐츠 스트림 유형이 1로 설정된 콘텐츠를 전달합니다. HDCP 2.2가 작동하지 않거나 콘텐츠 스트림 유형을 1로 설정할 수 없는 경우 콘텐츠를 전달하지 않습니다. 271보다 크거나 같은 값의 압축되지 않은 디지털 비디오 출력 보호 수준도 지정해야 합니다.

다음 표에서는 명시적 아날로그 비디오 출력 보호 제한을 구현하는 Windows 10용 PlayReady DRM에 대해 설명합니다.

시나리오 GUID 조건... 결과
아날로그 컴퓨터 모니터 D783A191-E083-4BAF-B2DA-E69F910B3772 커넥트 출력은 VGA, DVI–아날로그 등입니다. SWDRM: PC는 유효 해상도를 프레임당 520,000 epx로 제한하고 콘텐츠를 전달합니다. HWDRM: 콘텐츠를 전달하지 않습니다.
아날로그 구성 요소 811C5110-46C8-4C6E-8163-C0482A15D47E 커넥트 출력은 구성 요소입니다. SWDRM: PC는 유효 해상도를 프레임당 520,000 epx로 제한하고 콘텐츠를 전달합니다. HWDRM: 콘텐츠를 전달하지 않습니다.
아날로그 TV 출력 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 아날로그 TV OPL이 151보다 작음 CGMS-A를 사용해야 합니다.
225CD36F-F132-49EF-BA8C-C91EA28E4369 아날로그 TV OPL이 101 미만이며 라이선스에 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3이 포함되어 있지 않습니다. CGMS-A 계약을 시도해야 하지만 결과에 관계없이 콘텐츠가 재생될 수 있습니다.
자동 게인 컨트롤 및 색 줄무늬 C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA 해상도가 520,000px 미만인 콘텐츠를 아날로그 TV 출력에 전달 표 3.5.7.3에 따르면 해상도가 520,000px 미만인 경우 구성 요소 비디오 및 PAL 모드에 대해서만 AGC를 설정하고 해상도가 520,000px 미만인 경우 NTSC에 대한 AGC 및 색 줄무늬 정보를 설정합니다. 준수 규칙
디지털 전용 출력 760AE755-682A-41E0-B1B3-DCDF836A7306 커넥트 출력은 아날로그입니다. 콘텐츠를 전달하지 않음

참고 항목

재생에 "Mini DisplayPort to VGA"와 같은 어댑터 동글을 사용하는 경우 Windows 10은 출력을 디지털 비디오 출력으로 보고 아날로그 비디오 정책을 적용할 수 없습니다.

다음 표에서는 다른 상황에서 재생할 수 있도록 하는 Windows 10용 PlayReady DRM 구현에 대해 설명합니다.

시나리오 GUID 조건... 결과
알 수 없는 출력 786627D8-C2A6-44BE-8F88-08AE255B01A7 출력을 합리적으로 확인할 수 없거나 그래픽 드라이버로 OPM을 설정할 수 없는 경우 SWDRM: 콘텐츠를 전달합니다. HWDRM: 콘텐츠를 전달하지 않습니다.
수축을 사용하여 알 수 없는 출력 B621D91F-EDCC-4035-8D4B-DC71760D43E9 출력을 합리적으로 확인할 수 없거나 그래픽 드라이버로 OPM을 설정할 수 없는 경우 SWDRM: PC는 유효 해상도를 프레임당 520,000 epx로 제한하고 콘텐츠를 전달합니다. HWDRM: 콘텐츠를 전달하지 않습니다.

필수 조건

PlayReady로 보호되는 UWP 앱을 만들기 전에 시스템에 다음 소프트웨어를 설치해야 합니다.

  • Windows 10
  • UWP 앱용 PlayReady DRM에 대한 샘플을 컴파일하는 경우 Microsoft Visual Studio 2015 이상을 사용하여 샘플을 컴파일해야 합니다. Microsoft Visual Studio 2013을 사용하여 Windows 8.1 스토어 앱용 PlayReady DRM에서 샘플을 컴파일할 수 있습니다.

PlayReady UWP 앱 마이그레이션 가이드

이 섹션에는 기존 PlayReady Windows 8.x 스토어 앱을 Windows 10으로 마이그레이션하는 방법에 대한 정보가 포함되어 있습니다.

Windows 10의 PlayReady UWP 앱에 대한 네임스페이스가 Microsoft.Media.PlayReadyClient에서 Windows.Media.Protection.PlayReady로 변경되었습니다. 즉, 이전 네임스페이스를 검색하여 코드의 새 네임스페이스로 바꿔야 합니다. 여전히 winmd 파일을 참조합니다. Windows 10 운영 체제에서 windows.media.winmd의 일부입니다. TH의 Windows SDK의 일부로 windows.winmd에 있습니다. UWP의 경우 windows.foundation.univeralappcontract.winmd에서 참조됩니다.

PlayReady로 보호된 HD(고화질) 콘텐츠(1080p) 및 초고화질(UHD) 콘텐츠를 재생하려면 PlayReady 하드웨어 DRM을 구현해야 합니다. PlayReady 하드웨어 DRM을 구현하는 방법에 대한 자세한 내용은 하드웨어 DRM을 참조 하세요.

일부 콘텐츠는 하드웨어 DRM에서 지원되지 않습니다. 하드웨어 DRM을 사용하지 않도록 설정하고 소프트웨어 DRM을 사용하도록 설정하는 방법에 대한 자세한 내용은 하드웨어 DRM 재정의를 참조하세요.

미디어 보호 관리자와 관련하여 코드가 아직 설정되지 않은 경우 다음 설정이 있는지 확인합니다.

var mediaProtectionManager = new Windows.Media.Protection.MediaProtectionManager();

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemId"] = 
             '{F4637010-03C3-42CD-B932-B48ADF3A6A54}'
var cpsystems = new Windows.Foundation.Collections.PropertySet();
cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = 
                "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput";
mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionContainerGuid"] = 
                "{9A04F079-9840-4286-AB92-E65BE0885F95}";

재생하기 전에 비영구 라이선스를 사전에 획득

이 섹션에서는 재생이 시작되기 전에 비영구 라이선스를 사전에 획득하는 방법을 설명합니다.

이전 버전의 PlayReady DRM에서는 비영구 라이선스를 재생 중에만 사후적으로 획득할 수 있습니다. 이 버전에서는 재생이 시작되기 전에 비영구 라이선스를 사전에 획득할 수 있습니다.

  1. 비영구 라이선스를 저장할 수 있는 재생 세션을 사전에 만듭니다. 예시:

    var cpsystems = new Windows.Foundation.Collections.PropertySet();       
    cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput"; // PlayReady
    
    var pmpSystemInfo = new Windows.Foundation.Collections.PropertySet();
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemId"] = "{F4637010-03C3-42CD-B932-B48ADF3A6A54}";
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;
    var pmpServer = new Windows.Media.Protection.MediaProtectionPMPServer( pmpSystemInfo );
    
  2. 해당 재생 세션을 라이선스 취득 클래스에 연결합니다. 예시:

    var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet();
    licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer;
    var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
    
  3. 라이선스 서비스 요청을 생성합니다. 예시:

    var laSR = licenseSession.CreateLAServiceRequest();
    
  4. 3단계에서 만든 서비스 요청을 사용하여 라이선스 취득을 수행합니다. 라이선스는 재생 세션에 저장됩니다.

  5. 재생 세션을 미디어 원본에 연결하여 재생합니다. 예시:

    licenseSession.configureMediaProtectionManager( mediaProtectionManager );
    videoPlayer.msSetMediaProtectionManager( mediaProtectionManager );
    

보호 기능에 대한 쿼리

Windows 10 버전 1703부터 디코드 코덱, 해상도, 출력 보호(HDCP)와 같은 HW DRM 기능을 쿼리할 수 있습니다. 쿼리는 IsTypeSupported 메서드를 사용하여 수행되며, 이는 지원이 쿼리되는 기능을 나타내는 문자열과 쿼리가 적용되는 키 시스템을 지정하는 문자열을 사용합니다. 지원되는 문자열 값 목록은 IsTypeSupported에 대한 API 참조 페이지를 참조하세요. 다음 코드 예제는 이 메서드의 사용 방법을 보여 줍니다.

using namespace Windows::Media::Protection;

ProtectionCapabilities^ sr = ref new ProtectionCapabilities();

ProtectionCapabilityResult result = sr->IsTypeSupported(
L"video/mp4; codecs=\"avc1.640028\"; features=\"decode-bpp=10,decode-fps=29.97,decode-res-x=1920,decode-res-y=1080\"",
L"com.microsoft.playready");

switch (result)
{
    case ProtectionCapabilityResult::Probably:
    // Queue up UHD HW DRM video
    break;

    case ProtectionCapabilityResult::Maybe:
    // Check again after UI or poll for more info.
    break;

    case ProtectionCapabilityResult::NotSupported:
    // Do not queue up UHD HW DRM video.
    break;
}

보안 중지 추가

이 섹션에서는 UWP 앱에 보안 중지를 추가하는 방법을 설명합니다.

보안 정지는 PlayReady 디바이스가 미디어 스트리밍 서비스에 특정 콘텐츠에 대해 미디어 재생이 중지되었음을 자신 있게 주장할 수 있는 수단을 제공합니다. 이 기능을 사용하면 미디어 스트리밍 서비스에서 특정 계정에 대해 여러 디바이스에서 사용 제한을 정확하게 적용하고 보고할 수 있습니다.

보안 중지 챌린지를 보내는 두 가지 주요 시나리오가 있습니다.

  • 콘텐츠의 끝에 도달했거나 사용자가 중간 어딘가에 미디어 프레젠테이션을 중지한 경우 미디어 프레젠테이션이 중지되는 경우
  • 이전 세션이 예기치 않게 종료되는 경우(예: 시스템 또는 앱 크래시로 인해) 앱은 시작 또는 종료 시 미해결 보안 중지 세션을 쿼리하고 다른 미디어 재생과 별도로 챌린지를 보내야 합니다.

보안 중지의 샘플 구현에 대해서는 코드 샘플 브라우저에 있는 PlayReady 샘플에서 securestop.cs 파일을 참조하세요.

Xbox One에서 PlayReady DRM 사용

Xbox One의 UWP 앱에서 PlayReady DRM을 사용하려면 먼저 앱을 게시하는 데 사용할 파트너 센터 계정을 등록하여 PlayReady를 사용할 권한을 부여해야 합니다. 이 작업은 다음 두 가지 방법 중 한 가지로 수행할 수 있습니다.

  • Microsoft 요청 권한으로 연락처를 만듭니다.
  • 파트너 센터 계정과 회사 이름을 pronxbox@microsoft.com으로 보내 권한 부여를 신청합니다.

권한 부여를 받으면 앱 매니페스트에 추가 <DeviceCapability> 를 추가해야 합니다. 현재 앱 매니페스트 디자이너에서 사용할 수 있는 설정이 없으므로 수동으로 추가해야 합니다. 다음 단계에 따라 구성하세요.

  1. Visual Studio에서 프로젝트를 열고 솔루션 탐색기 열고 Package.appxmanifest를 마우스 오른쪽 단추로 클릭합니다.

  2. 다음으로 열기를 선택하고 XML(텍스트) 편집기를 선택한 다음 확인을 클릭합니다.

  3. 다음 <DeviceCapability><Capabilities>태그 사이에 추가합니다.

    <DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
    
  4. 파일을 저장합니다.

마지막으로 Xbox One에서 PlayReady를 사용할 때 마지막으로 고려해야 할 사항이 있습니다. 개발 키트에는 SL150 제한이 있습니다(즉, SL2000 또는 SL3000 콘텐츠를 재생할 수 없습니다). 소매 디바이스는 더 높은 보안 수준으로 콘텐츠를 재생할 수 있지만 개발 키트에서 앱을 테스트하려면 SL150 콘텐츠를 사용해야 합니다. 다음 방법 중 하나로 이 콘텐츠를 테스트할 수 있습니다.

  • SL150 라이선스가 필요한 큐레이팅된 테스트 콘텐츠를 사용합니다.
  • 특정 인증된 테스트 계정만 특정 콘텐츠에 대한 SL150 라이선스를 획득할 수 있도록 논리를 구현합니다.

회사 및 제품에 가장 적합한 방법을 사용합니다.

참고 항목