ApsaraVideo Media Processing(MPS)を使用すると、再生 URL またはメディア ID に基づいてビデオを再生できます。このトピックでは、ビデオを再生する方法について説明します。
再生方法
再生 URL に基づいてビデオを再生する
シナリオ:MPS によってトランスコードされたビデオには、特定の出力 URL があります。トランスコードされたビデオを再生するには、そのオブジェクトストレージサービス(OSS)URL またはコンテンツデリバリーネットワーク(CDN)URL を ApsaraVideo Player SDK に直接渡すことができます。
利点:サーバーが再生 URL を生成するため、クライアントは URL を直接使用してビデオを再生できます。
欠点:サーバーは OSS 認証または CDN 認証を実装し、ドメイン名を使用して再生 URL を連結する必要があります。さらに、クライアントでは自動および手動の解像度切り替えを実装できません。
メディア ID に基づいてビデオを再生する
利点:メディアワークフローでは、各入力メディアファイルはメディア ID によって一意に指定されます。複数の出力形式と解像度をメディア ID に関連付けることができます。このようにして、メディア ID に基づいてメディアファイルを再生する場合、さまざまな形式でメディアファイルを再生し、解像度を自動的に切り替えることができます。
再生方法:Resource Access Management(RAM)の Security Token Service(STS)を使用して、メディア ID に基づいてビデオを再生します。STS は、Alibaba Cloud アカウントの権限を使用しません。代わりに、STS を使用すると、RAM ユーザーまたは RAM ロールに特定の有効期間で制限付き権限を付与できます。これにより、権限の乱用やデータ漏洩を防ぎます。
説明セキュリティを確保するために、暗号化されたビデオをメディア ID に基づいて再生する必要があります。HTML5 プレーヤーは、暗号化されたビデオを再生できません。Web クライアントで暗号化されたビデオを再生するには、Flash プレーヤーを使用することをお勧めします。
メディアワークフローを使用して、ライブストリームからビデオオンデマンド(VOD)ファイルを作成できます。VOD ファイルを再生するには、QueryMediaListByURL オペレーションを呼び出し、リクエストパラメーターで URL を指定することで、VOD ファイルのメディア ID をクエリできます。詳細については、「概要」をご参照ください。
再生 URL に基づいてビデオを再生する
サーバーで OSS 認証または CDN 認証を実装し、ドメイン名を使用して再生 URL を連結します。次に、再生するビデオの OSS URL または CDN URL を ApsaraVideo Player SDK に直接渡します。認証の詳細については、このトピックの 再生認証 セクションをご参照ください。
メディア ID に基づいてビデオを再生する
メディア ID に基づいて暗号化されたビデオを再生するには、RAM の STS を使用する必要があります。STS の詳細については、このトピックの STS セクションをご参照ください。
ビデオを暗号化するには、次の手順を実行します。
MtsHlsUriToken パラメーターを生成するトークン発行サービスを構築します。
重要トークン発行サービスは、MtsHlsUriToken パラメーターを生成するために使用されます。
KMS の Decrypt オペレーションを呼び出して復号化サービスを構築し、DK をプレーヤーに返します。
重要KMS の Decrypt オペレーションを呼び出して KMS から Base64 エンコードされた DK を取得した後、Base64 アルゴリズムを使用して DK をデコードし、デコードされた DK をプレーヤーに返します。
MPS の QueryMediaList オペレーションを呼び出して M3U8 ファイルの OSS URL をクエリし、MtsHlsUriToken パラメーターを OSS URL に追加してから、OSS URL をプレーヤーに返します。
プレーヤーは MtsHlsUriToken パラメーターと DK を使用して、CDN からビデオのストリーミング URL をリクエストします。CDN は M3U8 ファイルを変更し、キー URI と EDK をプレーヤーに返します。次に、プレーヤーはビデオを復号化して再生します。
STS
STS を使用するには、RAM ユーザーを承認するときに、必要なポリシーを RAM ロールにアタッチする必要があります。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールを作成し、RAM ロールに MPS へのアクセスを承認する」をご参照ください。
RAM ユーザーを作成して承認した後、セキュリティトークンをリクエストします。詳細については、「セキュリティトークンをリクエストする」をご参照ください。他のプログラミング言語の STS SDK の例の詳細については、「STS SDKの概要」をご参照ください。
再生認証
次の表に、ApsaraVideo Player SDK のパラメーターを示します。
パラメーター | 説明 | タイプ | 必須 |
vid | メディア ID。 | String | はい |
source | 再生 URL。 | String | はい |
accId | セキュリティトークンをリクエストするために使用される AccessKey ID。 | String | はい |
accSecret | セキュリティトークンをリクエストするために使用される AccessKey シークレット。 | String | はい |
stsToken | セキュリティトークン。 | String | はい |
domainRegion | メディアワークフローが存在するリージョン。例:中国(上海)、中国(杭州)。 | String | はい |
authInfo | 認証情報。値は JSON 文字列です。JSON 文字列の内容の詳細については、以下の説明をご参照ください。 | String | はい |
authInfo パラメーターの値は、3 つの引数を含む JSON 文字列です。
ExpireTime:認証の有効期限。指定されたビデオの再生 URL を取得する際は、認証が有効であることを確認してください。そうでない場合、ビデオを再生できません。時刻は UTC で表示されます。UTC 以外の時刻は UTC に変換する必要があります。yyyy-MM-ddTHH:mm:ssZ 形式(例:2021-03-25T23:59:59Z)の ISO 8601 標準で時刻を指定します。
MediaId:MPS によって処理されるメディアファイルのメディア ID。
Signature:偽造リクエストをフィルタリングするために使用される認証署名。
署名を計算するには、次の手順を実行します。
キーと値のペアでパラメーターを設定します。
ExpireTime="2017-03-25T23:59:59Z" MediaId="5aa0276ff6204ace950f75acf9e6187b"
署名文字列を作成します。
キーと値のペアをアルファベット順に連結し、アンパサンド(&)を使用して署名文字列を作成します。値の形式は、UTF-8 URL エンコードの RFC2396 仕様に準拠している必要があります。詳細については、「URL エンコード」をご参照ください。
ExpireTime=2017-03-25T23%3A59%3A59Z&MediaId=5aa0276ff6204ace950f75acf9e6187b
署名を計算します。
前の署名文字列の HMAC_SHA1 値をバイナリで計算し、HMAC_SHA1 値を Base64 形式でエンコードします。
UNIX 系システムでは、OpenSSL の base64 コマンドを実行して、計算された HMAC_SHA1 値を Base64 形式にエンコードできます。認証キーが secret の場合、次のコマンドを実行して署名を計算できます。
$echo -n 'ExpireTime=2017-03-25T23%3A59%3A59Z&MediaId=5aa0276ff6204ace950f75acf9e6****' | openssl sha1 -binary -hmac 'secret' | base64 z7mmSRuTXo4mydiWhRtbu8JKDpM=
署名を生成します。
{ "ExpireTime":"2017-03-25T23:59:59Z", "MediaId":"5aa0276ff6204ace950f75acf9e6****", "Signature":"z7mmSRuTXo4mydiWhRtbu8JKDpM=" }
プレーヤー
MPS プレーヤーは ApsaraVideo Player と統合されています。詳細については、「ApsaraVideo Live Player SDK」をご参照ください。
ビジネス要件に基づいて ApsaraVideo Player Pro にアップグレードできます。