返回参数
BaseResponse
参数名类型描述
ResponseMetadataResponseMetadata
Resultinterface{}仅在请求成功时返回, 具体值参考每个 API 的说明。
ResponseMetadata
参数名类型示例值描述
RequestIdstringYour_RequestId请求标识
ActionstringStartRecord接口名称
Versionstring2021-04-22接口版本
Servicestringrtc接口所属服务
Regionstringcn-north-1地域参数:
  • cn-north-1 (华北)
  • ap-singapore-1 (新加坡)
  • us-east-1 (美东)
  • ErrorErrorInfo无仅在请求失败时返回。
    ErrorInfo

    错误的结构定义。

    参数名称类型描述
    CodeNuint32网关的错误码
    CodestringAPI 的错误码,参看错误码。
    Messagestring具体的错误信息
    ID

    BusinessId,TaskId,RoomId,UserId 等字段都遵循相同的命名规范:

    长度不超过 128 个字节,字符集取值范围是:

    视频布局相关参数
    Layout

    合流布局参数。

    参数名称类型必填示例值描述
    LayoutModeUint32否0布局模式。默认值为 0,值的范围为 {0, 1, 2, 3}。
  • 0 为自适应布局模式。参看自适应布局。
  • 1 为垂直布局模式。参看垂直布局。
  • 2 为自定义布局模式。
  • 3 为并排布局模式。参看并排布局
  • MainVideoStreamStream否在垂直布局模式下生效,指定主画面流的属性。如果此参数为空,则主画面为随机的一路流。
    CustomLayoutCustomLayout否使用自定义布局模式时,使用此参数进行具体设置。
    布局说明

    如果你选择使用自适应布局模式,合流时,不同的合流用户数量会适用不同的布局:

    自适应布局会遵循以下规则:

    如果你选择使用垂直布局模式,合流时,不同的合流用户数量会适用不同的布局:

    image

    image

    垂直布局会遵循以下规则:

    如果你选择使用并排布局模式,合流时,不同的合流用户数量会适用不同的布局:

    image

    CustomLayout

    自定义布局模式下,画面布局的具体设置。

    参数名称类型必填示例值描述
    CanvasCanvas否整体屏幕(画布)的宽高以及背景色。
    Regionsarray of Region是在自定义布局模式下,你必须使用 Regions 对每一路视频流进行画面布局设置。其中,每个 Region 对一路视频流进行画面布局设置。

    自定义布局模式下,对于 StreamList 中的每个 Stream,Regions 中都需要给出对应的布局信息,否则会返回请求不合法的错误。即 Regions.Region.StreamIndex 要与 TargetStreams.StreamList.Stream.Index 的值一一对应,否则自定义布局设置失败,返回 InvalidParameter 错误码。

    Canvas

    整体屏幕(画布)的宽高以及背景色参数。

    参数名称类型必填示例值描述备注
    Widthuint32否640整体屏幕(画布)的宽度,单位为 px,范围为 [2, 1920],必须是偶数。默认值为 640。值不合法时,自动调整为默认值。
    Heightuint32否480整体屏幕(画布)的高度,单位为 px,范围为 [2, 1920],必须是偶数。默认值为 480。值不合法时,自动调整为默认值。
    BackgroundString否#000000整体屏幕(画布)的背景色,格式为 #RGB(16进制),默认值为 #000000(黑色), 范围为 #000000 ~ #ffffff (大小写均可)。值不合法时,自动调整为默认值。关于 Background 和 BackgroundImage 之间的关系,参看注释1。
    BackgroundImageString否无背景图片的 URL。长度最大为 1024 byte。可以传入的图片的格式包括:JPG, JPEG, PNG。如果背景图片的宽高和整体屏幕的宽高不一致,背景图片会缩放到铺满屏幕。关于 Background 和 BackgroundImage 之间的关系,参看注释1。
    1. 如果你设置了背景图片,那么背景色的设置失效。
    Region

    视频流在整体画面中的布局参数。

    • 当传入的必填参数值不合法时,返回错误码 InvalidParameter 。
    • 当传入的选填参数值不合法时,自动调整为默认值。
    参数名称类型必填示例值描述备注
    StreamIndexuint32是0流的标识。这个标志应和 TargetStreams.StreamList.Stream.Index 对应。
    LocationXFloat32是0视频流对应区域左上角的横坐标相对整体画面的比例,取值的范围为 [0.0, 1.0)。参看关于 LocationX 的说明。
    LocationYFloat32是0视频流对应区域左上角的纵坐标相对整体画面的比例,取值的范围为 [0.0, 1.0)。参看关于 LocationY 的说明。
    WidthProportionFloat32是0.5视频流对应区域宽度相对整体画面的比例,取值的范围为 (0.0, 1.0]。
    HeightProportionFloat32是0.5视频流对应区域高度相对整体画面的比例,取值的范围为 (0.0, 1.0]。
    ZOrderuint32否0当多个流的画面有重叠时,使用此参数设置指定画面的图层顺序。取值范围为 [0, 100]:0 表示该区域图像位于最下层,100 表示该区域图像位于最上层, 默认值为 0。值不合法时,自动调整为默认值。
    AlphaFloat32否1画面的透明度,取值范围为 (0.0, 1.0]。0.0 表示完全透明,1.0 表示完全不透明,默认值为 1.0。值不合法时,自动调整为默认值。
    RenderModeuint32否0画面的渲染模式,值的范围为 {0, 1, 2,3}, 默认值为 0:
  • 0 表示按照指定的宽高直接缩放。如果原始画面宽高比与指定的宽高比不同,就会导致画面变形
  • 1 表示按照显示区域的长宽比裁减视频,然后等比拉伸或缩小视频,占满显示区域。
  • 2 表示按照原始画面的宽高比缩放视频,在显示区域居中显示。如果原始画面宽高比与指定的宽高比不同,就会导致画面有空缺,空缺区域为填充的背景色值。值不合法时,自动调整为默认值。
  • 3 表示按照指定的宽高直接缩放。如果原始画面宽高比与指定的宽高比不同,就会导致画面变形
    目前 0 和 3 均为按照指定的宽高直接缩放,但我们推荐你使用 3 以便与客户端实现相同逻辑。
  • SourceCropSourceCrop否/源流剪切功能,可以在源视频帧渲染之前进行裁剪,即预处理一次再渲染。
    AlternateImageString否补位图片的 url。长度不超过 1024 个字符串。参看关于 AlternateImage 的说明。

    备注:

    SourceCrop

    对原视频帧在渲染前进行裁剪。

    当传入的参数值不合法时,自动调整为默认值。

    参数名称类型必填示例值描述
    LocationXFloat32是0裁剪后得到的视频帧左上角的横坐标相对裁剪前整体画面的比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。
    LocationYFloat32是0裁剪后得到的视频帧左上角的纵坐标相对裁剪前整体画面的比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。
    WidthProportionFloat32是0.5裁剪后得到的视频帧宽度相对裁剪前整体画面宽度的比例,取值范围为 (0.0, 1.0]。默认值为 1.0。
    HeightProportionFloat32是0.5裁剪后得到的视频帧高度相对裁剪前整体画面宽度的比例,取值范围为 (0.0, 1.0]。默认值为 1.0。

    如果裁剪后计算得到的实际分辨率的宽或高不是偶数,会被自动调整为偶数。

    视频编码相关
    Encode

    音视频编码参数。

    参数名称类型必填示例值描述
    VideoWidthuint32否640输出画面的宽度。默认值为640,范围为 [2, 1920],必须是偶数。值不合法时,自动调整为默认值。自定义布局下此参数不生效,整体画面宽度以 canvas 中的 Width 为主。
    VideoHeightuint32否480输出画面的高度,范围为[2, 1920],必须是偶数,默认值为480。值不合法时,自动调整为默认值。自定义布局下此参数不生效,整体画面高度以 canvas 中的 Height 为主。
    VideoFpsuint32否15输出视频帧率。默认为 15,取值范围为 [1,60]。值不合法时,自动调整为默认值。
    VideoBitrateuint32否/输出视频码率。取值范围 [1,10000],单位为 Kbps,默认值为自适应。值不合法时,自动调整为默认值。当 VideoCodec=1 时,你必须设置此字段。
    VideoCodecuint32否0视频编码协议。默认值为 0,可以取 0 或 1。取 0 时使用 H.264,取 1 时使用 byteVC1 编码器。当 VideoCodec=1 时,你必须设置 VideoBitrate 字段。
    VideoGopuint32否4输出视频 GOP。默认为 4,取值范围为 [1,5],单位为秒。值不合法时,自动调整为默认值。
    AudioCodecuint32否0音频编码协议。默认值为 0,此时使用 aac 编码协议。目前只支持 aac。值不合法时,自动调整为默认值。
    AudioProfileuint32否0音频配置文件类型,在使用 aac 编码时生效。取值范围为 {0, 1, 2}。
  • 0 :采用 LC 规格;
  • 1: 采用 HE-V1 规格;
  • 2: 采用 HE-V2 规格。取 2 时,只支持输出流音频声道数为双声道。
  • 默认值为 0。
    AudioBitrateuint32否/音频码率。取值范围为 [32,192],单位为 Kbps,默认值为 64。值不合法时,自动调整为默认值。
    AudioSampleRateuint32否48000音频采样率。默认值 48000,取值为 [48000, 44100, 32000],单位是 Hz。值不合法时,自动调整为默认值。
    AudioChannelsuint32否2音频声道数。
  • 1:单声道
  • 2:双声道。
  • 默认值为 2。值不合法时,自动调整为默认值。

    自适应码率模式下,RTC 默认不会设置超高码率。如果订阅屏幕流,建议自行设置高码率。不同场景下设置码率等视频发布参数,请参考设置视频发布参数。

    Control
    参数名类型必填示例值描述
    MediaTypeuint32否0流的类型,用于全局控制订阅的流的类型。默认值为0,可以取0和1。0表示音视频,1表示纯音频,暂不支持纯视频。值不合法时,自动调整为默认值。
    FrameInterpolationModeuint32否0选择补帧模式。默认值为0,可以取0和1。0为补最后一帧,1为补黑帧。值不合法时会自动调整为默认值。自动布局模式下,没有补帧的逻辑。关于什么是补帧,参看补帧。
    MaxIdleTimeuint32否180任务的空闲超时时间,超过此时间后,任务自动终止。单位为秒。取值范围为 [10, 86400], 默认值为 180。
    MaxRecordTimeuint32否0(仅对录制有效)最大录制时长,单位为秒。默认值为 0。0 表示不限制录制时长。

    补帧:在音视频录制或合流转推时,视频的帧率通常是固定的。但是,因为网络波动或其他原因,实际帧率可能无法达到预设的帧率。此时,需要补帧以保持视频流畅。补最后一帧意味着补充的视频帧和中断前的最后一帧相同,此时看到的画面可能会有短暂静止;补黑帧意味着补充的视频帧是全黑的。

    录制相关
    RecordTask
    参数名类型描述
    StartTimeuint64任务开始的时间,为 Unix 时间戳,单位毫秒
    EndTimeuint64任务结束的时间,为 Unix 时间戳,单位毫秒。0 表示任务未结束
    Statusuint64任务状态:0: 未知异常状态
  • 1: 未开始
  • 2: 运行中
  • 3: 已结束
  • 4: 任务运行失败
  • StopReasonstring任务停止的原因:
  • 空:表示任务未结束
  • UnknownStopReason:未知停止原因
  • StopByAPI:用户主动通过 API 停止
  • StartTaskFailed:任务启动失败
  • IdleTimeOut:超过了最大空闲时间
  • RecordFileListarray of RecordFile录制生成的文件列表。
    RecordFile
    参数名称类型描述
    VidString文件在点播平台的唯一标识。你可以根据 vid 可以在点播平台上找到对应的文件。仅在你选择配置存储到 Vod 平台时,此参数有效。
    ObjectKeyString文件在对象存储平台中的完整路径,如abc/efg/123.mp4。仅在你选择配置存储到对象存储平台时,此参数有效。
    Durationuint64文件时长,单位为 ms。
    Sizeuint64文件大小,单位为 byte。
    StartTimeuint64文件开始录制的 UTC 时间,单位为 ms。
    StreamListArray of Stream录制文件中包含流的列表。
    VideoCodecString视频录制编码协议
    AudioCodecString音频录制编码器
    VideoWidthInt录制视频宽度,单位:px
    VideoHeightInt录制视频高度,单位:px
    Vod
    参数名称类型描述
    AccountIdString平台账号ID,例如:200000000。查看路径:控制台->账号管理->主账号信息。
    SpaceString用于存储录制结果的点播空间名。
    FileNameConfig
    参数名类型必填示例值描述
    Prefixarray of string否制定录制文件名的前缀,对TosConfig和CustomConfig生效,具体参看注释1
    PatternString否自定义录制文件名模式,具体参看自定义录制文件名。

    注释1:
    Prefix 为指定录制文件名的前缀,是一个由多个字符串组成的数组,在 Tos 以及支持 S3 的第三方存储平台上,可以实现指定文件夹的功能。如:fileNamePrefix = ["directory1","directory2"],将在录制文件名前加上前缀 "directory1/directory2/"。
    前缀长度(包括斜杠)不得超过 128 个字符。Prefix中不得出现斜杠、下划线、括号等符号字符。
    仅支持以下字符:

    StorageConfig
    参数名类型必填示例值描述
    Typeuint32否0存储平台类型
  • 0: Tos
  • 1: Vod
  • 2: 第三方存储平台(需支持S3协议)
  • 3: VeImageX(当前仅支持抽帧截图功能)
  • 默认值为 0。
    TosConfigTosConfig否无当 Type = 0 时,需正确设置 TosConfig 的值,否则请求会报错
    VodConfigVodConfig否无当 Type = 1 时,需正确设置 VodConfig 的值,否则请求会报错
    CustomConfigCustomConfig否无当 Type = 2时,需正确设置 CustomConfig 的值,否则请求会报错
    VeImageXConfigVeImageXConfig否无当 Type = 3时,需正确设置 VeImageXConfig 的值,否则请求会报错
    TosConfig
    参数名类型必填示例值描述
    AccountIdString是Your_AccountId平台账号ID,例如:200000000。查看路径:控制台->账号管理->主账号信息。
    Regionuint32否0不同存储平台支持的region不同,具体参看 Region对照表
    默认值为0。
    Bucketstring是Your_Bucket存储桶的名称。
    VodConfig
    参数名类型必填示例值描述
    AccountIdString是Your_AccountId平台账号ID,例如:200000000。查看路径:控制台->账号管理->主账号信息。
    Regionuint32否不同存储平台支持的region不同,具体参看 Region对照表
    默认值为0。
    SpaceString是Your_Space点播空间名称。
    CustomConfig
    参数名类型必填示例值描述
    Vendoruint32否0第三方云存储平台。
  • 0: Amazon S3
  • 1: 阿里云 OSS
  • 2:华为云 OBS
  • 3:腾讯云 COS
  • 4:七牛云 Kodo。
  • 默认值为 0。
    Regionuint32否不同存储平台支持的region不同,具体参看 Region对照表
    默认值为0。
    Bucketstring是无存储桶的名称。
    AccessKeystring是无第三方存储平台账号的密钥。需确保此账号对存储桶有写权限。不建议开启读权限
    SecretKeystring是无第三方存储平台账号的密钥
    VeImageXConfig
    参数名类型必填示例值描述
    AccountIdString是Your_AccountId平台账号ID,例如:200000000。查看路径:控制台->账号管理->主账号信息。
    Regionuint32否不同存储平台支持的region不同,具体参看 Region对照表
    默认值为0。
    ServiceIdString是Your_ServiceId服务 ID。
  • 你可以在 veImageX 控制台 服务管理页面,通过创建好的图片服务中获取服务 ID。
    你也可以通过 OpenAPI 的方式获取服务 ID,具体请参考获取所有服务信息。
  • Region 对照表
    Typeregion备注
    Tos
  • 0: cn-beijing
  • 1:cn-guangzhou
  • 2:cn-shanghai
  • Vod0: cn-north-1
    Amazon S30:us-east-1,美国东部(弗吉尼亚北部)
    1:us-east-2,美国东部(俄亥俄)
    2:us-west-1,美国西部(加利福尼亚北部)
    3:us-west-2,美国西部(俄勒冈)
    4:eu-west-1,欧洲(爱尔兰)
    5:eu-west-2,欧洲(伦敦)
    6:eu-west-3,欧洲(巴黎)
    7:eu-central-1,欧洲(法兰克福)
    8:ap-southeast-1,亚太地区(新加坡)
    9:ap-southeast-2,亚太地区(悉尼
    10:ap-northeast-1,亚太地区(东京)
    11:ap-northeast-2,亚太地区(首尔)
    12:sa-east-1,南美洲(圣保罗)
    13:ca-central-1,加拿大(中部)
    14:ap-south-1,亚太地区(孟买)
    15:cn-north-1,中国(北京)【AWS中国】
    16:cn-northwest-1,中国(宁夏)【AWS中国】
    17:us-gov-east-1,AWS GovCloud(美国东部)
    18:ap-east-1,亚太地区(香港)
    19:eu-south-1,欧洲(米兰)
    20:ap-northeast-3,亚太地区(大阪)
    21:eu-north-1,欧洲(斯德哥尔摩)
    22:me-south-1,中东(巴林)
    23:us-gov-west-1,AWS GovCloud(美国西部)
    24:af-south-1,非洲(开普敦)
    详情可参看 AWS 区域终端节点 、终端节点和配额和 国内终端节点
  • 7,9,15,16,17,18,19,22,23,24 对应地域暂不支持。
  • 阿里云OSS0:oss-cn-hangzhou
    1:oss-cn-shanghai
    2:oss-cn-qingdao
    3:oss-cn-beijing
    4:oss-cn-zhangjiakou
    5:oss-cn-huhehaote
    6:oss-cn-wulanchabu
    7:oss-cn-shenzhen
    8:oss-cn-heyuan
    9:oss-cn-guangzhou
    10:oss-cn-chengdu
    11:oss-cn-hongkong
    12:oss-us-west-1
    13:oss-us-east-1
    14:oss-ap-southeast-1
    15:oss-ap-southeast-2
    16:oss-ap-southeast-3
    17:oss-ap-southeast-5
    18:oss-ap-northeast-1
    19:oss-ap-south-1
    20:oss-eu-central-1
    21:oss-eu-west-1
    22:oss-me-east-1
    23:oss-ap-southeast-6
    详情可参看阿里云访问域名和数据中心
    16 对应地域暂不支持。
    华为云1:cn-north-4,华北-北京四
    3:cn-north-9,华北-乌兰察布一
    5:cn-east-3,华东-上海一
    6:cn-south-1,华南-广州
    11:cn-southwest-2,西南-贵阳一
    14:ap-southeast-1,中国-香港
    详情可参看 华为云地区和终端节点
    腾讯云1:ap-beijing,北京
    2:ap-nanjing,南京
    3:ap-shanghai,上海
    4:ap-guangzhou,广州
    5:ap-chengdu,成都
    6:ap-chongqing,重庆
    7:ap-shenzhen-fsi,深圳金融
    8:ap-shanghai-fsi,上海金融
    9:ap-beijing-fsi,北京金融
    10:ap-hongkong,中国香港
    详情可参看腾讯云地域和访问域名
    七牛云0:cn-east-1,华东-浙江
    1:cn-east-2,华东-浙江2
    2:cn-north-1,华北-河北
    3:cn-south-1,华南-广东
    详情可参看七牛云服务域名
    VeImageX0: cn-north-1
    FileFormatConfig
    参数名类型必填示例值描述
    FileFormatArray否["HLS"]存储文件格式。可取值为:MP4、HLS、FLV、MP3、 AAC、M4A。可同时选择多个存储文件格式,最终生成所选存储格式对应的多个文件。
    MP3、AAC和M4A仅在编码纯音频时有效。且在纯音频场景下,需将 Control.MediaType 的值设置为1。
    音视频流相关
    Stream

    流的参数

    参数名称类型必填示例值描述
    IndexUint32否0在自定义布局中,使用 Index 对流进行标志。后续在 Layout.regions.StreamIndex 中,你需要使用 Index 指定对应流的布局设置。
    UserIdString是Your_UserId用户Id,表示这个流所属的用户。
    StreamTypeUint32否0流的类型,值可以取0或1,默认值为0。0表示普通音视频流,1表示屏幕流。
    Streams

    指定流的数量及属性参数。

    参数名称类型必填示例值描述
    StreamListarray of Stream否/由Stream组成的列表,可以为空。为空时,表示订阅房间内所有流。在一个 StreamList 中,Stream.Index 不能重复。
    抽帧截图相关
    ImageConfig

    截图产生的图片的相关配置。

    参数名类型必填示例值描述
    Formatuint32否0图片的格式。值可取 0 或 1,默认为 0。选择 0 时,图片格式为 .jpeg;选择 1 时,图片格式为 .png。默认值为 0。值不合法时,自动调整为默认值。
    Widthuint32否0实际使用视频帧的宽度,单位为 px,取值范围为 [0, 1920]。默认值为 0,此时,和视频流的实际宽度相同。值不合法时,自动调整为默认值。
    Heightuint32否0实际使用视频帧的高度,单位为 px,取值范围为 [0, 1080],默认值为 0,此时,和视频流的实际高度相同。值不合法时,自动调整为默认值。
    Intervaluint32否2相邻截图之间的间隔时间,单位为 秒,取值范围为 [1, 600],默认值为 2。值不合法时,自动调整为默认值。
    切片相关
    Control(for segment)
    参数名称类型必选示例值描述
    Alignbool否false是否开启切片对齐功能。参看注释1。
    Mixedbool否false是否开启合流切片功能。参看注释2。
    RedundantDurationuint32否2冗余切片时长,单位为秒
    IgnoreSilencebool否false是否忽略静音切片
    1. Align 是音频切片对齐功能的开关,默认为 False。你可以使用音频切片对齐功能,对齐各个用户音频切片的开始和结束时刻。

      • 当 Align=False 时,关闭音频切片对齐。在某个切片周期中,如果用户有发送音频流的行为,即生成音频切片。如果用户在切片的周期中,有部分时间未发布音频,返回的音频切片时长会小于切片周期。各个用户音频切片开始时间不一定一致。
      • 当 Align=True 时,开启音频切片对齐。在某个切片周期中,如果用户有发送音频流的行为,即生成音频切片。切片长度和切片周期相等,且各个用户音频切片开始的时间一致。如果用户在切片的周期中,有部分时间未发布音频,切片长度不变,这段时间呈现静音帧。如果用户在某个切片周期中始终没有发布音频,则不生成音频切片。
    2. Mixed 是音频切片合流功能的开关。默认为 False。

      • 当 Mixed=False 时,只会对 TargetStreams 中指定的音频流分别切片。
      • 当 Mixed=True 时,除了会对 TargetStreams 中指定的音频流分别切片,还会对指定的音频流进行混音,生成合流切片,合流切片对应的用户名为 mixed。此时,任务创建后,不管是否有人上麦,会持续回调混音切片。

      不同平台的回调参看:

    操作Android APIiOS APIWindows API
    本地麦克风录制和远端所有用户混音后的音频数据回调onMixedAudioFrameonMixedAudioFrame:onMixedAudioFrame