全部產品
Search
文件中心

:如何擷取ApsaraVideo for Live的播放地址

更新時間:Oct 31, 2024

概述

本文主要介紹如何擷取ApsaraVideo for Live的播放地址及使用鑒權後的播放地址。

如何擷取播放地址?

如何擷取鑒權播放地址?

ApsaraVideo for Live控制台擷取的鑒權URL地址到期時間較短,如果您想擷取到期時間較長的鑒權URL地址,可以調用鑒權小工具或者鑒權演算法代碼實現。

  • 控制台

    鑒權小工具計算播流鑒權URL地址,請參見配置URL鑒權

  • 代碼擷取播流鑒權URL地址
    鑒權演算法參見鑒權URL組成,根據推流地址指定的APPName及StreamName得到未鑒權的播放地址,如rtmp://videolive.aliyuntest.club/AppName1/StreamName1;再根據鑒權演算法代碼實現,填入對應的播放地址計算鑒權URL。PHP demo代碼實現如下:
    //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";
    }
                        

如何通過代碼擷取播放地址?

未鑒權的播放地址可以通過推流地址拼接得到,推流指定AppName及StreamName,播流的APPName及StreamName就確定。例如,推流地址為rtmp://video-center.alivecdn.com/APPName1/StreamName1?vhost=videolive.aliyuntest.club,則播放地址為rtmp://videolive.aliyuntest.club/AppName1/StreamName1

鑒權URL地址擷取:鑒權演算法參見鑒權URL組成,根據推流地址指定的APPName及StreamName得到未鑒權的播放地址,如rtmp://live8.aliyuntest.club/AppName1/StreamName1;再根據鑒權演算法代碼實現,填入對應的播放地址計算鑒權URL,PHP demo代碼實現如下:

//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";
}
            

為何播放地址不能正常播放?

情境

直播推流後,得到播放地址不能正常播放視頻。

排查

  • 排查對應網域名稱是否進行直播配置。

    ApsaraVideo for Live控制台網域名稱管理頁面中能否看到對應的網域名稱。

  • 排查推流是否成功,請參見直播推流異常排查
  • 排查直播加速是否成功。

    直播網域名稱是否在網域名稱服務 (DNS)商那邊CNAME解析到直播網域名稱CNAME網域名稱上,詳情參見佈建網域名的CNAME解析。CNAME地址擷取通過網域名稱管理頁面,在所需的網域名稱右側對應的CNAME列中擷取。

    CNAME
  • 排查擷取的播放地址是否正確,請參見如何擷取播放地址?
  • 排查ApsaraVideo for Live網域名稱是否開啟鑒權。

    擷取的播放地址是否是鑒權URL地址,詳情參見產生推流地址和播放地址

  • 排查直播網域名稱是否開啟鑒權,並且擷取的播放地址是否到期,重建鑒權地址播放測試。
  • 排查對應的播放器是否支援該格式視頻的播放,使用者可以測試使用VLC播放視頻看看是否正常。