云端录制
云端录制API,主要用于服务器云端录制开启,结束,更新。
开启录制
请求:
POST /recording/start
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
{
"channelId":"Hello Pano", // string, 必填, 频道ID
"streamList": [
{
"streamId": 1, // int, 必填, 用户指定的流ID
"type": 1, // int, 必填, 1:混录, 2:单录
"flag": 15, // int, 必填, 0x1: 录音频 0x2: 录视频 0x4: 录桌面共享 0x8: 录白板
"userId": "1", // string, 可选, 主讲人Id, 当布局为演讲者模式时需要; 单录("type": 2)时也需要
"layout": {...}, // object, 可选, 布局参数
"fps": 15, // int, 可选, 支持15帧和30帧. 默认值是30帧
"format": 2 // int, 可选, 1: flv格式 2: mp4格式. 默认值是1
},
{
"streamId": 2,
"type": 2,
"flag": 15,
"userId": "2",
"layout": {...},
"fps": 15,
"format": 2
}
]
}
参数说明:
- streamId - 由客户指定,需要保证同一个频道的streamId不重复,后面可以使用streamId来更新、停止录制
- type - 录制模式
- type = 1,混录模式,频道内所有用户的音视频混合录制为一个文件
- type = 2,单录模式,单个用户的音视频混合录制成一个文件
- userId - 单录时的userId,混录时的主讲人ID,混录时如果不指定userId则将第一个入会的作为主讲人
- layout - 设置视频合流布局,格式请参考布局参数说明
- flag - 表示录制哪些媒体,多个值相加表示录制多个媒体,值15表示录制所有媒体
- fps - 设置录制的帧率
- format - 设置录制文件的格式
从上面的参数可以知道,客户可以指定在同一个频道里录制多路流,每一路流有独立的布局。
响应:
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
404 | 频道不存在。该错误可能是在第一个用户开启频道之前发起录制时发生,可尝试重试该请求。 |
500 | 服务器端内部错误 |
更新录制
请求:
PUT /recording/update
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
{
"channelId":"Hello Pano", // string, 必填, 频道ID
"streamList": [
{
"streamId": 1, // int, 必填, 用户指定的流ID
"userId": "1", // string, 可选, 主讲人Id, 当布局为演讲者模式时需要
"layout": {...}, // object, 可选, 布局参数
"fps": 15 // int, 可选, 支持15帧和30帧
},
{
"streamId": 2,
"layout": {...},
"fps": 15
}
]
}
通过更新接口可以更新stream的布局、混录时的主讲人Id等。
请注意,type和flag不可以更新。如果是单录,userId也不可以更新。
响应:
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
404 | 频道不存在 |
500 | 服务器端内部错误 |
结束录制
请求:
POST /recording/stop
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
{
"channelId": "Hello Pano", // string, 必填, 频道ID
"streamId": 1 // int, 可选, 当为空时, 结束频道下所有录制, 当不为空时, 仅结束此streamId对应录制
}
响应:
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
404 | 频道不存在 |
500 | 服务器端内部错误 |
获取录制文件URL
请求:
POST /recording/url
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
{
"channelKey": "57489728467", // channelKey与fileKeyList有一个必填
"fileKeyList": ["68532189794","68532189795"], // channelKey与fileKeyList有一个必填
"duration": 86400 // int, 可选, url有效时长(seconds)
}
参数说明:
- channelKey - channelKey与fileKeyList必须有一个为必填,只有channelKey参数时表示获取此通话下的所有录制文件URL,只有fileKeyList参数时表示获取这些fileKey的录制文件URL,如果2个参数都有值,则表示此channelKey下的此fileKey对应的录制文件
- fileKeyList - fileKey在查询通话详情里获得,或者在webhook里获得。单次最多可以获取50个录制文件的URL
- duration - 生成的URL有一个有效期,默认为24小时,最长为7天
- 在频道结束后开始生成录制文件,此过程耗时通常约等于频道时长。
- 如果单个 streamId 录制时长超过2小时,会按照每2小时对录制文件进行切片。例如,2小时30分钟的录制,会生成一个2小时的录制文件和一个30分钟的录制文件,一共两个 fileKeyList。
- 录制文件默认免费保存3个月,如需长期保存请咨询商务。
- 播放或下载录制文件,会产生费用(该费用不包含在免费时长中),具体资费请咨询商务。
响应:
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
404 | 录制文件不存在 |
500 | 服务器端内部错误 |
状态码 200
200 OK
[
{
"channelKey": "57489728467",
"streamId": 1,
"fileKey": "68532189794",
"url": "https://abc1.flv",
"duration": 3315 // 录制文件时长,int(seconds)
},
... // 更多数据
]