Media Services v3 のよく寄せられる質問Media Services v3 frequently asked questions

この記事では、Azure Media Services v3 についてよく寄せられる質問に対する回答を提供します。This article gives answers to frequently asked questions about Azure Media Services v3.

全般General

Azure Media Services リソースに対してアクションを実行できる Azure のロールは何ですか。What Azure roles can perform actions on Azure Media Services resources?

Media Services アカウント用のロールベースのアクセス制御 (RBAC)」を参照してください。See Role-based access control (RBAC) for Media Services accounts.

Apple iOS デバイスにはどのようにしてストリーミングしますか?How do I stream to Apple iOS devices?

パスの終わり (URL の「 /manifest」の部分の後) に (format=m3u8-aapl) が指定されていることを確認します。これは、Apple iOS ネイティブ デバイスで使用するために HTTP ライブ ストリーミング (HLS) コンテンツを返すようにストリーミング元のサーバーに指示します。Make sure you have (format=m3u8-aapl) at the end of your path (after the /manifest portion of the URL) to tell the streaming origin server to return HTTP Live Streaming (HLS) content for consumption on Apple iOS native devices. 詳細については、「コンテンツの配信」を参照してください。For details, see Delivering content.

メディア占有ユニットの構成方法を教えてください。How do I configure Media Reserved Units?

Media Services v3 または Video Indexer によってトリガーされる音声分析と動画分析ジョブでは、お使いのアカウントを 10 個の S3 メディア占有ユニット (MRU) でプロビジョニングすることをお勧めします。For the Audio Analysis and Video Analysis jobs that are triggered by Media Services v3 or Video Indexer, we recommend that you provision your account with 10 S3 Media Reserved Units (MRUs). 10 個を超える S3 MRU が必要な場合は、Azure portal を使用してサポート チケットを開いてください。If you need more than 10 S3 MRUs, open a support ticket by using the Azure portal.

詳細については、「メディア処理のスケーリング」を参照してください。For details, see Scale media processing.

Transform を使用して、ビデオのエンコードや分析を行うための一般的なタスクを構成できます。Use Transforms to configure common tasks for encoding or analyzing videos. 各 Transform は、ビデオまたはオーディオ ファイルを処理するためのレシピ、すなわちタスクのワークフローの記述です。Each Transform describes a recipe, or a workflow of tasks for processing your video or audio files. ジョブは、特定の入力ビデオまたはオーディオ コンテンツに Transform を適用する Media Services への実際の要求です。A Job is the actual request to Media Services to apply the Transform to an input video or audio content. Transform を作成後、Media Services API または公開されている任意の SDK を使用してジョブを送信できます。After the Transform has been created, you can submit Jobs by using Media Services APIs or any of the published SDKs. 詳しくは、「Transform と Job」をご覧ください。For more information, see Transforms and Jobs.

ビデオをアップロード、エンコード、および公開しました。I uploaded, encoded, and published a video. ストリーミングしようとしたときにビデオが再生されないのはなぜですか?Why won't the video play when I try to stream it?

最も一般的な原因の 1 つは、再生しようとしているストリーミング エンドポイントが実行中の状態になっていないことです。One of the most common reasons is that you don't have the streaming endpoint from which you're trying to play back in the Running state.

改ページはどのように機能しますか?How does pagination work?

改ページを使用している場合は、常に次のリンクを使用してコレクションを列挙し、特定のページ サイズに依存しないようにする必要があります。When you're using pagination, you should always use the next link to enumerate the collection and not depend on a particular page size. 詳細および例については、フィルター処理、順序付け、ページングに関するページを参照してください。For details and examples, see Filtering, ordering, paging.

Azure Media Services v3 では、どのような機能がまだ利用可能になっていますか。What features are not yet available in Azure Media Services v3?

詳細については、「v2 API に関する機能のギャップ」を参照してください。For details, see Feature gaps with respect to v2 APIs.

サブスクリプション間での Media Services アカウントの移動のプロセスはどのようなものですか?What is the process of moving a Media Services account between subscriptions?

詳細については、「サブスクリプション間での Media Services アカウントの移動」を参照してください。For details, see Moving a Media Services account between subscriptions.

ライブ ストリーミングLive streaming

ブロードキャストの完了後にライブ ストリームを停止するにはどうすればいいですか?How do I stop the live stream after the broadcast is done?

クライアント側またはサーバー側からアプローチできます。You can approach it from the client side or the server side.

クライアント側Client side

ユーザーがブラウザーを閉じている場合、Web アプリケーションでは、ユーザーにブロードキャストを終了するかどうか確認するメッセージを表示されます。Your web application should prompt the user if they want to end the broadcast as they're closing the browser. これは、Web アプリケーションで処理できるブラウザー イベントです。This is a browser event that your web application can handle.

サーバー側Server side

Azure Event Grid イベントをサブスクライブすることで、ライブ イベントを監視できます。You can monitor live events by subscribing to Azure Event Grid events. 詳細については、「EventGrid イベント スキーマ」を参照してください。For more information, see the EventGrid event schema.

次のいずれかを実行できます。You can either:

  • ストリーム レベルの Microsoft.Media.LiveEventEncoderDisconnectedサブスクライブして、しばらく再接続を受信していないことを監視し、ライブ イベントを停止して削除します。Subscribe to the stream-level Microsoft.Media.LiveEventEncoderDisconnected events and monitor that no reconnections come in for a while to stop and delete your live event.
  • トラック レベルのハートビート イベントをサブスクライブします。Subscribe to the track-level heartbeat events. すべてのトラックで受信ビットレートが 0 に低下した場合、または最後のタイム スタンプが増加しなくなった場合は、ライブ イベントを安全にシャットダウンできます。If all tracks have an incoming bitrate dropping to 0 or the last time stamp is no longer increasing, you can safely shut down the live event. ハートビート イベントは各トラックで 20 秒ごとに発生するため、若干冗長になる可能性があります。The heartbeat events come in at every 20 seconds for every track, so it might be a bit verbose.

ライブ ストリーミング中に中断 / 動画またはイメージ スレートを挿入するにはどうすればいいですか?How do I insert breaks/videos and image slates during a live stream?

Media Services v3 のライブ エンコードでは、ライブ ストリーミング中の動画またはイメージ スレートの挿入はまだサポートされていません。Media Services v3 live encoding does not yet support inserting video or image slates during live stream.

ライブ オンプレミス エンコーダーを使用すると、ソースの動画を切り替えることができます。You can use a live on-premises encoder to switch the source video. 多くのアプリには、Telestream Wirecast、Switcher Studio (iOS)、OBS Studio (無料アプリ) など、ソースを切り替える機能が用意されています。Many apps provide to ability to switch sources, including Telestream Wirecast, Switcher Studio (on iOS), and OBS Studio (free app).

コンテンツの保護Content protection

AES-128 クリア キー暗号化と DRM システムのどちらを使用すべきですか?Should I use AES-128 clear key encryption or a DRM system?

AES 暗号化と DRM システムのどちらを使えばよいか迷うことがあります。Customers often wonder whether they should use AES encryption or a DRM system. 2 つのシステムの主な違いは、AES 暗号化ではコンテンツ キーが TLS でクライアントに送信されるため、キーが送信中に暗号化されますが、それ以外の暗号化は行われないことです (「クリア」)。The main difference between the two systems is that with AES encryption, the content key is transmitted to the client over TLS so that the key is encrypted in transit but without any additional encryption ("in the clear"). このため、コンテンツの復号化に使用されるキーは、クライアント プレーヤーがアクセスでき、クライアントのネットワーク トレースでプレーン テキストとして表示できます。As a result, the key that's used to decrypt the content is accessible to the client player and can be viewed in a network trace on the client in plain text. AES-128 クリア キー暗号化は、閲覧者が信頼できる相手である場合 (従業員が見るために社内で配信される企業ビデオの暗号化など) に適しています。AES-128 clear key encryption is suitable for use cases where the viewer is a trusted party (for example, encrypting corporate videos distributed within a company to be viewed by employees).

PlayReady、Widevine、FairPlay などすべての DRM システムでは、AES-128 クリア キーと比較してコンテンツの復号化に使用されるキーの暗号化レベルが高くなります。DRM systems like PlayReady, Widevine, and FairPlay all provide an additional level of encryption on the key that's used to decrypt the content, compared to an AES-128 clear key. TLS によって提供されるトランスポート レベルの暗号化に加え、コンテンツ キーが暗号化され、DRM ランタイムによって保護されるキーになります。The content key is encrypted to a key protected by the DRM runtime in addition to any transport-level encryption provided by TLS. さらに、解読はオペレーティング システム レベルのセキュリティで保護された環境で行われるため、悪意のあるユーザーによる攻撃はより難しくなります。Additionally, decryption is handled in a secure environment at the operating system level, where it's more difficult for a malicious user to attack. 閲覧者を信頼できない可能性があり、最高レベルのセキュリティが必要なユース ケースでは、DRM をお勧めします。We recommend DRM for use cases where the viewer might not be a trusted party and you need the highest level of security.

Azure AD を使用せずに特定のアクセス許可を持つユーザーにのみビデオを表示するにはどうすればいいですか?How do I show a video to only users who have a specific permission, without using Azure AD?

Azure Active Directory (Azure AD) のような特定のトークン プロバイダーを使用する必要はありません。You don't have to use any specific token provider such as Azure Active Directory (Azure AD). 非対称キー暗号化を使用して、独自の JWT プロバイダー (いわゆる Secure Token Service (STS)) を作成できます。You can create your own JWT provider (so-called Secure Token Service, or STS) by using asymmetric key encryption. カスタム STS では、ビジネス ロジックに基づいて要求を追加できます。In your custom STS, you can add claims based on your business logic.

発行者、対象ユーザー、要求がすべて、JWT の内容と、ContentKeyPolicy で使用されている ContentKeyPolicyRestriction 値の間で完全に一致していることを確認します。Make sure that the issuer, audience, and claims all match up exactly between what's in JWT and the ContentKeyPolicyRestriction value used in ContentKeyPolicy.

詳細については、「Media Services 動的暗号化を使用してコンテンツを保護する」を参照してください。For more information, see Protect your content by using Media Services dynamic encryption.

JWT トークンを使用してライセンスまたはキーを要求する前に、JWT トークンを入手する方法と入手できる場所を教えてください。How and where did I get a JWT token before using it to request a license or key?

運用環境では、HTTPS 要求時に JWT トークンを発行する Secure Token Services (つまり、Web サービス) が必要です。For production, you need to have Secure Token Service (that is, a web service), which issues a JWT token upon an HTTPS request. テスト環境では、Program.cs で定義されている GetTokenAsync メソッドに示されているコードを使用できます。For test, you can use the code shown in the GetTokenAsync method defined in Program.cs.

プレーヤーは、ユーザーが認証された後、そのトークンの要求を STS に対して作成し、それをトークンの値として割り当てます。The player makes a request, after a user is authenticated, to STS for such a token and assigns it as the value of the token. Azure Media Player API を使用できます。You can use the Azure Media Player API.

対称キーと非対称キーのどちらかを使用して STS を実行する例については、「JWT ツール」を参照してください。For an example of running STS with either a symmetric key or an asymmetric key, see the JWT tool. このような JWT トークンを使用する Azure Media Player に基づくプレーヤーの例については、「Azure メディア テスト ツール」を参照してください。For an example of a player based on Azure Media Player using such a JWT token, see the Azure media test tool. (player_settings リンクを展開するとトークンの入力が表示されます。)(Expand the player_settings link to see the token input.)

AES 暗号化を使用してビデオをストリームする要求を承認する方法を教えてください。How do I authorize requests to stream videos with AES encryption?

正しいアプローチは、セキュリティ トークン サービスを使用することです。The correct approach is to use Secure Token Service. STS では、ユーザー プロファイルに応じて、異なる要求を追加します ("Premium ユーザー"、"Basic ユーザー"、"無料試用ユーザー" など)。In STS, depending on the user profile, add different claims (such as "Premium User," "Basic User," "Free Trial User"). JWT の要求に応じて、ユーザーには異なるコンテンツが表示されます。With different claims in a JWT, the user can see different contents. コンテンツまたはアセットが異なる場合、ContentKeyPolicyRestriction には対応する RequiredClaims 値が設定されます。For different contents or assets, ContentKeyPolicyRestriction will have the corresponding RequiredClaims value.

Azure Media Services API シリーズを使用して、ライセンス/キー配信の構成とご自分の資産の暗号化を行います (このサンプルを参照してください)。Use Azure Media Services APIs for configuring license/key delivery and encrypting your assets (as shown in this sample).

詳細については、次を参照してください。For more information, see:

HTTP と HTTPS のどちらを使用する必要がありますか?Should I use HTTP or HTTPS?

ASP.NET MVC プレーヤー アプリケーションは、以下をサポートする必要があります。The ASP.NET MVC player application must support the following:

  • Azure AD によるユーザー認証 (HTTPS の場合)。User authentication through Azure AD, which is under HTTPS.
  • クライアントと Azure AD 間での JWT の交換 (HTTPS の場合)。JWT exchange between the client and Azure AD, which is under HTTPS.
  • クライアントによる DRM ライセンスの取得。ライセンス配信が Media Services によって提供される場合は、HTTPS で必要です。DRM license acquisition by the client, which must be under HTTPS if license delivery is provided by Media Services. PlayReady 製品スイートでは、ライセンス配信に HTTPS を必要としません。The PlayReady product suite doesn't mandate HTTPS for license delivery. PlayReady ライセンス サーバーが Media Services の外部にある場合は、HTTP または HTTPS を使うことができます。If your PlayReady license server is outside Media Services, you can use either HTTP or HTTPS.

ASP.NET のプレーヤー アプリケーションはベスト プラクティスとして HTTPS を使うので、Media Player はページの HTTPS の下にあります。The ASP.NET player application uses HTTPS as a best practice, so Media Player is on a page under HTTPS. ただし、ストリーミングでは HTTP が優先されるので、混合コンテンツの問題を考慮する必要があります。However, HTTP is preferred for streaming, so you need to consider these issues with mixed content:

  • ブラウザーでは混合コンテンツは許可されません。The browser doesn't allow mixed content. ただし、Silverlight や、Smooth および DASH 用の OSMF プラグインでは許可されます。But plug-ins like Silverlight and the OSMF plug-in for Smooth and DASH do allow it. 顧客データが危険にさらされかねない悪意のある JavaScript を挿入できる機能の脅威があるため、混合コンテンツにはセキュリティ上の問題があります。Mixed content is a security concern because of the threat of the ability to inject malicious JavaScript, which can put customer data at risk. ブラウザーは、既定でこの機能をブロックします。Browsers block this capability by default. これを回避する唯一の方法は、サーバー (配信元) 側で (HTTPS か HTTP かに関係なく) すべてのドメインを許可することです。The only way to work around it is on the server (origin) side by allowing all domains (regardless of HTTPS or HTTP). これはおそらくよい方法ではありません。This is probably not a good idea either.
  • 混合コンテンツは避ける必要があります。Avoid mixed content. プレーヤー アプリケーションと Media Player の両方で、HTTP または HTTPS を使う必要があります。Both the player application and Media Player should use HTTP or HTTPS. 混合コンテンツを再生する際、SilverlightSS テクノロジは混合コンテンツの警告をクリアする必要があります。When you're playing mixed content, the SilverlightSS tech requires clearing a mixed-content warning. FlashSS テクノロジは、混合コンテンツ警告なしで混合コンテンツを処理します。The FlashSS tech handles mixed content without a mixed-content warning.
  • 2014 年 8 月より前に作成されたストリーミング エンドポイントは、HTTPS をサポートしません。If your streaming endpoint was created before August 2014, it won't support HTTPS. その場合は、HTTPS 用に新しいストリーミング エンドポイントを作成して使います。In this case, create and use a new streaming endpoint for HTTPS.

ライブ ストリーミングの場合What about live streaming?

プログラムに関連付けられた資産を VOD 資産として扱うことにより、Media Services のライブ ストリーミングを保護するために、まったく同じ設計と実装を使用できます。You can use exactly the same design and implementation to help protect live streaming in Media Services by treating the asset associated with a program as a VOD asset. ライブ コンテンツのマルチ DRM 保護を提供するには、資産をライブ出力に関連付ける前に、あたかもそれが VOD 資産であるかのように、その資産に対して同じセットアップ/処理を適用します。To provide a multi-DRM protection of the live content, apply the same setup/processing to the asset as if it were a VOD asset before you associate the asset with the live output.

Media Services の外部にあるライセンス サーバーの場合What about license servers outside Media Services?

多くの場合、ユーザーは自前のデータ センター内にあるライセンス サーバー ファーム、または DRM サービス プロバイダーによってホストされているライセンス サーバー ファームを運用してきました。Often, customers have invested in a license server farm either in their own datacenter or in one hosted by DRM service providers. Media Services コンテンツ保護の場合、ハイブリッド モードで運用できます。With Media Services content protection, you can operate in hybrid mode. コンテンツは Media Services でホストして動的に保護することができ、DRM ライセンスは Media Services の外部のサーバーによって配信されます。Content can be hosted and dynamically protected in Media Services, while DRM licenses are delivered by servers outside Media Services. この例では、次のように変更することを考えます。In this case, consider the following changes:

  • STS は、ライセンス サーバー ファームによって許容可能で検証できるトークンを発行する必要があります。STS needs to issue tokens that are acceptable and can be verified by the license server farm. たとえば、Axinom によって提供される Widevine ライセンス サーバーには、権利メッセージを含む特定の JWT が必要です。For example, the Widevine license servers provided by Axinom require a specific JWT that contains an entitlement message. STS でそのような JWT を発行しなくてはなりません。You need to have an STS to issue such a JWT.
  • Media Services でライセンス配信サービスを構成する必要はもうありません。You no longer need to configure license delivery service in Media Services. 必要なのは、ContentKeyPolicy を構成するときに、ライセンス取得 URL を (PlayReady、Widevine、FairPlay に) 提供することです。You need to provide the license acquisition URLs (for PlayReady, Widevine, and FairPlay) when you configure ContentKeyPolicy.

注意

Widevine は Google によって提供されるサービスであり、Google の利用規約とプライバシー ポリシーが適用されます。Widevine is a service provided by Google and subject to the terms of service and privacy policy of Google.

Media Services v2 対 v3Media Services v2 vs. v3

Azure portal を使用して v3 リソースを管理することはできますか?Can I use the Azure portal to manage v3 resources?

現時点では、Azure portal を使って次のことを実行できます。Currently, you can use the Azure portal to:

他のすべての管理タスク (変換とジョブコンテンツ保護など) については、REST APIAzure CLI、またはサポートされているいずれかの SDK を使用します。For all other management tasks (for example, Transforms and Jobs and content protection), use the REST API, the Azure CLI, or one of the supported SDKs.

v3 には AssetFile の概念はありますか?Is there an AssetFile concept in v3?

Storage SDK の依存関係から Media Services を切り離すために、AssetFile は Media Services API から削除されました。The AssetFile concept was removed from the Media Services API to separate Media Services from Storage SDK dependency. 現在、Media Services ではなく、Azure Storage で Storage SDK に属する情報が保持されます。Now Azure Storage, not Media Services, keeps the information that belongs in the Storage SDK.

詳細については、「Media Services v3 に移行する」を参照してください。For more information, see Migrate to Media Services v3.

クライアント側でのストレージ暗号化は利用できなくなったのですか?Where did client-side storage encryption go?

現在、サーバー側のストレージ暗号化 (既定でオン) の使用が推奨されるようになりました。We now recommend that you use server-side storage encryption (which is on by default). 詳細については、「保存データ向け Azure Storage Service Encryption」をご覧ください。For more information, see Azure Storage Service Encryption for data at rest.

オフライン ストリーミングOffline streaming

iOS 用の FairPlay ストリーミングFairPlay Streaming for iOS

iOS 用のオフライン FairPlay ストリーミングに関するトラブルシューティングには、次のよく寄せられる質問が役に立ちます。The following frequently asked questions provide assistance with troubleshooting offline FairPlay streaming for iOS.

オフライン モードの間は、オーディオのみが再生されて、ビデオは再生されないのはなぜですか。Why does only audio play but not video during offline mode?

この動作は、サンプル アプリの本来の設計のようです。This behavior seems to be by design of the sample app. 代替オーディオ トラックがある場合 (HLS の場合)、オフライン モードでは、iOS 10 と iOS 11 の両方が、既定で代替オーディオ トラックになります。FPS オフライン モードでこの動作を補正するには、ストリームから代替オーディオ トラックを削除します。When an alternate audio track is present (which is the case for HLS) during offline mode, both iOS 10 and iOS 11 default to the alternate audio track. To compensate this behavior for FPS offline mode, remove the alternate audio track from the stream. Media Services でこれを行うには、動的マニフェスト フィルター audio-only=false を追加します。To do this on Media Services, add the dynamic manifest filter audio-only=false. つまり、HLS URL の最後が .ism/manifest(format=m3u8-aapl,audio-only=false) になります。In other words, an HLS URL ends with .ism/manifest(format=m3u8-aapl,audio-only=false).

audio-only=false を追加した後もまだ、オフライン モードの間は、オーディオのみが再生されて、ビデオが再生されないのはなぜですか。Why does it still play audio only without video during offline mode after I add audio-only=false?

コンテンツ配信ネットワークのキャッシュ キーの設計によっては、コンテンツがキャッシュされることがあります。Depending on the cache key design for the content delivery network, the content might be cached. キャッシュを消去します。Purge the cache.

FPS オフライン モードは、iOS 10 だけでなく iOS 11 でもサポートされますか?Is FPS offline mode supported on iOS 11 in addition to iOS 10?

はい。Yes. FPS オフライン モードは iOS 10 と iOS 11 でサポートされています。FPS offline mode is supported for iOS 10 and iOS 11.

ドキュメント『FairPlay ストリーミングと HTTP ライブ ストリーミングでのオフライン再生』が FPS Server SDK に見つからないのはなぜですか。Why can't I find the document "Offline Playback with FairPlay Streaming and HTTP Live Streaming" in the FPS Server SDK?

FPS Server SDK バージョン 4 以降、このドキュメントは『FairPlay Streaming Programming Guide』(FairPlay Streaming プログラミング ガイド) にまとめられています。Since FPS Server SDK version 4, this document was merged into the "FairPlay Streaming Programming Guide."

iOS デバイスでのダウンロード済み/オフライン ファイルの構造はどのようなものですか。What is the downloaded/offline file structure on iOS devices?

iOS デバイスにダウンロードされたファイルは、次のスクリーンショットのような構造になっています。The downloaded file structure on an iOS device looks like the following screenshot. _keys フォルダーには、ダウンロードされた FPS ライセンスが格納されます (ライセンス サービス ホストごとに 1 つのストア ファイル)。The _keys folder stores downloaded FPS licenses, with one store file for each license service host. .movpkg フォルダーには、オーディオとビデオのコンテンツが格納されます。The .movpkg folder stores audio and video content.

名前の末尾にダッシュと数字が付いている最初のフォルダーには、ビデオ コンテンツが含まれています。The first folder with a name that ends with a dash followed by a number contains video content. 数値はビデオ再生の最大帯域幅です。The numeric value is the peak bandwidth of the video renditions. 名前の末尾にダッシュと 0 が付いている 2 つ目のフォルダーには、オーディオ コンテンツが格納されます。The second folder with a name that ends with a dash followed by 0 contains audio content. Data という名前の 3 番目のフォルダーには、FPS コンテンツのマスター再生リストが含まれます。The third folder named Data contains the master playlist of the FPS content. 最後に、boot.xml には、.movpkg フォルダーの内容が完全に説明されています。Finally, boot.xml provides a complete description of the .movpkg folder content.

FairPlay の iOS サンプル アプリのオフライン ファイルの構造

以下は boot.xml ファイルのサンプルです。Here's a sample boot.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<HLSMoviePackage xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://apple.com/IMG/Schemas/HLSMoviePackage" xsi:schemaLocation="http://apple.com/IMG/Schemas/HLSMoviePackage /System/Library/Schemas/HLSMoviePackage.xsd">
  <Version>1.0</Version>
  <HLSMoviePackageType>PersistedStore</HLSMoviePackageType>
  <Streams>
    <Stream ID="1-4DTFY3A3VDRCNZ53YZ3RJ2NPG2AJHNBD-0" Path="1-4DTFY3A3VDRCNZ53YZ3RJ2NPG2AJHNBD-0" NetworkURL="https://willzhanmswest.streaming.mediaservices.windows.net/e7c76dbb-8e38-44b3-be8c-5c78890c4bb4/MicrosoftElite01.ism/QualityLevels(127000)/Manifest(aac_eng_2_127,format=m3u8-aapl)">
      <Complete>YES</Complete>
    </Stream>
    <Stream ID="0-HC6H5GWC5IU62P4VHE7NWNGO2SZGPKUJ-310656" Path="0-HC6H5GWC5IU62P4VHE7NWNGO2SZGPKUJ-310656" NetworkURL="https://willzhanmswest.streaming.mediaservices.windows.net/e7c76dbb-8e38-44b3-be8c-5c78890c4bb4/MicrosoftElite01.ism/QualityLevels(161000)/Manifest(video,format=m3u8-aapl)">
      <Complete>YES</Complete>
    </Stream>
  </Streams>
  <MasterPlaylist>
    <NetworkURL>https://willzhanmswest.streaming.mediaservices.windows.net/e7c76dbb-8e38-44b3-be8c-5c78890c4bb4/MicrosoftElite01.ism/manifest(format=m3u8-aapl,audio-only=false)</NetworkURL>
  </MasterPlaylist>
  <DataItems Directory="Data">
    <DataItem>
      <ID>CB50F631-8227-477A-BCEC-365BBF12BCC0</ID>
      <Category>Playlist</Category>
      <Name>master.m3u8</Name>
      <DataPath>Playlist-master.m3u8-CB50F631-8227-477A-BCEC-365BBF12BCC0.data</DataPath>
      <Role>Master</Role>
    </DataItem>
  </DataItems>
</HLSMoviePackage>

Android 用の Widevine ストリーミングWidevine streaming for Android

一部のクライアント/ユーザーには永続ライセンス (オフライン有効) を提供し、他のクライアント/ユーザーには非永続ライセンス (オフライン無効) を提供するにはどうすればよいですか?How can I deliver persistent licenses (offline enabled) for some clients/users and non-persistent licenses (offline disabled) for others? コンテンツを複製し、別のコンテンツ キーを使う必要がありますか?Do I have to duplicate the content and use separate content keys?

Media Services v3 では、1 つのアセットに複数の StreamingLocator インスタンスを含められるため、以下を持つことができます。Because Media Services v3 allows an asset to have multiple StreamingLocator instances, you can have:

  • license_type = "persistent""persistent" の要求を伴う ContentKeyPolicyRestriction、その StreamingLocator を含む 1 つの ContentKeyPolicy インスタンス。One ContentKeyPolicy instance with license_type = "persistent", ContentKeyPolicyRestriction with claim on "persistent", and its StreamingLocator.
  • license_type="nonpersistent""nonpersistent" の要求を伴う ContentKeyPolicyRestriction、その StreamingLocator を含む別の ContentKeyPolicy インスタンス。Another ContentKeyPolicy instance with license_type="nonpersistent", ContentKeyPolicyRestriction with claim on "nonpersistent", and its StreamingLocator.
  • 2 つの StreamingLocator インスタンスには異なる ContentKey 値が含まれています。Two StreamingLocator instances that have different ContentKey values.

カスタム STS のビジネス ロジックに応じて、さまざまな要求が JWT トークンで発行されます。Depending on business logic of custom STS, different claims are issued in the JWT token. トークンを使用して、対応するライセンスのみ取得でき、対応する URL のみを再生できます。With the token, only the corresponding license can be obtained and only the corresponding URL can be played.

Widevine と Media Services DRM のセキュリティ レベルはどのように対応しますか。What is the mapping between the Widevine and Media Services DRM security levels?

Google の「Widevine DRM Architecture Overview」 (Widevine DRM アーキテクチャの概要) では、3 つのセキュリティ レベルが定義されています。Google's "Widevine DRM Architecture Overview" defines three security levels. ただし、「Widevine ライセンス テンプレートに関するAzure Media Services ドキュメント」では、5 つのセキュリティ レベル (再生に必要なクライアント信頼性要件) について概説しています。However, the Azure Media Services documentation on the Widevine license template outlines five security levels (client robustness requirements for playback). ここでは、セキュリティ レベルがどのように対応するかについて説明します。This section explains how the security levels map.

どちらのセキュリティ レベルも、Google Widevine によって定義されます。Both sets of security levels are defined by Google Widevine. 違いは、その使用レベル (アーキテクチャまたは API) にあります。The difference is in usage level: architecture or API. Widevine API では、5 つのセキュリティ レベルが使われています。The five security levels are used in the Widevine API. security_level を含む content_key_specs オブジェクトは、Azure Media Services Widevine ライセンス サービスにより逆シリアル化され、Widevine グローバル配信サービスに渡されます。The content_key_specs object, which contains security_level, is deserialized and passed to the Widevine global delivery service by the Azure Media Services Widevine license service. 次の表は、2 つのセキュリティ レベル セットの間のマッピングを示しています。The following table shows the mapping between the two sets of security levels.

Widevine アーキテクチャで定義されたセキュリティ レベルSecurity levels defined in Widevine architecture Widevine API で使用されるセキュリティ レベルSecurity levels used in Widevine API
セキュリティ レベル 1:すべてのコンテンツの処理、暗号化、および管理は、信頼できる実行環境 (TEE) 内で実行されます。Security Level 1: All content processing, cryptography, and control are performed within the Trusted Execution Environment (TEE). 一部の実装モデルでは、セキュリティ処理が異なるチップで実行される場合があります。In some implementation models, security processing might be performed in different chips. security_level=5:暗号化、デコード、およびメディア (圧縮済みおよび圧縮解除済み) のすべての処理を、ハードウェアを基盤にした TEE で実行する必要があります。security_level=5: The crypto, decoding, and all handling of the media (compressed and uncompressed) must be handled within a hardware-backed TEE.

security_level=4:コンテンツの暗号化とデコードを、ハードウェアを基盤にした TEE で実行する必要があります。security_level=4: The crypto and decoding of content must be performed within a hardware-backed TEE.
セキュリティ レベル 2:暗号化は TEE 内で実行されます (ビデオ処理は実行されません)。Security Level 2: Cryptography (but not video processing) is performed within the TEE. 解読されたバッファーはアプリケーション ドメインに返され、別のビデオ ハードウェアまたはソフトウェアによって処理されます。Decrypted buffers are returned to the application domain and processed through separate video hardware or software. ただし、レベル 2 では、暗号化に関する情報はやはり TEE 内でのみ処理されます。At Level 2, however, cryptographic information is still processed only within the TEE. security_level=3:キー マテリアルと暗号化の操作を、ハードウェアを基盤にした TEE で実行する必要があります。security_level=3: The key material and crypto operations must be performed within a hardware-backed TEE.
セキュリティ レベル 3:デバイスに TEE はありません。Security Level 3: There's no TEE on the device. ホスト オペレーティング システム上の暗号化情報と解読されたコンテンツを保護するため、適切な手段が実行される場合があります。Appropriate measures can be taken to protect the cryptographic information and decrypted content on host operating system. レベル 3 では、ハードウェア暗号化エンジンも実装に含まれる場合がありますが、セキュリティのためではなく、パフォーマンス向上のみを目的としています。A Level 3 implementation might also include a hardware cryptographic engine, but that enhances only performance, not security. security_level=2:ソフトウェア暗号化と難読化デコーダーが必須です。security_level=2: Software crypto and an obfuscated decoder are required.

security_level=1:ソフトウェアベースのホワイトボックス暗号化が必須です。security_level=1: Software-based white-box crypto is required.

コンテンツのダウンロードに時間がかかるのはなぜですか。Why does content download take so long?

ダウンロードの速度を上げるには 2 つの方法があります。There are two ways to improve download speed:

  • ユーザーがコンテンツ ダウンロードの起点/ストリーミング エンドポイントではなくコンテンツ配信ネットワークをヒットする可能性が高くなるように、コンテンツ配信ネットワークを有効にします。Enable a content delivery network so that users are more likely to hit that instead of the origin/streaming endpoint for content download. ユーザーがストリーミング エンドポイントにヒットした場合、各 HLS セグメントまたは DASH フラグメントは、動的にパッケージ化および暗号化されます。If a user hits a streaming endpoint, each HLS segment or DASH fragment is dynamically packaged and encrypted. この待機時間は各セグメント/フラグメントでミリ秒の単位ですが、ビデオの長さが 1 時間になると、待機時間が蓄積して長いダウンロードの原因になる可能性があります。Even though this latency is in millisecond scale for each segment or fragment, when you have an hour-long video, the accumulated latency can be large and cause a longer download.

  • ユーザーが、すべてのコンテンツではなく、ビデオ品質レイヤーとオーディオ トラックを選んでダウンロードできるようにします。Give users the option to selectively download video quality layers and audio tracks instead of all contents. オフライン モードでは、すべての品質レイヤーをダウンロードする必要はありません。For offline mode, there's no point in downloading all of the quality layers. これを実現する方法は 2 つあります。There are two ways to achieve this:

    • クライアントによる制御:ダウンロードするビデオ品質レイヤーとオーディオ トラックを、プレーヤー アプリが自動的に選ぶか、ユーザーが選びます。Client controlled: The player app automatically selects, or the user selects, the video quality layer and the audio tracks to download.
    • サービスによる制御:Azure Media Services の動的マニフェスト機能を使って (グローバル) フィルターを作成し、HLS 再生リストまたは DASH MPD を、単一のビデオ品質レイヤーと選ばれたオーディオ トラックに制限することができます。Service controlled: You can use the Dynamic Manifest feature in Azure Media Services to create a (global) filter, which limits HLS playlist or DASH MPD to a single video quality layer and selected audio tracks. その後、ユーザーに提示されるダウンロード URL には、このフィルターが含まれます。Then the download URL presented to users will include this filter.

次のステップNext steps

Media Services v3 の概要Media Services v3 overview