再生 URL は、イベント通知から取得するか、API または SDK を使用して取得できます。
イベント通知による取得
再生 URL は、StreamTranscodeComplete または TranscodeComplete のコールバックから取得できます。再生 URL をサーバーに保存し、そのサーバーにアクセスしてファイルを再生します。
この方法は、高同時実行再生のシナリオで推奨されます。数百万規模の同時再生をサポートするには、動画 URL を業務システムに保存してクライアントに送信し、新しい動画に対しては更新/プリフェッチ機能を使用します。詳細については、「更新/プリフェッチ」をご参照ください。
注意事項
コールバックから取得した再生 URL は
固定 URLです。URL 署名が有効になっている場合は、再生用に署名付き URL を生成する必要があります。そうしないと、動画の再生に失敗します。古いドメイン名が無効化または削除された場合は、再生 URL 内のドメイン名を新しいドメイン名に置き換える必要があります。そうしないと、動画の再生に失敗します。
動画の暗号化が設定されている場合、返された再生 URL を復号してからでないと動画を再生できません。
API/SDK を介したリアルタイムでの再生 URL の取得
オーディオまたはビデオファイルのアップロード時に VideoId を保存し、SDK を使用して GetPlayInfo 操作を呼び出して、リアルタイムで再生 URL を取得する必要があります。
注意事項
デフォルトでは、GetPlayInfo 操作は、各解像度とフォーマットで最新のトランスコード済みストリームのみを返し、毎回最新のトランスコード済みストリームが再生されるようにします。GetPlayInfo 操作を呼び出す際に、
ResultTypeをMultipleに設定すると、ファイルのすべてのトランスコード済みストリームの再生 URL を取得できます。Alibaba Cloud 専用の暗号化を指定した場合、ファイルは ApsaraVideo Player SDK を使用してのみ再生できます。動画のセキュリティを確保するため、デフォルトでは、GetPlayInfo 操作を呼び出しても、Alibaba Cloud 専用の暗号化を使用して暗号化されたストリームの再生 URL は返されません。
ResultTypeをMultipleに設定すると、すべてのトランスコード済みストリームの再生 URL を取得できます。HLS 暗号化を指定した場合、システムは HLS を使用して暗号化されたストリームの再生 URL を優先的に返します。
オーディオおよびビデオファイルに階層型ストレージを実装している場合、GetPlayInfo 操作を呼び出してオーディオまたはビデオファイルの再生 URL を取得するときは、次のようになります。
オーディオまたはビデオファイルのストレージクラスが標準ストレージの場合、デフォルトでファイルの再生 URL が返されます。メディアリソースのストレージクラスが標準ストレージでない場合、再生 URL は返されません。ソースファイルのストレージクラスが標準ストレージでない場合、トランスコードされたストリームの再生 URL のみが返され、オリジナル画質ストリームの再生 URL は返されません。
PlayConfigおよびStorageClassパラメーターを設定して、標準ストレージ以外の指定されたストレージクラスのオーディオおよびビデオストリームの再生 URL を取得できます。
全体的なフロー
次の例では、CDN 高速化ドメイン名が設定されたビデオを取得して再生するプロセスについて説明します。
クライアントはサーバーにリクエストを送信して、再生 URL を取得します。
サーバーは、サーバー SDK を使用して GetPlayInfo を呼び出し、再生権限を取得できます。
ApsaraVideo VOD は再生 URL をサーバーに返します。
サーバーは再生 URL をクライアントに返します。
クライアントプレーヤーは、返された再生 URL に基づいて再生リソースをリクエストします。
CDN ノードにリソースがない場合、またはリソースの有効期限が切れている場合は、OSS バケットからリソースを取得する必要があります。
OSS バケットはリソースを CDN ノードに返し、CDN ノードはリソースをキャッシュします。
CDN ノードはメディアリソースを返します。
次のステップ
クライアントに ApsaraVideo Player を統合して、URL を使用してビデオを再生できます。詳細については、「Player SDK の概要」をご参照ください。