现象描述
Web 超级播放器播放自适应码流不符合预期。例如播放源文件、加密文件或播放报错 Error Code:-14。
可能原因
处理步骤
转自适应码流模板被删除
1. 首先需要检查对应视频资源是否被删除,可以通过调用云点播 api(DescribeMediaInfos),查看数据应答中是否包含 adp.xxx.m3u8 格式的数据。
若是,将视频执行 自适应转码操作。
若否,请执行 步骤2。
2. 对比 Demo 查看是否正常播放,请参见 腾讯云视频点播示例。
自适应码流模板和播放器签名不一致
此种常见于转码12模板的自适应码流,播放器签名代码中设置了 pcfg=default 导致此异常,默认 key 防盗链已开启。
有如下2种故障场景,对应的解决措施如下:
自适应码流模板若是预置的12模板,则必须在播放器签名中设置 pcfg=basicDrmPreset。
说明:
签名时,pcfg 和 fileId 同层级。
<?phprequire 'vendor/autoload.php';use \\Firebase\\JWT\\JWT;$appId = xxxxxx; // 用户 appid$fileId = "xxxxxx"; // 目标 FileId$currentTime = time();$psignExpire = $currentTime + 3600; // 可任意设置过期时间,示例1h$urlTimeExpire = dechex($psignExpire); // 可任意设置过期时间,16进制字符串形式$key = "xxxxxxxx";$payload = array("appId" => $appId,"fileId" => $fileId,"currentTimeStamp" => $currentTime,pcfg=basicDrmPreset,);$jwt = JWT::encode($payload, $key, 'HS256');print_r($jwt);?>
播放器配置名称和自定义码流模板不一致以及 psign 参数缺失
此种常见于自定义的自适应码流,默认 key 防盗链已开启,处理步骤如下:
1. 在 播放器签名中 设置 pcfg = AdpatInstance(AdpatInstance 即为自定义播放器的配置名称)。
2. 在播放代码中设置 psign 参数。例如:
psign=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTI1OTYzNDIzNSwiZmlsZUlkIjoiNTI4NTg5MDgxNTM2OTQ4ODUzMiIsInBjZmciOiJpdmhlYXJ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTYxNTc4OTAxNiwiZXhwaXJlVGltZVN0YW1wIjoxNjE1ODAzNDE2LCJ1cmxBY2Nlc3NJbmZvIjp7InQiOiI2MDRmMzQxOCIsImV4cGVyIjoiMzEwIiwicmxpbWl0IjozLCJ1cyI6Iml2MTYxNTc4OTAxNiJ9fQ.OWJmRs4RVg5igMgRlvtuPIwSg5PbG687Y3y51bubvVs)