Key防盗链排查文档

2019-11-21 10:42:43 浏览数 (2)

这篇文档从腾讯云Web端超级播放器使用Key防盗链的角度来列举使用过程中可能会遇到的问题及容易踩的坑:

key防盗链相关链接传送门:

1、点击跳转带KEY防盗链的播放器页面生成工具;

2、点击跳转带KEY防盗链的视频播放地址的校验工具;

3、点击跳转带KEY防盗链的视频播放地址的生成工具;

4、点击跳转Key防盗链功能介绍;

5、点击跳转查看Web播放器播放Key防盗链视频初始化代码。

常见问题

1、原始视频配置试看时间参数后无法播放

案例:将上传后未转码的视频,配置试看时间参数后无法播放。

案例解析:试看对视频的格式有较严格的要求(仅支持 H.264,视频元信息在视频文件的头部等),不符合格式要求的原始视频使用试看功能将产生异常。建议使用云点播转码功能进行转码,对转码后视频设置试看(转码后的格式均符合试看格式要求)。

解决方案:对原始视频进行转码操作。

2、sign的计算方式不一致

案例:通过Web播放器播放Key防盗链视频,但是sing的计算方式是按照Key防盗链文档上计算的,导致视频无法播放。

案例解析:sign为防盗链签名,以32个字符长的十六进制数表示,用于校验防盗链 URL 的合法性。

通过播放器播放Key防盗链视频,sign的计算方式跟防盗链文档的不一致,需要按照播放器文档的操作方式来计算sign,否则后台会校验失败。sign计算方式如:

通过Web播放器播放Key防盗链视频的sign的计算方式:

代码语言:javascript复制
sign = md5(KEY   appId   fileId   t   exper   us)

Key防盗链文档的sign计算方式:

代码语言:javascript复制
sign = md5(KEY   Dir   t   exper   rlimit   us)

PS:其中exper为试看参数,如不需要试看功能,直接去掉该参数即可。

解决方案:根据对应的使用环境,选择对应的sign计算方式。

3、加了试看时间后无法播放

案例:以chrome为测试环境,如果Key防盗链试看时间为0可以正常播放,试看时间为具体的数值则无法播放,播放器界面返回code:4,network里面拉取视频的接口返回206状态码,则一般是试看时间导致的无法观看。

案例解析:后台拖拽库问题,需手动改配置。

解决方案:联系在线技术人员或提工单反馈该问题,需腾讯云点播后台人员发配置。

加了试看时间无法播放的页面表现加了试看时间无法播放的页面表现

4、开启试看后播放器仍会显示视频原始时长(在 Chrome 和 Firefox 播放 HLS 格式的试看视频会显示试看时长)。

案例:开启试看后播放器页面显示的不是试看时长,而是视频原始时长。

案例解析:一条完整视频和被截取的试看视频都是属于同一条视频,并且有同一个视频元数据(元数据包含视频时长、宽高等信息),加载试看视频时也会加载视频元数据,所以显示的是视频原始时长。

解决方案:客观逻辑,暂无处理方案。

5、设置的试看时间与实际截取的时间不一致

案例:视频设置的试看时间是30秒,但是页面播放时试看时间只有26秒。

案例解析:试看时间的截取是以关键帧为准的,一条视频大概是每隔几秒有一个关键帧,若设置的试看时间为30秒,而视频在30秒处没有关键帧,则会寻找离30秒处最近的关键帧来截取视频。

解决方案:客观逻辑,暂无处理方案。

6、Key防盗链设置的过期时间过短

案例:一条过期时间为5分钟的视频,刚开始可以播放,播放几分钟或暂停几分钟再播放就无法播放了。

案例解析:这种是设置的视频过期时间到了,视频失效,无法再播放。可点击此处查看视频过期时间。

 点击解析即可查看视频过期时间 点击解析即可查看视频过期时间

解决方案:设置视频的过期时长大于视频的播放时长。

7、设置Key的密钥不符合要求

案例:如未按要求设置8 - 20位由字母和数字组成的防盗链Key密钥,其他参数及操作都正确,也会导致视频无法播放。

配置规范的Key防盗链密钥配置规范的Key防盗链密钥
配置不规范的Key防盗链密钥配置不规范的Key防盗链密钥

案例解析:开启 Key 防盗链时设置的密钥,业务预设的逻辑要求防盗链的Key密钥由8 - 20位字母和数字组成,如不按规则设置,会导致签名计算错误,后台校验不通过,从而不返回视频,无法播放。

解决方案:直接在控制台中单击【生成KEY】来生成。

点击生成随机Key点击生成随机Key

8、防盗链中t参数的值要以十六进制小写形式表示

案例:t参数的值没有转换成十六进制小写形式表示(如下图),导致视频无法播放。

案例解析:业务预设的逻辑需要转成十六进制的小写形式,如不按规则进行转换,会导致签名计算错误,后台校验不通过,从而不返回视频,无法播放。

未转换成十六进制小写形式的t参数的值未转换成十六进制小写形式的t参数的值
已转换成十六进制小写形式的t参数的值已转换成十六进制小写形式的t参数的值

解决方案:自行通过js代码将t参数转换成十六进制或在线生成,点击此处直接在线生成。

转换代码如下:

代码语言:javascript复制
var t = 1999999999;//将t转换成了16进制
document.write(t.toString(16));
在线生成的t参数值已转换成十六进制的形式.png在线生成的t参数值已转换成十六进制的形式.png

0 人点赞