概要
このトピックでは、ライブストリームのストリーミング URL を取得し、署名付きストリーミング URL を生成する方法について説明します。
ストリーミング URL の取得
- コンソールから取得:
- URL ジェネレーターページ
ApsaraVideo Live コンソールで、 に移動し、ストリーミング URL を生成します。詳細な手順については、「URL ジェネレーターの使用」をご参照ください。
- ストリーム管理ページ
ApsaraVideo Live コンソールで、 に移動します。目的のインジェスト URL を見つけ、URL の表示 をクリックして、さまざまなトランスコード形式とプロトコルのストリーミング URL を表示します。
- URL ジェネレーターページ
- 連結ルールの使用
連結ルールを使用して、手動でストリーミング URL を作成できます。詳細については、「インジェスト URLとストリーミング URLの生成」をご参照ください。
署名付きストリーミング URL の取得
ApsaraVideo Live の署名付き URL の有効期間は短いです。より長い有効期間を持つ署名付き URL を取得するには、ツールまたはアルゴリズムを使用できます。
- コンソールのツールの使用
ApsaraVideo Live コンソールのツールを使用して、署名付きストリーミング URL を生成できます。詳細については、「URL 署名の設定」をご参照ください。
- アルゴリズムの使用インジェスト URL の AppName パラメーターと StreamName パラメーターに基づいて、署名なしストリーミング URL を作成できます。例:
rtmp://videolive.aliyuntest.club/AppName1/StreamName1。次に、認証アルゴリズムを使用して署名付きストリーミング URL を計算できます。詳細については、「署名付き URLのコンポーネント」をご参照ください。以下に PHP のサンプルコードを示します。//http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash //sstring = "URI-Timestamp-rand-uid-PrivateKey" (URIは、/Filename のように、要求されたリソースを指す相対アドレスです。) //HashValue = md5sum(sstring) function PrivateKeyA(){ $time=strtotime("-800 seconds");// または "+1 hours" $key="aliyun2013"; $domain="rtmp://videolive.aliyuntest.club"; $filename="/AppName1/StreamName1"; //$sstring = "URI-Timestamp-rand-uid-PrivateKey" $sstring = $filename."-".$time."-0-0-".$key; $md5=md5($sstring); $auth_key="auth_key=".$time."-0-0-".$md5; $url=$domain.$filename."?".$auth_key; echo $url."\n"; }
コードを使用したストリーミング URL の取得
インジェスト URL の AppName パラメーターと StreamName パラメーターに基づいて、署名なしストリーミング URL を作成できます。たとえば、インジェスト URL が rtmp://video-center.alivecdn.com/APPName1/StreamName1?vhost=videolive.aliyuntest.club の場合、ストリーミング URL は rtmp://videolive.aliyuntest.club/AppName1/StreamName1 です。
連結ルールを使用して、署名付き URL を作成できます。詳細については、「署名付き URLのコンポーネント」をご参照ください。また、アルゴリズムを使用して署名付き URL を取得することもできます。次のサンプルコードは、認証アルゴリズムに基づき、rtmp://live8.aliyuntest.club/AppName1/StreamName1 のようなストリーミング URL の署名付き URL を計算する例です。
//http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash
//sstring = "URI-Timestamp-rand-uid-PrivateKey" (URIは、/Filename のように、要求されたリソースを指す相対アドレスです。)
//HashValue = md5sum(sstring)
function PrivateKeyA(){
$time=strtotime("-800 seconds");// または "+1 hours"
$key="aliyun2013";
$domain="rtmp://live8.aliyuntest.club";
$filename="/AppName1/StreamName1";
//$sstring = "URI-Timestamp-rand-uid-PrivateKey"
$sstring = $filename."-".$time."-0-0-".$key;
$md5=md5($sstring);
$auth_key="auth_key=".$time."-0-0-".$md5;
$url=$domain.$filename."?".$auth_key;
echo $url."\n";
}
ストリーミング URL を使用して正常に再生できない場合の対処方法
[シナリオ]
ストリームがインジェストされた後、ストリーミング URL を使用してストリームを再生できません。
[トラブルシューティング]
- ドメイン名がライブストリーミング用に設定されているかどうかを確認します。
ApsaraVideo Live コンソールにログインし、ドメイン ページでドメイン名が見つかるかどうかを確認します。
- ストリームインジェストが成功したかどうかを確認します。詳細については、「異常なストリームインジェストのトラブルシューティング」をご参照ください。
- ライブストリームアクセラレーションが正しく機能していることを確認します。
DNS プロバイダーに CNAME レコードが追加されていることを確認します。このレコードは、ストリーミングドメインを ApsaraVideo Live が提供する CNAME アドレスにポイントする必要があります。手順については、「ドメイン名の CNAME レコードの設定」をご参照ください。CNAME アドレスは、ドメイン ページで、対象ドメインの [CNAME] 列にあります。
- ストリーミング URL が有効であるかどうかを確認します。詳細については、「ストリーミング URLの取得」をご参照ください。
- ドメイン名で URL 署名が有効になっているかどうかを確認します。
ストリーミング URL が署名されているかどうかを判断する方法については、「インジェスト URLとストリーミング URLの生成」をご参照ください。
- ドメイン名で URL 署名が有効になっているか、またストリーミング URL の有効期限が切れていないかを確認します。新しい署名付き URL を生成し、再生に使用できるか確認できます。
- プレーヤーがビデオ形式をサポートしているかどうかを確認します。VLC media player を使用して、ビデオが再生できるかどうかを確認できます。