基本介绍

网络环境比较复杂、网速不稳定,Aliplayer提供了多分辨率播放的模式,用户可以手工切换分辨率和播放器选择最优分辨率,基本UI如下:

Source模式

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模式

播放点播服务的视频时,采用videoId的模式, Aliplayer会获取用户在点播服务转码生成的多分辨率的视频地址,生成多清晰度选择列表,详细参考点播转码

如果用户转码生成多种视频格式文件,Aliplayer将会按照mp4->m3u8->flv的顺序优先选择播放,如果有加密视频和普通视频一起,点播服务将只会返回加密视频的播放地址。Aliplayer提供了其他一些属性可以做精确的获取点播视频的播放地址:

属性名称 类型 说明
format String 指定播放地址格式可选值为mp4、m3u8、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的多码率

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打包

原文链接
更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

最新文章

  1. 多页的TIFF图片在aspx页面分页显示
  2. Python Day20
  3. 解除sql server数据库占用
  4. 用python实现计算1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))类似的公式计算
  5. sqlserver日志的备份与还原
  6. CBarChart柱形图类
  7. cocos2dx从入门到精通课程
  8. HTML中多媒体的应用_Flash/MP3/设置可以活动的文字
  9. centos 虚拟机安装过程
  10. FlightGear 视角控制
  11. Android开源项目(一)
  12. 6.javaweb之respose对象
  13. 虚拟主机、VPS以及云主机的区别和对比
  14. VSCode插件MSSQL教程(昨天提了一下)
  15. Web移动端页面 --响应式和动态REM
  16. 工作随笔—static关键字
  17. 错误:分析 EntityName 时出错 web配置
  18. 【转】frameset 框架集使用语法,常用语后台。
  19. golang学习笔记 ---命令行参数
  20. Lonely(非洲NANA作品)

热门文章

  1. scala中Tuple简单使用
  2. 校园商铺-2项目设计和框架搭建-5配置maven
  3. day30 python类的继承,抽象类等
  4. thinkphp 标签嵌套
  5. js日常总结
  6. 多进程并发socket通信
  7. 14.data.js
  8. HttpServletRequest的方法详细说明
  9. Linux时间和时区设定
  10. 用hexo在本地搭建自己的博客