【云端录制】常见集成问题集锦

在集成云录制的过程中,Agora 开发者社区的用户们提交了各种各样的 issues。此贴总结了目前开发者们集成云录制过程中遇到的各类常见问题,以便帮助大家更简单地去集成云录制服务。也欢迎各位开发者们在本帖中讨论和补充。

更多云端录制相关链接:
云录制 RESTful API 请求示例
云端录制官方文档


Error code 8

{"code":8, "reason":"response detail error 8"}

原因分析http header 不符合要求,头部字段错误,例如以下几种情况:

  • Content-type 错误,请确保 Content-typeapplication/json;charset=utf-8
  • 请求 URL 中缺少 cloud_recording 字段。
  • 使用了错误的 HTTP 方法。

Error code 2

{"code":2, "reason":"response detail error 2"}

原因分析 :参数不合法。请确保参数类型正确、⼤小写正确、必填的参数均已填写。例如以下情况:

  • uid 不是 string 类型
  • uid 是 string 类型,但是不能转成 uint32_t 类型的整数

Appid is invalid

{“message”:"appid is invalid"}

原因分析

  • appid 未开通云录制服务权限(请先在控制台自行开通云录制服务权限)
  • appid 与 CustomerId 不匹配

Query/Stop 返回 404

{"code":404, "serverResponse": {"fileList":"", "status":0}}

原因分析:后端已经退出了录制,此时再去调用 Query 或 Stop 会返回 httpcode 404。
如果没有调用 Stop,则需要根据其他信息判断为什么会结束录制,详情请见下一条 FAQ


Start 调⽤成功了,Query/Stop 却收到 404,录制文件没有上传至云存储。

有以下几种可能的原因:

  • 没有发流端加入频道,录制超时。
  • Token 过期或 Token 认证失败。
  • 在调用获取云端录制资源的 API 时,传入的 uid 参数与频道内现有的用户 ID 重复。举例来说,频道内有三个用户,UID 分别为 123234 ,和 345 ,如果你传入的 uid123 , 则会导致录制失败。
  • 在调用开始云端录制的 API 时,传入的 transcodingConfig 参数值不合理,导致录制失败。请参考如何设置录制视频的分辨率设置该参数。
  • 你的云存储配置出错。请确保你的云存储配置填写正确:
    • bucket:云存储空间名称, 由你自己在云账户下创建。
    • accessKey:在云存储个人账户下面密钥管理里。
    • secretKey :在云存储个人账户下面密钥管理里。

调用 Stop,返回 400 错误

stop 请求的 url 或 body 有误。例如请求的 body 里面没有 cname, uid 等信息


Invalid authentication credentials

{"message":"Invalid authentication credentials"}

原因分析

  • customer ID 和 customer certificate 不一致
  • appid 没有开通云录制服务权限
  • 认证信息输入有误(authentication 是 basic xxx 格式,不能漏掉 basic )
  • header 的格式不正确(例如: application/json;charset-utf-8 必须⼤小写一致,并且中间没有空格)

Start 报错 code:53

{"sid":"", "code":53}

原因分析:录制已经在进行中。当采用相同参数再次调用 acquire 获得新的 resource ID,并用于 start 请求时,会发生该错误。如需发起多路录制,需要在 acquire 方法中填入不同的 UID。


Query 在 Start 后的 15s 内无法获取到文件名和 Status

Start 成功后,第⼀片录制切片上传完成后才会有文件名信息,而第⼀片切片的时间是 15s。所以只有在 Start 成功 15s 后才能 Query 到信息。


返回 501/504 报错

录制服务正在退出。该错误可能在调用了 stop ⽅法后再调用 query 时发生。


Acquire 返回 400

  • 检查 acquire 请求的 url 和 body 是否合法,例如 clientRequest 有没有写成 requestId。
  • 检查 appid 是否有开通云录制服务权限

为什么无法通过浏览器调用云端录制 RESTful API

要使用云端录制 RESTful API,Web API 需要发送跨域请求。根据 CORS 规范,浏览器针对跨域请求会先发送一个 OPTIONS 请求,查询服务器是否允许跨域请求,然后才有可能发起真正的 POST 请求。但是由于云端录制 RESTful API 不支持 OPTIONS 方法,所以无法支持 Web API 调用的方式。