天天看點

阿裡雲 Aliplayer進階功能介紹(七):多分辨率基本介紹 Source模式 videoId模式 HLS的多碼率

基本介紹

網絡環境比較複雜、網速不穩定,Aliplayer提供了多分辨率播放的模式,使用者可以手工切換分辨率和播放器選擇最優分辨率,基本UI如下:

阿裡雲 Aliplayer進階功能介紹(七):多分辨率基本介紹 Source模式 videoId模式 HLS的多碼率

https://www.atatech.org/articles/129112#1 Source模式

source的方式指定多個清晰度的位址,這個模式在直播場景下使用的比較多,阿裡雲直播服務可以提供多碼率的播放流位址,詳細請參考:

視訊直播轉碼

。Aliplayer提供了下面清晰度的對應關系:

Code Text
OD 原畫
FD 流暢
LD 标清
SD 高清
HD 超清
2K
4K

source如何支援多清晰度,參考下面的代碼:

var player = new Aliplayer({
    id: "player-con", 
    isLive:true,
     source:'{"HD":"https://livecdn.com/appname/testhd.flv",
              "SD":"https://livecdn.com/appname/testsd.flv",
              "FD":"https://livecdn.com/appname/testfd.flv",
              "LD":"https://livecdn.com/appname/testld.flv"
             }',
    width: "100%",
    height: "500px",
    autoplay: true
  }, function (player) {
    console.log("播放器建立成功");
  });
           

https://www.atatech.org/articles/129112#2 videoId模式

播放點播服務的視訊時,采用videoId的模式, Aliplayer會擷取使用者在點播服務轉碼生成的多分辨率的視訊位址,生成多清晰度選擇清單,詳細參考

點播轉碼

阿裡雲 Aliplayer進階功能介紹(七):多分辨率基本介紹 Source模式 videoId模式 HLS的多碼率

如果使用者轉碼生成多種視訊格式檔案,Aliplayer将會按照mp4->m3u8->flv的順序優先選擇播放,如果有加密視訊和普通視訊一起,點播服務将隻會傳回加密視訊的播放位址。Aliplayer提供了其他一些屬性可以做精确的擷取點播視訊的播放位址:

屬性名稱 類型 說明
format String 指定播放位址格式可選值為mp4、m3u8、flv、mp3,預設為空
mediaType 指定傳回音頻還是視訊,可選值為video和audio,預設為video,audio主要是針對隻包含音頻的視訊格式
qualitySort 指定排序方式,desc表示按倒序排序(即:從大到小排序),asc表示按正序排序(即:從小到大排序)預設值:‘asc’
definition 顯示視訊清晰度,多個用逗号分隔,比如:’FD,LD’,此值是vid對應流清晰度的一個子集,取值範圍:FD(流暢)LD(标清)SD(高清)HD(超清)OD(原畫)2K(2K)4K(4K)
defaultDefinition 預設播放視訊清晰度,取值範圍:FD(流暢)LD(标清)SD(高清)HD(超清)OD(原畫)2K(2K)4K(4K),預設是上次播放時選擇的清晰度

播放器的使用代碼為:

var player = new Aliplayer({
    id: "player-con",
    width: "100%",
    height: "500px",
    autoplay: true,
    language: "en-us",
    vid : '1e067a2831b641db90d570b6480fbc40',
    playauth:'ddddfdfdf'
    format:'m3u8',
    mediaType:'video',
    qualitySort:'desc',
    definition:'FD,LD',
    defaultDefinition:'LD'
  }, function (player) {
    console.log("播放器建立成功");
  });
           

https://www.atatech.org/articles/129112#3 HLS的多碼率

HLS 

HTTP Live Streaming

是Apple提出的基于http的流媒體傳輸協定,支援不同帶寬的多碼率位址,基本格式如下:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-STREAM-INF:BANDWIDTH=454521,AVERAGE-BANDWIDTH=432061,CODECS="avc1.42c01e,mp4a.40.5",RESOLUTION=340x192,FRAME-RATE=25.000
GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_340.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=691401,AVERAGE-BANDWIDTH=644868,CODECS="avc1.42c01e,mp4a.40.5",RESOLUTION=384x216,FRAME-RATE=25.000
GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_384.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=926476,AVERAGE-BANDWIDTH=850169,CODECS="avc1.42c01f,mp4a.40.5",RESOLUTION=512x288,FRAME-RATE=25.000
#EXT-X-STREAM-INF:BANDWIDTH=7011961,AVERAGE-BANDWIDTH=6374698,CODECS="avc1.640028,mp4a.40.5",RESOLUTION=1920x1080,FRAME-RATE=25.000
GEPH-ONTHERECS02E012C-_E17101101_master_stream_x3f6b2fee5c3d4f388ed8edee586bd6f8_1920.m3u8
           

EXT-X-STREAM-INF:BANDWIDTH裡的指定帶寬,下面為此帶寬使用對應分辨率的視訊位址,Aliplayer解析上面的master m3u8内容,展示清晰度清單,并且會根據網絡情況選擇合适的清晰度播放:

阿裡雲 Aliplayer進階功能介紹(七):多分辨率基本介紹 Source模式 videoId模式 HLS的多碼率

阿裡雲的媒體處理服務支援多分變率的打包, 詳細參考:

如何進行HLS打包

繼續閱讀