烨烁 2017-09-08 5613浏览量
阿里云视频点播是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速、视频播放于一体的一站式音视频点播解决方案。但是对于使用者来说经常遇到的问题即是视频点播中的视频如何对外提供服务,并且当播放出现异常时如何进行排查呢?本文主要从该方面为大家介绍视频点播的播放方式和异常排查。
视频点播提供了三种方式进行播放分别适用于不同的场景。用户可以根据自己的使用场景选择合适的方法进行播流,下面依次介绍该三种播放方式:
视频点播的使用是存储在产品统一的 Bucket 中,因此与 OSS 中的视频都可以直接简单获取 URL 进行访问方式不同。产品统一的并不属于用户自己,因此用户是无法通过自己账号的 AccessKeyId 和 AccessKeySecret 获取播放的权限。
用户获取视频播放 URL 是需要通过视频点播提供的 GetPlayInfo 接口获取播放信息,具体接口信息请参考获取视频播放地址,该接口会根据用户在视频点播配置的转码规则分别提供所有的转码后的资源的 URL 以及对应的视频的基本信息。
注意:
播放鉴权是视频点播在阿里云 AK 安全认证基础上的二次鉴权机制。播放鉴权的机制是根据使用不同的终端设备播放器的 SDK 提供了不同的鉴权 Key,然后用户可以使用账号的 AccessKeyId 和 AccessKeySecret 结合对应客户端播放鉴权进行播放即可。我们分别提供了html5、flash、android和IOS不同平台的鉴权,查看方法如图1所示。
图 1. 点播播放鉴权示意图
对应的web端实例代码请参考如下demo:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
<link rel="stylesheet" href="http://g.alicdn.com/de/prismplayer/1.6.3/skins/default/index.css" />
<script type="text/javascript" src="http://g.alicdn.com/de/prismplayer/1.6.3/prism.js"></script>
</head>
<body>
<div class="prism-player" id="J_prismPlayer"></div>
<script>
var player = new prismplayer( {
id: "J_prismPlayer",
autoplay: true,
width: "1920px",
height: "1280px",
//播放方式二
prismType:2,
//固定参数
vid : '视频ID',
accId : '用户AK id,推荐子账号',
accSecret : '用户AK secret,推荐子账号',
apiKey : 'H5播放器对应的播放密钥',
flashApiKey : 'Flash播放器对应的播放密钥',
});
</script>
</body>
</html>
注意:
播放凭证方式播放是通过 vid 和临时播放凭证(playAuth)进行播放的,由于 playAuth 是服务器端根据AccessKeyId 和 AccessKeySecret 获取的,并且是有 100 秒的有效时间的,因此较为有效的保护资源的安全性的。具体的 web 端播放的 demo 如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
<title>用户测试用例</title>
<link rel="stylesheet" href="//g.alicdn.com/de/prismplayer/1.9.9/skins/default/index.css" />
<script type="text/javascript" src="//g.alicdn.com/de/prismplayer/1.9.9/prism-min.js"></script>
</head>
<body>
<div class="prism-player" id="J_prismPlayer" style="position: absolute"></div>
<script>
var player = new prismplayer({
id: 'J_prismPlayer',
width: '100%',
autoplay: false,
vid : '',
playauth : '',
});
</script>
</body>
</html>
注意:
使用上述播放方式播放点播中的资源时经常会出现无法正常播放的情况,建议我们可以考虑如下的步骤逐个排查其无法播放的详细原因并修改。
视频点播的域名管理截图如图 2 所示。视频点播是可以添加多个域名在视频点播服务中的,但是同一时间启用的仅能够有一个域名。在配置完域名后需要用户到 DNS 提供商出配置该域名解析到视频点播提供的 CNAME 地址上才可以正常访问的。
图 2. 点播域名管理示意图
注意:
图 3. DNS解析示意图
防盗链是通过 HTTP 请求头中的 Referer 字段来控制访问来源是否允许,具体的设置请参考图 4,可以分别选择 Referer 白名单或者 Referer 黑名单,两者仅能够同一时间生效一种。当设置了之后就会仅允许或者限制某些 Referer 头访问。
图 4. 点播防盗链示意图
图5的示例即是被Referer防盗链限制的结果。
图 5. 防盗链拦截示意图
4)playAuth 超时导致播放异常
当采用上述第三种播放方式播放时需主要获取 playAuth 的业务逻辑,由于playAuth 仅有 100 秒的有效时间,超过该有效时间后将导致新发起的播放请求无法播放(但是不影响正在播放的视频),因此业务端需要在少于 100 秒更新一次 playAuth 。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。