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