手动录制API

# 云录制控制

使用云端录制服务的开发者可以在自己业务场景需要录制时,异步启动录制任务;通过接口参数来控制录制服务器以你指定的录像模式进行录制;

在调试接口前请充分阅读云录制相关功能说明文档产品说明

如有问题请提交工单我们会尽快给您答复。

# 录制开始接口API

方法名:/rtc/record/start

签名方法:请参考 通用 API 接口签名规则

URL:http(s): //rtcapi-cn.ronghub.com/rtc/record/start.json

HTTP 方法:POST

** Header **

名称 类型 说明
App-Key String 开发者平台分配的 App Key
Nonce String 随机数,无长度限制。
Timestamp String 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数。
Signature String 数据签名。
Room-Id String 需要录制的房间id(必传)

** 请求表单参数 **

名称 类型 说明
sessionId String 需要录制的会话id(必传) 获取方式 请参考 server api查询房间状态
config String json格式数据;可以设置录制相关参数,具体如下
config.mode Int 录制模式(7选1):0 (single-全录)/1 (single-仅录视频)/ 2 (single-仅录音频) /3 (mix-全录)/4(mix-仅录视频) / 5 (mix-仅录音频) / 6 (单人mix ,每个人的音视频流录成一个视频文件)
config.videoFormat String 视频格式(3选1):mkv/mp4/flv
config.audioFormat String 音频格式(2选1):aac/mp3
config.videoResolution String 分辨率(7选1): 空/480x320 (乘号用英文小写"x"指代) /320x480 /640x480 /480x640 /1280x720 /720x1280 。值为空的时候,mix模式默认:640x480 single模式为当前流的分辨率
config.mixLayout Int 合图布局方式(3选1):1(自定义布局)/ 2( 悬浮布局-默认) / 3(自适应布局)
config.sliceMin Int 录像切片时间间隔,分为4档(单位-分钟):30/ 60/90/120
config.renderMode Int 视频填充方式, 1:等比放大填充(相对视频源会有裁剪) (默认);2:等比缩放(可能会有黑边)
config.hostUserId String 合流录制时候使用 mixLayout=1 时填 “”, mixLayout = 2或3时 填写需要放在悬浮布局的背景上,或自适应布局时左上角的视频发布者id
config.hostStreamId String 合流录制时候使用 mixLayout=1 时填 “”, mixLayout = 2或3时 填写需要放在悬浮布局的背景上,或自适应布局左上角图像的视频发布者发布的流id
config.input.video.userId String 子视图视频的发布者id
config.input.video.streamId String 子视图视频的发布者id
config.input.video.x FLOAT 子视图视频的左上角坐标,x轴参数(填写总宽度占比)
config.input.video.y FLOAT 子视图视频的左上角坐标 ,y轴参数(填写总高度占比)
config.input.video.width FLOAT 子视图视频的宽(填写总宽度占比)
config.input.video.height FLOAT 子视图视频的高(填写总高度占比)

JSON 格式:

{
  "sessionId":"aaa",
  "config":{
    "mode":3,
    "videoFormat":"mkv",
    "audioFormat":"aac",
    "videoResolution":"640×480",
    "sliceMin":60,
    "renderMode":1, // 选填 ,默认不裁剪 ,不裁剪模式下 实际视频宽高比例 和对应填充窗口宽高比例 不一致时可能有黑边 
    "mixLayout":1, // 合流录制时候使用, 值为1时 下面的 “input”不能为空
    "hostUserId":"abc", 
    "hostStreamId":"111_RongCloudRTC", 
    "input":{ 
            "video":[  // 设置子视图位置和大小
                {
                    "userId":"111", // 需保证有效性
                    "streamId":"111_RongCloudRTC",  // 需保证有效性
                    "x":0,   
                    "y":0,
                    "width":0.5,
                    "height":0.5
                },
                {
                    "userId":"2222", // 需保证有效性
                    "streamId":"2222_RongCloudRTC",// 需保证有效性
                    "x":0.5,  // 子视图的左上角 横轴坐标 为  整体宽 乘 0.5
                    "y":0.5, // 子视图的左上角 纵轴坐标 为  整体高 乘 0.5
                    "width":0.5, // 子视图的宽度 为  整体宽 乘 0.5
                    "height":0.5 // 子视图的高度 为  整体高 乘 0.5
                }
            ]
        }
            
  }
}
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

** 返回值 **

名称 类型 说明
code Int 网络请求状态码,200 为正常。
errorMessage String 错误信息
resultCode Int 业务状态码,一般用于查询错误码,见本文下方状态码表
recordId String 录制任务Id,由录制服务生成,可用于录制状态回调里信息检索

请求成功

{
 "code": 200,
 "errorMessage": "Success",
 "recordId": "b8bed381888091ff4e6a42d6f3b8782a",
 "resultCode": 10000
}

已复制
1
2
3
4
5
6
7

请求失败

{
  "code":404,
  "errorMessage": "Not a valid API",
  
}

已复制
1
2
3
4
5
6
# 更改录像布局

方法名:/rtc/record/config

签名方法:请参考 通用 API 接口签名规则

URL:http(s): //rtcapi-cn.ronghub.com/rtc/record/config.json

HTTP 方法:POST

** Header **

名称 类型 说明
App-Key String 开发者平台分配的 App Key
Nonce String 随机数,无长度限制。
Timestamp String 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数。
Signature String 数据签名。
Room-Id String 需要录制的房间id(必传)

** 请求表单参数 **

名称 类型 说明
sessionId String 需要录制的会话id(必传) 获取方式 请参考 server api查询房间状态
mixLayout Int 合图布局方式(3选1):1(自定义布局)/ 2( 悬浮布局-默认) / 3(自适应布局)
renderMode Int 视频填充方式, 1:等比放大填充(相对视频源会有裁剪) (默认);2:等比缩放(可能会有黑边)
hostUserId String 合流录制时候使用 mixLayout=1 时填 “”, mixLayout = 2或3时 填写需要放在悬浮布局的背景上,或自适应布局时左上角的视频发布者id
hostStreamId String 合流录制时候使用 mixLayout=1 时填 “”, mixLayout = 2或3时 填写需要放在悬浮布局的背景上,或自适应布局左上角图像的视频发布者发布的流id
input.video.userId String 子视图视频的发布者id
input.video.streamId String 子视图视频的发布者id
input.video.x Int 子视图视频的左上角坐标,x轴参数(填写总宽度占比)
input.video.y Int 子视图视频的左上角坐标 ,y轴参数(填写总高度占比)
input.video.width Int 子视图视频的宽(填写总宽度占比)
input.video.height Int 子视图视频的高(填写总高度占比)

JSON 格式:

{
  "sessionId":"aaa",
  "renderMode":1, 
  "mixLayout":1, // 合流录制时候使用, 值为1时 下面的 input不为空
  "hostUserId":"abc", 
  "hostStreamId":"111_RongCloudRTC", 
  "input":{ 
            "video":[  // 设置子视图位置和大小
                {
                    "userId":"111",// 需保证有效性
                    "streamId":"111_RongCloudRTC", // 需保证有效性
                    "x":0,   
                    "y":0,
                    "width":0.5,
                    "height":0.5
                },
                {
                    "userId":"2222", // 需保证有效性
                    "streamId":"2222_RongCloudRTC",// 需保证有效性
                    "x":0.5,  // 子视图的左上角 横轴坐标 为  整体宽 乘 0.5
                    "y":0.5, // 子视图的左上角 纵轴坐标 为  整体高 乘 0.5
                    "width":0.5, // 子视图的宽度 为  整体宽 乘 0.5
                    "height":0.5 // 子视图的高度 为  整体高 乘 0.5
                }
            ]
        }
}
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

** 返回值 **

名称 类型 说明
code Int 网络请求状态码,200 为正常。
errorMessage String 错误信息
resultCode Int 业务状态码,一般用于查询错误码,见本文下方状态码表
recordId String 录制任务Id,由录制服务生成,可用于录制状态回调里信息检索

请求成功

{
 "code": 200,
 "errorMessage": "Success",
 "recordId": "b8bed381888091ff4e6a42d6f3b8782a",
 "resultCode": 10000
}

已复制
1
2
3
4
5
6
7

请求失败

{
 "code": 47032,
 "errorMessage": "config error, please check input body, input could not empty when mixlayout is 1",
 "recordId": "834a319a21113faa7f4936613b7faded",
 "resultCode": 47032
}

已复制
1
2
3
4
5
6
7
# 录像结束接口API

方法名:/rtc/record/stop

签名方法:请参考 通用 API 接口签名规则

URL:http(s): //rtcapi-cn.ronghub.com/rtc/record/stop.json

HTTP 方法:POST

** Header **

名称 类型 说明
App-Key String 开发者平台分配的 App Key
Nonce String 随机数,无长度限制。
Timestamp String 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数。
Signature String 数据签名。
Room-Id String 需要录制的房间id(必传)

** 请求表单参数 **

名称 类型 说明
sessionId String 需要录制的会话id(必传)

JSON 格式:

{
  "sessionId":"aaa"
}
已复制
1
2
3

** 返回值 **

名称 类型 说明
code Int 网络请求状态码,200 为正常。
errorMessage String 错误信息
resultCode Int 业务状态码,一般用于查询错误码,见本文下方状态码表
recordId String 录制任务Id,由录制服务生成,可用于录制状态回调里信息检索

请求成功

{
  "code": 200,
  "errorMessage": "Success",
  "recordId": "b8bed381888091ff4e6a42d6f3b8782a",
  "resultCode": 10000
}

已复制
1
2
3
4
5
6
7
# 状态码定义
状态码 含义
10000 请求成功
47002 房间里没有这个流
47003 已经在录像
47005 阿里获得桶失败
47006 阿里上传文件失败
47008 腾讯获得桶失败
47009 腾讯上传文件失败
47011 AWS获得桶失败
47012 AWS上传文件失败
47014 七牛获得桶失败
47015 七牛上传文件失败
47017 不支持此oss厂商
47019 第三方存储失败 融云存放
47020 第三方存储失败 融云存放超时 删除文件
47025 本地存储失败
47031 手动录制在未开启时调用
47032 手动录制配置参数错误

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助