基本介紹
網絡環境比較複雜、網速不穩定,Aliplayer提供了多分辨率播放的模式,使用者可以手工切換分辨率和播放器選擇最優分辨率,基本UI如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLlFjNmhTY2EGZ0ETZ0UDN3UjY2ATMmBDZxIGZ1E2N1IjN5UzYjNmN28CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
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将會按照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内容,展示清晰度清單,并且會根據網絡情況選擇合适的清晰度播放:
阿裡雲的媒體處理服務支援多分變率的打包, 詳細參考:
如何進行HLS打包