網絡環境比較複雜、網速不穩定,Aliplayer提供了多分辨率播放的模式,用戶能夠手工切換分辨率和播放器選擇最優分辨率,基本UI以下:html
source的方式指定多個清晰度的地址,這個模式在直播場景下使用的比較多,阿里雲直播服務能夠提供多碼率的播放流地址,詳細請參考:視頻直播轉碼。Aliplayer提供了下面清晰度的對應關係:微信
Code | Text |
---|---|
OD | 原畫 |
FD | 流暢 |
LD | 標清 |
SD | 高清 |
HD | 超清 |
2K | 2K |
4K | 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("播放器建立成功"); });
播放點播服務的視頻時,採用videoId的模式, Aliplayer會獲取用戶在點播服務轉碼生成的多分辨率的視頻地址,生成多清晰度選擇列表,詳細參考點播轉碼。app
若是用戶轉碼生成多種視頻格式文件,Aliplayer將會按照mp4->m3u8->flv的順序優先選擇播放,若是有加密視頻和普通視頻一塊兒,點播服務將只會返回加密視頻的播放地址。Aliplayer提供了其餘一些屬性能夠作精確的獲取點播視頻的播放地址:ide
屬性名稱 | 類型 | 說明 |
---|---|---|
format | String | 指定播放地址格式可選值爲mp四、m3u八、flv、mp3,默認爲空 |
mediaType | String | 指定返回音頻仍是視頻,可選值爲video和audio,默認爲video,audio主要是針對只包含音頻的視頻格式 |
qualitySort | String | 指定排序方式,desc表示按倒序排序(即:從大到小排序),asc表示按正序排序(即:從小到大排序)默認值:‘asc’ |
definition | String | 顯示視頻清晰度,多個用逗號分隔,好比:’FD,LD’,此值是vid對應流清晰度的一個子集,取值範圍:FD(流暢)LD(標清)SD(高清)HD(超清)OD(原畫)2K(2K)4K(4K) |
defaultDefinition | String | 默認播放視頻清晰度,取值範圍: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("播放器建立成功"); });
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內容,展現清晰度列表,而且會根據網絡狀況選擇合適的清晰度播放:spa
阿里雲的媒體處理服務支持多分變率的打包, 詳細參考:如何進行HLS打包3d
原文連接
更多技術乾貨 請關注阿里云云棲社區微信號 :yunqiinsightcode