网络环境比较复杂、网速不稳定,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