文档简介:
使用场景
快速生成回放文件
精彩瞬间
文件合成
架构原理

应用优势
应用资源
前提条件
操作步骤
创建依赖资源
创建全景录制应用



接口使用说明
使用前提
接口请求路径

开始录制接口
参数
|
类型
|
必填
|
说明
|
Action
|
string
|
是
|
请求操作类型,开始录制为 Start
|
Data
|
object
|
是
|
请求协议参数
|
RecordURL
|
string
|
是
|
需要录制的 WEB 页面访问 URL,需要 Chrome 浏览器能够访问。
|
ManualStart
|
bool
|
是
|
创建的录制任务是否需要等待页面主动调用 window.startRecord 方法触发开始录制,默认为 false,录制任务会自动开始录制,当值被设置为 true 时,录制函数加载页面后,不会自动开始录制,而是等待页面主动调用 window.startRecord 方法才会触发开始录制
|
Width
|
number
|
否
|
录制画面宽度,默认为1280,合法取值范围 [0, 2560]
|
Height
|
number
|
否
|
录制画面高度,默认为720,合法取值范围 [0, 2560]
|
CallbackURL
|
string
|
否
|
录制结果通知回调地址
|
MaxDurationLimit
|
int
|
否
|
录制最大时长限制, 单位s,合法取值范围 [0, 36000],默认21600s(6小时),超过6小时需要配置永久密钥
|
StorageType
|
string
|
否
|
录制过程中中间态 webm 文件的存储位置,可选参数为cos ,不填写默认为cfs。(如果环境变量配置了COS_BUCKET_RAW这个参数,会写在这个桶里面,不配置会写在目标存储桶的 raw 路径下)
|
Output
|
object
|
否
|
请求协议参数
|
Cos
|
object
|
否
|
请求协议参数
|
Domain
|
string
|
否
|
录制文件回放域名,不设置为默认源站域名
|
Bucket
|
string
|
否
|
录制文件存放空间,不设置默认为创建函数时设置的存储空间
|
Region
|
string
|
否
|
录制文件存放区域,默认为存储空间所在区域
|
TargetDir
|
string
|
否
|
录制文件存放路径,不设置默认为 Taskid
|
TargetName
|
string
|
否
|
录制文件名称,不设置为结束时间戳
|
Vod
|
object
|
否
|
VOD配置参数
|
MediaInfo
|
object
|
否
|
VOD配置媒体信息
|
MediaName
|
string
|
否
|
媒体名称
|
ExpireTime
|
Timestamp ISO8601
|
否
|
媒体文件过期时间,格式按照 ISO 8601 标准表示,详见 ISO 日期格式
|
StorageRegion
|
string
|
否
|
指定上传园区,仅适用于对上传地域有特殊需求的用户
|
ClassId
|
Integer
|
否
|
分类 ID,用于对媒体进行分类管理,可通过 创建分类 接口,创建分类,获得分类 ID
|
SourceContext
|
string
|
否
|
来源上下文,用于透传用户请求信息,VOD的上传完成回调 将返回该字段值,最长 250 个字符
|
ProcedureInfo
|
object
|
否
|
任务流信息
|
Procedure
|
string
|
否
|
媒体后续任务处理操作,即完成媒体上传后,可自动发起任务流操作。参数值为任务流模板名,云点播支持 创建模板 并为模板命名。
|
SessionContext
|
string
|
否
|
会话上下文,用于透传用户请求信息,当指定 Procedure 参数后,任务流状态变更回调 将返回该字段值,最长 1000 个字符。
|
SubAppId
|
string
|
否
|
点播 子应用 ID。如果要访问子应用中的资源,则将该字段填写为子应用 ID;否则无需填写该字段
|
Video
|
object
|
否
|
请求协议参数
|
Muxer
|
string
|
否
|
录制文件格式,可选 hls、mp4,不写默认为 mp4
|
EncryptKey
|
string
|
否
|
hls加密公钥,不设置默认不加密
|
AuthUrl
|
string
|
否
|
解密私钥地址,设置公钥的情况下必填参数
|
{"Action": "Start","Data": {"RecordURL": "https://web-record-12596******.cos.ap-chengdu.myqcloud.com/test/ponyo.mp4","Width": 1280,"Height": 720,"CallbackURL": "http://xxx/webrecord/callback","MaxDurationLimit": 21600,"Output":{"Cos":{"Domain":"abc.xxx.com","Bucket":"webrecord-xxx","Region":"ap-shanghai","TargetDir":"11234/","TargetName":"record-file-name.mp4"},"Vod": {"MediaInfo": {"MediaName": "test","ExpireTime": "2023-10-01T10:00:00Z","StorageRegion": "ap-shanghai","ClassId": 1},"ProcedureInfo": {"Procedure": "","SessionContext": ""},"SubAppId": 1500007120},"Video": {"Muxer": "hls","EncryptKey": "21834cca41778803e1afba3f41******","AuthUrl": "https://hls-web-record-125******.cos.ap-shanghai.myqcloud.com/m3u8-encrypt/enc.key"}}}}
参数
|
类型
|
必填
|
说明
|
ErrorCode
|
string
|
否
|
错误类型,只有请求出错的时候才会返回此字段
|
ErrorMessage
|
string
|
否
|
错误说明,只有请求出错的时候才会返回此字段
|
TaskID
|
string
|
否
|
录制任务 ID,只有开始录制成功的时候才会返回此字段
|
RequestID
|
string
|
否
|
请求 ID
|
// 成功返回{"TaskID": "d1806f20-25b8-4c30-8176-c0832b******","RequestID": "95941e2c85898384a95b81c2a5******"}// 失败返回{"ErrorCode": "InvalidParam","ErrorMessage": "RecordURL missing","RequestID": "95941e2c85898384a95b81c2a5******"}
暂停录制接口
参数
|
类型
|
必填
|
说明
|
Action
|
string
|
是
|
请求操作类型,暂停录制为 Pause
|
Data
|
object
|
是
|
请求协议参数
|
Data.TaskID
|
string
|
是
|
需要暂停录制的录制任务 ID,录制任务 ID 可以在开始录制的接口返回参数中获取到
|
{"Action": "Pause","Data": {"TaskID": "0f7d9522-a1a3-4517-b5ad-7a6eca******"}}
参数
|
类型
|
必填
|
说明
|
ErrorCode
|
string
|
否
|
错误类型,只有请求出错的时候才会返回此字段
|
ErrorMessage
|
string
|
否
|
错误说明,只有请求出错的时候才会返回此字段
|
TaskID
|
string
|
否
|
录制任务 ID,只有开始录制成功的时候才会返回此字段
|
RequestID
|
string
|
否
|
请求 ID
|
// 成功返回{"TaskID": "d1806f20-25b8-4c30-8176-c0832b******","RequestID": "95941e2c85898384a95b81c2a5******"}// 失败返回{"ErrorCode": "InvalidParam","ErrorMessage": "TaskID missing","RequestID": "95941e2c85898384a95b81c2a5******"}
恢复录制接口
参数
|
类型
|
必填
|
说明
|
Action
|
string
|
是
|
请求操作类型,恢复暂停录制为 Resume
|
Data
|
object
|
是
|
请求协议参数
|
Data.TaskID
|
string
|
是
|
需要恢复录制的录制任务 ID,录制任务 ID 可以在开始录制的接口返回参数中获取到
|
{"Action": "Resume","Data": {"TaskID": "0f7d9522-a1a3-4517-b5ad-7a6eca******"}}
参数
|
类型
|
必填
|
说明
|
ErrorCode
|
string
|
否
|
错误类型,只有请求出错的时候才会返回此字段
|
ErrorMessage
|
string
|
否
|
错误说明,只有请求出错的时候才会返回此字段
|
TaskID
|
string
|
否
|
录制任务 ID,只有开始录制成功的时候才会返回此字段
|
RequestID
|
string
|
否
|
请求 ID
|
// 成功返回{"TaskID": "d1806f20-25b8-4c30-8176-c0832b******","RequestID": "95941e2c85898384a95b81c2a5******"}// 失败返回{"ErrorCode": "InvalidParam","ErrorMessage": "TaskID missing","RequestID": "95941e2c85898384a95b81c2a5******"}
刷新录制页面
参数
|
类型
|
必填
|
说明
|
Action
|
string
|
是
|
请求操作类型,刷新录制为 Refresh
|
Data
|
object
|
是
|
请求协议参数
|
Data.TaskID
|
string
|
是
|
需要刷新的录制任务 ID,录制任务 ID 可以在开始录制的接口返回参数中获取到
|
{"Action": "Refresh","Data": {"TaskID": "0f7d9522-a1a3-4517-b5ad-7a6eca******"}}
参数
|
类型
|
必填
|
说明
|
ErrorCode
|
string
|
否
|
错误类型,只有请求出错的时候才会返回此字段
|
ErrorMessage
|
string
|
否
|
错误说明,只有请求出错的时候才会返回此字段
|
TaskID
|
string
|
否
|
录制任务 ID,只有开始录制成功的时候才会返回此字段
|
RequestID
|
string
|
否
|
请求 ID
|
// 成功返回{"TaskID": "d1806f20-25b8-4c30-8176-c0832b******","RequestID": "95941e2c85898384a95b81c2a5******"}// 失败返回{"ErrorCode": "InvalidParam","ErrorMessage": "TaskID missing","RequestID": "95941e2c85898384a95b81c2a5******"}
停止录制接口
参数
|
类型
|
必填
|
说明
|
Action
|
string
|
是
|
请求操作类型,结束录制为 Stop
|
Data
|
object
|
是
|
请求协议参数
|
Data.TaskID
|
string
|
是
|
需要取消的录制任务 ID,录制任务 ID 可以在开始录制的接口返回参数中获取到
|
{"Action": "Stop","Data": {"TaskID": "0f7d9522-a1a3-4517-b5ad-7a6eca******"}}
参数
|
类型
|
必填
|
说明
|
ErrorCode
|
string
|
否
|
错误类型,只有请求出错的时候才会返回此字段
|
ErrorMessage
|
string
|
否
|
错误说明,只有请求出错的时候才会返回此字段
|
TaskID
|
string
|
否
|
录制任务 ID,只有开始录制成功的时候才会返回此字段
|
RequestID
|
string
|
否
|
请求 ID
|
// 成功返回{"TaskID": "d1806f20-25b8-4c30-8176-c0832b******","RequestID": "95941e2c85898384a95b81c2a5******"}// 失败返回{"ErrorCode": "InvalidParam","ErrorMessage": "TaskID missing","RequestID": "95941e2c85898384a95b81c2a5******"}
查询录制任务信息接口
参数
|
类型
|
必填
|
说明
|
Action
|
string
|
是
|
请求操作类型,查询录制任务信息为 Describe
|
Data
|
object
|
是
|
请求协议参数
|
Data.TaskID
|
string
|
是
|
需要查询的录制任务 ID,录制任务 ID 可以在开始录制的接口返回参数中获取到
|
{
"Action": "Describe",
"Data": {
"TaskID": "0f7d9522-a1a3-4517-b5ad-7a6ec******"
}
}
参数
|
类型
|
必填
|
说明
|
ErrorCode
|
string
|
否
|
错误类型,只有请求出错的时候才会返回
|
ErrorMessage
|
string
|
否
|
错误说明,只有请求出错的时候才会返回
|
TaskID
|
string
|
否
|
录制任务 ID,只有开始录制成功的时候才会返回
|
RequestID
|
string
|
否
|
请求 ID
|
Status
|
string
|
否
|
录制任务当前状态,可能的取值及其含义如下: <br> normal -- 录制任务创建成功,但录制任务还没有开始录制 <br> recording -- 录制任务正在录制中 <br> paused -- 录制任务被暂停<br> canceled -- 录制任务已经被取消 <br> transcode -- 录制任务正在对录制视频进行拼接、转码等操作 <br> upload -- 录制任务正在上传录制视频到云存储 <br> callback -- 录制任务正在把录制结果通过发起录制时配置的回调地址进行通知 <br> finished -- 录制任务的所有操作已经完成
|
CreateTime
|
int
|
否
|
录制任务创建时间戳,单位s
|
StartTime
|
int
|
否
|
录制任务开始录制时间戳,单位s,只有开始录制后才会返回此字段
|
CancelTime
|
int
|
否
|
录制任务被取消的时间戳,单位s,只有发起过取消录制请求才会返回此字段
|
StopTime
|
int
|
否
|
录制任务结束录制时间戳,单位s,只有录制任务停止后才会返回此字段
|
FinishTime
|
int
|
否
|
录制任务完成录制时间戳,单位s,只有录制任务完成所有录制处理后才会返回此字段
|
Result
|
object
|
否
|
录制任务结果
|
Result.ErrorCode
|
string
|
否
|
录制任务出错类型,只有录制任务执行过程中出现错误时才会返回此字段
|
Result.ErrorMessage
|
string
|
否
|
录制任务出错信息,只有录制任务执行过程中出现错误时才会返回此字段
|
Result.Videos
|
[]object
|
否
|
录制视频文件列表
|
Result.Videos.Filename
|
string
|
否
|
视频文件名称
|
Result.Videos.FileSize
|
int
|
否
|
视频文件大小
|
Result.Videos.FileDuration
|
string
|
否
|
视频文件长度
|
Result.Videos.FileId
|
string
|
否
|
如果目标为 VOD,该参数为 VOD 中媒体文件的唯一标识
|
Result.Videos.FileURL
|
string
|
否
|
视频文件链接
|
返回参数示例
// 成功返回
{
"TaskID": "7a035551-d9d6-494e-b604-fa787b******",
"RequestID": "95941e2c85898384a95b81c2a5******",
"CreateTime": 1620982173,
"Status": "finished",
"StartTime": 1620982177,
"CancelTime": 1620982203,
"StopTime": 1620982203,
"FinishTime": 1620982210,
"Result": {
"Videos": [
{
"Filename": "1621406865789.mp4",
"FileSize": 169780,
"FileDuration": 9,
"FileId": 31235664578998,
"FileURL": "http://web-record-125******.cos.ap-chengdu.myqcloud.com/4d0f336d-4de4-4fc8-b505-d1f790974909/162140******.mp4"
}
]
}
}
// 请求出错返回
{
"ErrorCode": "InvalidParam",
"ErrorMessage": "TaskID missing",
"RequestID": "95941e2c85898384a95b81c2a5******"
}
// 录制任务出错返回
{
"TaskID": "7a035551-d9d6-494e-b604-fa787b******",
"RequestID": "95941e2c85898384a95b81c2a5******",
"CreateTime": 1620982173,
"Status": "finished",
"StartTime": 1620982177,
"CancelTime": 1620982203,
"StopTime": 1620982203,
"FinishTime": 1620982210,
"Result": {
"ErrorCode": "CallbackFailed",
"ErrorMessage": "Callback failed even all tries. last error message:ECONNABORTED:timeout of 2000ms exceeded"
}
}