文档中心>云点播

自适应码流播放异常

最近更新时间:2023-02-03 15:26:31

我的收藏

现象描述

Web 超级播放器播放自适应码流不符合预期。例如播放源文件、加密文件或播放报错 Error Code:-14。

可能原因

处理步骤

转自适应码流模板被删除

1. 首先需要检查对应视频资源是否被删除,可以通过调用云点播 api(DescribeMediaInfos),查看数据应答中是否包含 adp.xxx.m3u8 格式的数据。
若是,将视频执行 自适应转码操作
若否,请执行 步骤2
2. 对比 Demo 查看是否正常播放,请参见 腾讯云视频点播示例



自适应码流模板和播放器签名不一致

此种常见于转码12模板的自适应码流,播放器签名代码中设置了 pcfg=default 导致此异常,默认 key 防盗链已开启。
有如下2种故障场景,对应的解决措施如下:
场景1
场景2
自适应码流模板若是预置的10模板,可在播放器签名中设置 pcfg=default。也可以不指定,则为默认读取的配置。通过 签名校验工具 进行确认:


自适应码流模板若是预置的12模板,则必须在播放器签名中设置 pcfg=basicDrmPreset。
说明:
签名时,pcfg 和 fileId 同层级。
<?php
require '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)

psign 参数值请参见 psign 生成