次の方法で共有


PlayReady 用に MP4 ベースのコンテンツをパッケージ化する方法

コンテンツの暗号化

パッケージャーはコンテンツを暗号化する必要があります。 CTR モードまたは CBC モードで使用される AES-128 キーを使用する暗号化形式は、コンプライアンス規則によって許可されます。

MP4 ベースの形式をお勧めします。 CMAF は、PlayReady クライアント、Windows 10、Xbox One に推奨される MP4 ベースの形式です。

Microsoft は、広範な業界の受け入れがある 2 つの一般的な暗号化スキーム ("cbcs" AES-CBC と "cenc" AES-CTR 保護スキーム) をサポートしています。 ISO/IEC FDIS 23001-7:2016「情報テクノロジ - MPEG システム テクノロジ – パート 7: ISO ベース メディア ファイル形式ファイルでの一般的な暗号化」を参照してください。

詳細については、「コンテンツの暗号化と配信」を参照してください。

コンテンツへの PlayReady ヘッダーの挿入

パッケージャーは、コンテンツに生成された PlayReady ヘッダーを挿入する必要があります。 通常、コンテンツ ファイルのヘッダーまたはストリーミング資産のマニフェストに挿入されます。

このヘッダーには、PlayReady クライアントがこの特定のコンテンツ部分のライセンスを要求するために必要な情報の既定値が含まれています。 たとえば、PlayReady クライアントは、キー値を要求できるように、資産で使用されているキー ID (KID) を認識する必要があります。 また、このライセンスを配信するライセンス サーバーのアドレスも把握している必要があります。 必要に応じて、ライセンス サーバーによってライセンス要求が拒否された場合に、ユーザーに表示する Web ページを把握する必要があります (ユーザーは支払いページに送られる可能性があります)。

PlayReady ヘッダーの例を次に示します。

<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.3.0.0">
  <DATA>
    <PROTECTINFO>
      <KIDS>
        <KID ALGID="AESCTR" VALUE="PV1LM/VEVk+kEOB8qqcWDg=="></KID>
      </KIDS>
    </PROTECTINFO>
    <LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
    <LUI_URL>http://www.contoso.com/pay/</LUI_URL>
  </DATA>
</WRMHEADER>

PlayReady クライアントは、保護されたコンテンツを再生する必要がある場合、まだコンテンツがない場合は、コンテンツのライセンスを要求します。 ライセンス要求を開始するために、アプリ開発者は、KID 配列、LA_URL、およびライセンス要求拒否の場合の動作に対してハードコードまたは動的な値を使用してアプリをプロビジョニングしている可能性があります。 アプリは KID または LA_URL の既定値をオーバーライドしました。 開発者が行っていない場合、クライアントはコンテンツ ヘッダー自体で見つかった既定値に基づいてライセンス要求を行う必要があります。

MP4 ISO ファイルの場合は、ISO 形式の仕様に従い、PlayReady ヘッダーを 'pssh' ボックスに挿入することをお勧めします。

PlayReady オブジェクトを含む MP4 ファイルの例

次の図は、PlayReady ヘッダーを含む PlayReady オブジェクトを含むセグメント化された MP4 ファイルを示しています。

MP4 の PlayReady ヘッダー

このファイルの HEX ビューを次に示します。

PlayReady オブジェクトの 16 進ダンプ

次の図は、PlayReady ヘッダーを含む PlayReady オブジェクトと、PlayReady Embedded ライセンス ストアを含む別の PlayReady オブジェクトを含むセグメント化された MP4 ファイルを示しています。

MP4 の PlayReady ヘッダーと ELS

アダプティブ ストリーミング資産の場合、Microsoft では、アセットのマニフェストに PlayReady ヘッダーを挿入することをお勧めします。

PlayReady ヘッダーを含む MPEG-DASH マニフェストの例

<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" mediaPresentationDuration="PT10M56.907S" minBufferTime="PT4S">
  <Period>
    <AdaptationSet id="1" group="1" profiles="ccff" bitstreamSwitching="true" segmentAlignment="true" contentType="video" mimeType="video/mp4" codecs="avc1.640028" maxWidth="1920" maxHeight="1080" startWithSAP="1">

        <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="10000000-1000-1000-1000-100000000001"/>
        <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="2.0" cenc:default_KID="10000000-1000-1000-1000-100000000001">
            <mspr:pro>PABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMwAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcAA6AC8ALwBlAHgAcABlAHIAaQBtAGUAbgB0AGEAbAAxAC4AYQB6AHUAcgBlAHcAZQBiAHMAaQB0AGUAcwAuAG4AZQB0AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPwBjAGYAZwA9ACgAYwBrADoAVwAzADEAYgBmAFYAdAA5AFcAMwAxAGIAZgBWAHQAOQBXADMAMQBiAGYAUQA9AD0ALABjAGsAdAA6AEEARQBTADEAMgA4AEIAaQB0AEMAQgBDACkAPAAvAEwAQQBfAFUAUgBMAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAEIAQwAiACAAVgBBAEwAVQBFAD0AIgBBAEEAQQBBAEUAQQBBAFEAQQBCAEEAUQBBAEIAQQBBAEEAQQBBAEEAQQBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</mspr:pro>
        </ContentProtection>

        <SegmentTemplate timescale="10000000" media="video/bbb_sunflower_1080p_60fps_normal_VIDEO$Number$.mp4"  initialization="video/bbb_sunflower_1080p_60fps_normal_VIDEO0.mp4">
          <SegmentTimeline>
            <S d="83166700" />
            <S d="79166700" />
            <S d="80333300" />
            <S d="73000000" />
          </SegmentTimeline>
        </SegmentTemplate>
      <Representation id="video" bandwidth="10646158" width="1920" height="1080"/>
    </AdaptationSet>
  </Period>
</MPD>

こちらも参照ください

サポートされている形式

PlayReady テスト コンテンツ