录像服务指南
简介:
当您使用anyRTC的音视频功能时,还可以通过对录像功能的设置来获取视频的录像以及是否需要录像。当您使用该功能的前提是您已经在anyRTC平台创建了应用,目前提供录像的服务有视频会议,实时直播和P2P。
录像服务指视频录像,可在用户后台设置录像回调地址和是否自动录像,也可以通过调用接口主动获取录像.
自动录像
在用户后台登录后,在应用管理中选择您的应用,在服务列表中选择需要录像的服务。 当您选择自动录像时,您进行的每一次会议都会录像。
手动录像
在用户后台登录后,在应用管理中选择您的应用,在服务列表中选择需要录像的服务。 当您选择手动录制时,anyRTC提供开始和结束录像的接口实现对录像的控制。
注:
开始录像和结束录像这两个接口为服务端调用的接口,请勿在客户端直接调用。该接口调用有IP白名单过滤检查,请将您的服务器IP告诉我们。
开始录像:
POST 请求
https://www.anyrtc.io/anyapi/v1/startrecord?AppID=your.appid&ArRoomID=your.roomid&Type=Meet
URL参数:
编号 | 参数 | 名称 | 类型 | 说明 |
---|---|---|---|---|
1 | AppId | 应用ID | string | 在应用信息中获取 |
2 | ArRoomID | 房间名称 | string | sdk中加入房间时的anyrtcid |
3 | Type | 房间类型 | string | 会议的录像默认值为Meet,区分大小写 |
body参数:
编号 | 参数 | 名称 | 类型 | 说明 |
---|---|---|---|---|
1 | Path | 路径 | string | 在服务器中的相对存储路径 |
2 | UserData | 用户自定义数据 | string | 用户自定义的数据,字符串类型,如果自定义数据为json对象,请转为json 字符串 |
3 | NameRule | 命名规则 | string | "ar{roomid}{date}_{random}",至少携带两级下划线,以避免和其他用户冲突 |
Path和NameRule仅私有云需要,当您使用公有云时,可以忽略这两个参数
命名规则说明:
例如:
xx_{random}_{date}_{time}_{roomid}_{userid}_xx.mp4
{random}: 4位随机字符串数字+字母
{date}: 日期-年月日 20180912
{time}: 时间-秒数
{roomid}: 房间ID
{userid}: 用户ID - 只适用于单独的音视频,合成音视频此参数无效
最多支持5个自定义参数,如果您不需要或没有,可以不填。比如这样的名称xx_{random}_{date}_{roomid}_xx.mp4,也是有效的。该自定义名称会在录像回调中返回给您。
返回值
{"result":"ok"}
该返回值为josn类型字符串,需要json解析
名称 | 说明 |
---|---|
result | ok为成功,其他值均为失败 |
结束录像:
POST请求
https://www.anyrtc.io/anyapi/v1/stoprecord?AppID=your.appid&ArRoomID=your.roomid&Type=Meet
URL参数
编号 | 参数 | 名称 | 类型 | 说明 |
---|---|---|---|---|
1 | AppId | 应用ID | string | 在应用信息中获取 |
2 | ArRoomID | 房间名称 | string | sdk中加入房间时的anyrtcid |
3 | Type | 房间类型 | string | 会议的录像默认值为Meet,区分大小写 |
返回值
{"result":"ok"}
该返回值为josn类型字符串,需要json解析
名称 | 说明 |
---|---|
result | ok为成功,其他值均为失败 |
回调地址
通过该回调,用户可以获取到录像文件的相关信息. 该地址由第三方集成方提供,anyRTC平台服务来调用。该接口非实时接口,不是视频结束后立刻回调的。录像之后需要转码,根据录像文件列表数量而定,正常情况5-10分钟左右。
POST 请求
http://your.server.domain:port/AR/V1/av
Accept ContentType:
application/json
body 参数:
编号 | 参数 | 名称 | 类型 | 说明 |
---|---|---|---|---|
1 | type | 业务类型 | string | "1":会议录像/会议合成录像;"2":单独每路的录像;"3":提取帧图像 |
2 | mediaType | 媒体类型 | string | audio:音频;video:视频;image:图片 |
3 | userId | 用户ID | string | 用户ID,在sdk中加入房间时的userid |
4 | groupId | 房间ID | string | 房间ID,在sdk中加入房间时的anyrtcid |
5 | fileName | 文件名称 | string | 录像文件的名称,在开始录像接口传入的参数。如果您使用了自动录像,则该值为随机字符串 |
6 | fileSize | 文件大小 | int | 录像文件的大小,单位byte |
7 | duration | 文件时长 | int | 录像文件的市场,单位秒 |
8 | startTime | 开始时间 | string | 会议开始时间,日期格式字符串 |
9 | endTime | 结束时间 | string | 会议结束时间,日期格式字符串 |
10 | downloadUrl | 下载地址 | string | 视频下载地址,http请求 |
11 | userData | 用户自定义数据 | json string | 用户自定义数据,在开始录像接口传入的参数,json格式的字符串 |
例如:
{
"type":"2",
"mediaType":"audio/video",
"userId":"123456",
"groupId":"123888",
"startTime":"1521608787",
"endTime":"1521608807",
"fileName":"yyy.mp4",
"fileSize":65322,
"duration":20,
"downloadUrl":"http://www.anyrtc.io/yyy.mp4",
"userData":"{\"customerCode\":\"1002\",\"devCoder\":\"10006\",\"uNamer\":\"李席\",\"devCoded\":\"10008\",\"uNamed\":\"王伟\",\"nIder\":\"1005\",\"nNamer\":\"电务段\",\"nIded\":\"1006\",\"nNamed\":\"工务段\"}"
}
返回值:
{"code":0,"success": true,"message":"返回结果说明"}
该返回值为josn类型字符串,需要json解析
名称 | 类型 | 说明 |
---|---|---|
code | int | 0为成功,其他失败 |
success | boolean | true为成功,false为失败 |
message | string | 返回结果的说明 |
根据时间获取录像
通过该方法,用户可以主动获取录像文件的相关信息.该接口每分钟最多调用5次。
根据时间获取录像文件列表:
POST 请求
示例为postman请求
curl -X POST \
http(s)://vdn.anyrtc.cc/oauth/anyapi/v1/videoInfo/getVodListByTime \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"appId":"anyrtcsdfqasdfsdfi",
"random":"123456",
"signature":"33d60e07681dfcc436422aab02e20261",
"timestamp":1559557543000,
"pageNum":2,
"pageMax":5,
"begTime":1558371600000,
"endTime":1559149200000
}'
BODY参数:
编号 | 参数 | 名称 | 类型 | 说明 |
---|---|---|---|---|
1 | appId | 应用ID | string | 应用的ID,在用户后台获取 |
2 | random | 随机字符串 | string | 随机字符串,6-10位即可 |
3 | signature | 签名 | string | 请求的签名 |
4 | timestamp | 时间戳 | int | 当前毫秒时间戳 |
5 | begTime | 开始时间 | int | 查询开始时间的时间戳,毫秒 |
6 | endTime | 结束时间 | int | 查询结束时间的时间戳,毫秒 |
7 | pageNum | 当前页数 | int | 查询的当前页数 |
8 | pageMax | 每页最大列数 | int | 每页显示多少条 |
signature计算方式:
md5(appid+timestamp+vodtoken+random)
appid,timestmap,vodtoken和random拼接字符串,顺序不能变,字符串中间没有‘+’号,然后进行md5计算.vodtoken在用户后台开通录像功能的地方获取.
返回值
{
"requestid": 1559557594286,
"code": 200,
"message": "get video list success",
"content": {
"data": [
{
"filesize": 957271,
"filestatus": 2,
"filetype": "mp4",
"upload_time": "2019-05-30T09:35:19.000Z",
"upload_timestamp": 1559145600000,
"download_url": "http://192.168.199.219:8080/anyrtc/6zDIxYEI6wYSQxjk6EdX.mp4",
"start_time": 1559208681,
"end_time": 1559208696,
"file_duration": 15
},
{
"filesize": 146,
"filestatus": 2,
"filetype": "mp4",
"upload_time": "2019-05-30T02:39:32.000Z",
"upload_timestamp": 1559145600000,
"download_url": "http://192.168.199.219:8080/anyrtc/GLn8MWgGtfi2rLCZZTXo.mp4",
"start_time": 1559183897,
"end_time": 1559183960,
"file_duration": 63
},
],
"cnt": {
"cnt": 12
}
}
}
该返回值为josn类型字符串,需要json解析
名称 | 类型 | 说明 |
---|---|---|
code | int | 200为成功,其他均为失败 |
msg | string | 接口返回说明 |
conent | object | 接口返回内容 |
content说明:
data: 对象列表 cnt: 返回列表的数量
名称 | 类型 | 说明 |
---|---|---|
filesize | int | 录像文件大小,单位 byte |
filestatus | int | 录像文件的状态, 0:未转码,1:转码中,2:转码成功,3:转码失败 |
filetype | string | 录像文件的类型,默认mp4 |
upload_time | string | 录像文件上传至服务器的时间 |
upload_timestamp | int | 录像文件上传至服务器的时间, 单位秒,也是查询列表时判断的时间 |
download_url | string | 录像文件下载/观看的路径 |
start_time | int | 录像视频开始的时间,即通话开始的时间 |
end_time | int | 录像视频结束的时间,即通话结束的时间 |
file_duration | int | 通话的时长,单位秒 |
根据房间ID获取录像
通过该方法,用户可以主动获取录像文件的相关信息.该接口每分钟最多调用5次。
根据房间ID获取录像文件列表:
POST 请求
示例为postman请求
curl -X POST \
http://vdn.anyrtc.cc/oauth/anyapi/v1/videoInfo/getVodInfoByRoomId \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: d1c86e6b-94e4-c096-7120-afaf767d6fcc' \
-d '{
"appId":"anyrtcYoK8tlxUPXVR",
"random":"123456",
"signature":"159ccc862ed1c21e2c5174db21d64d77",
"timestamp":"1563798085000",
"roomId":"4PN9lMlvFV",
"begTime":"1563443671764",
"endTime":1563508505030
}'
BODY参数:
编号 | 参数 | 名称 | 类型 | 说明 |
---|---|---|---|---|
1 | appId | 应用ID | string | 应用的ID,在用户后台获取 |
2 | random | 随机字符串 | string | 随机字符串,6-10位即可 |
3 | signature | 签名 | string | 请求的签名 |
4 | timestamp | 时间戳 | int | 当前毫秒时间戳 |
5 | begTime | 开始时间 | int | 查询开始时间的时间戳,毫秒 |
6 | endTime | 结束时间 | int | 查询结束时间的时间戳,毫秒 |
7 | roomId | 房间ID | string | 需要查询的房间ID |
signature计算方式:
md5(appid+timestamp+vodtoken+random)
appid,timestmap,vodtoken和random拼接字符串,顺序不能变,字符串中间没有‘+’号,然后进行md5计算.vodtoken在用户后台开通录像功能的地方获取.
返回值
{
"requestid": 1563798336110,
"code": 200,
"message": "get video info success",
"content": {
"data": [
{
"fileid": "S3EDRhaQo4pqUBO3a4Tu",
"filesize": 13958524,
"filestatus": 2,
"filetype": "mp4",
"upload_time": "2019-07-18T10:22:47.000Z",
"upload_timestamp": 1563445367404,
"room_id": "4PN9lMlvFV",
"download_url": "http://vod.anyrtc.cn:10090/tmix/S3EDRhaQo4pqUBO3a4Tu.mp4",
"start_time": 1563445166,
"end_time": 1563445361,
"file_duration": 195
}
],
"cnt": {
"cnt": 1
}
}
}
该返回值为josn类型字符串,需要json解析
名称 | 类型 | 说明 |
---|---|---|
code | int | 200为成功,其他均为失败 |
msg | string | 接口返回说明 |
conent | object | 接口返回内容 |
content说明:
data: 对象列表 cnt: 返回列表的数量
名称 | 类型 | 说明 |
---|---|---|
fileid | string | 录像文件id, 标识不同的文件 |
filesize | int | 录像文件大小,单位 byte |
filestatus | int | 录像文件的状态, 0:未转码,1:转码中,2:转码成功,3:转码失败 |
filetype | string | 录像文件的类型,默认mp4 |
upload_time | string | 录像文件上传至服务器的时间 |
upload_timestamp | int | 录像文件上传至服务器的时间, 单位秒,也是查询列表时判断的时间 |
room_id | string | 房间ID,对应会议ID |
download_url | string | 录像文件下载/观看的路径 |
start_time | int | 录像视频开始的时间,即通话开始的时间 |
end_time | int | 录像视频结束的时间,即通话结束的时间 |
file_duration | int | 通话的时长,单位秒 |
错误码
code | 说明 |
---|---|
200 | 调用成功 |
400 | 缺少参数, 请查看参数名字拼写是否正确,类型是否正确 |
247 | 应用ID不存在 |
281 | 错误的签名, 请查看md5的变量顺序是否正确,每个变量的值是否正确 |
282 | 错误的时间戳, 请查看时间戳是否正确,毫秒时间 |
284 | 应用无效或已删除 |
299 | 接口调用频繁, 一分钟内最多5次 |
501 | 内部错误 |