启动合流任务
功能介绍
调用此接口创建合流转码任务。
支持纯音频录制和音视频录制:
- 
    
纯音频录制
encode_template填audio_only,音频合流会动态选择最大三方的声音。
layout_template、layout_panes以及其他视频相关参数都不填,填就忽略。
 - 
    
音视频录制(包括共享桌面)
encode_template非audio_only,layout_template、layout_panes必须非空。
音频合流会动态选择最大三方的声音。
API触发合流录制流名规则:{jobtype}_{jobid}_{roomid},其中jobtype取值为'm'代表合流录制。
 
URI
POST /v2/apps/{app_id}/mix-stream-jobs
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        app_id  | 
      
        是  | 
      
        String  | 
      
        应用id  | 
     
请求参数
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        Content-Type  | 
      
        是  | 
      
        String  | 
      
        内容类型。取值application/json。  | 
     
| 
        X-Auth-Token  | 
      
        否  | 
      
        String  | 
      
        用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。  | 
     
| 
        Authorization  | 
      
        否  | 
      
        String  | 
      
        使用AK/SK方式认证时必选,携带的鉴权信息。  | 
     
| 
        X-Sdk-Date  | 
      
        否  | 
      
        String  | 
      
        使用AK/SK方式认证时必选,请求的发生时间。  | 
     
| 
        X-Project-Id  | 
      
        否  | 
      
        String  | 
      
        使用AK/SK方式认证时必选,携带项目ID信息。  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        mix_param  | 
      
        是  | 
      
        MixParam object  | 
      
        合流参数  | 
     
| 
        record_param  | 
      
        否  | 
      
        RecordParam object  | 
      
        录制参数  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        room_id  | 
      
        是  | 
      
        String  | 
      
        房间id  | 
     
| 
        encode_template  | 
      
        是  | 
      
        String  | 
      
        输出编码模板名称 
  | 
     
| 
        max_idle_time  | 
      
        否  | 
      
        Integer  | 
      
        最长空闲频道时间。 取值范围:[5,43200],默认值为30。 单位:秒。 如果频道内无连麦方的状态持续超过该时间,录制程序会自动退出。退出后,再次调用start请求,会产生新的录制任务。 连麦方指:joiner或者publisher的用户。  | 
     
| 
        layout_template  | 
      
        否  | 
      
        String  | 
      
        视频布局模板编号,不混视频的时候,不需要带。 
  | 
     
| 
        default_user_background_image  | 
      
        否  | 
      
        String  | 
      
        默认用户背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。  | 
     
| 
        screen_background_image  | 
      
        否  | 
      
        String  | 
      
        共享屏幕的背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。 在一大多小的布局场景下,无论大窗是显示非指定用户(屏幕共享人的桌面)还是指定用户的共享桌面,都通过该字段指定背景图。  | 
     
| 
        background_image  | 
      
        否  | 
      
        String  | 
      
        画布背景图地址,使用背景图功能需先上传图片到obs,填写此字段要求格式为s3://bucket/object,其中bucket和object指图片所在的桶和路径,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。  | 
     
| 
        layout_panes  | 
      
        否  | 
      
        Array of MixLayoutPane objects  | 
      
        需要混流的视频列表。若不需要混流视频,则可不传递该参数。 nine_grids_view模板不需要填写本字段。  | 
     
| 
        user_background_images  | 
      
        否  | 
      
        Array of MixUserBackgroundImage objects  | 
      
        指定用户背景图,优先级大于default_user_background_image  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        id  | 
      
        否  | 
      
        Integer  | 
      
        窗口id,从1开始编号  | 
     
| 
        user_id  | 
      
        否  | 
      
        String  | 
      
        加入房间的用户id  | 
     
| 
        video_type  | 
      
        否  | 
      
        String  | 
      
        标识视频流的类型,可选摄像头流或者屏幕分享流。 
 默认为CAMERASTREAM。  | 
     
| 
        x  | 
      
        否  | 
      
        Float  | 
      
        坐标x,归一化百分比,画布上该画面左上角的横坐标的相对值,范围是 [0.0,1.0]。从左到右布局,0.0在最左端,1.0在最右端,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        y  | 
      
        否  | 
      
        Float  | 
      
        坐标y,归一化百分比,画布上该画面左上角的纵坐标的相对值,范围是 [0.0,1.0]。从上到下布局,0.0在最上端,1.0在最下端,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        width  | 
      
        否  | 
      
        Float  | 
      
        窗格宽,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        height  | 
      
        否  | 
      
        Float  | 
      
        窗格高,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        zorder  | 
      
        否  | 
      
        Integer  | 
      
        叠放顺序,0为最底层,1层在0层之上,以此类推,最大支持25层,自定义布局场景下填写本字段。  | 
     
| 
        crop_mode  | 
      
        否  | 
      
        String  | 
      
        裁剪模式,自定义布局场景下填写本字段,支持两种模式: 
  | 
     
| 
        filling_policy  | 
      
        否  | 
      
        String  | 
      
        填充策略,仅限屏幕共享模板(包括screen_share_right、screen_share_left)场景下填写本字段,支持两种模式: 
  | 
     
响应参数
状态码:201
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        X-request-Id  | 
      
        String  | 
      
        此字段携带请求ID号,以便任务跟踪。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        job_id  | 
      
        String  | 
      
        任务编号,可以用于修改、查看和停止合流任务  | 
     
| 
        stream_name  | 
      
        String  | 
      
        流名  | 
     
| 
        app_id  | 
      
        String  | 
      
        应用id  | 
     
| 
        room_id  | 
      
        String  | 
      
        房间id  | 
     
| 
        mix_param  | 
      
        MixParam object  | 
      
        合流参数  | 
     
| 
        record_param  | 
      
        RecordParam object  | 
      
        录制参数  | 
     
| 
        create_time  | 
      
        String  | 
      
        任务创建的时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC  | 
     
| 
        update_time  | 
      
        String  | 
      
        任务中的布局更新的时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC  | 
     
| 
        state  | 
      
        String  | 
      
        任务状态。 
  | 
     
| 
        stop_reason  | 
      
        String  | 
      
        任务结束原因 
  | 
     
| 
        description  | 
      
        String  | 
      
        状态描述,对state字段的一些补充说明,可用于人工查阅。  | 
     
| 
        start_time  | 
      
        String  | 
      
        任务开始时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC  | 
     
| 
        stop_time  | 
      
        String  | 
      
        任务结束时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        room_id  | 
      
        String  | 
      
        房间id  | 
     
| 
        encode_template  | 
      
        String  | 
      
        输出编码模板名称 
  | 
     
| 
        max_idle_time  | 
      
        Integer  | 
      
        最长空闲频道时间。 取值范围:[5,43200],默认值为30。 单位:秒。 如果频道内无连麦方的状态持续超过该时间,录制程序会自动退出。退出后,再次调用start请求,会产生新的录制任务。 连麦方指:joiner或者publisher的用户。  | 
     
| 
        layout_template  | 
      
        String  | 
      
        视频布局模板编号,不混视频的时候,不需要带。 
  | 
     
| 
        default_user_background_image  | 
      
        String  | 
      
        默认用户背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。  | 
     
| 
        screen_background_image  | 
      
        String  | 
      
        共享屏幕的背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。 在一大多小的布局场景下,无论大窗是显示非指定用户(屏幕共享人的桌面)还是指定用户的共享桌面,都通过该字段指定背景图。  | 
     
| 
        background_image  | 
      
        String  | 
      
        画布背景图地址,使用背景图功能需先上传图片到obs,填写此字段要求格式为s3://bucket/object,其中bucket和object指图片所在的桶和路径,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。  | 
     
| 
        layout_panes  | 
      
        Array of MixLayoutPane objects  | 
      
        需要混流的视频列表。若不需要混流视频,则可不传递该参数。 nine_grids_view模板不需要填写本字段。  | 
     
| 
        user_background_images  | 
      
        Array of MixUserBackgroundImage objects  | 
      
        指定用户背景图,优先级大于default_user_background_image  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        id  | 
      
        Integer  | 
      
        窗口id,从1开始编号  | 
     
| 
        user_id  | 
      
        String  | 
      
        加入房间的用户id  | 
     
| 
        video_type  | 
      
        String  | 
      
        标识视频流的类型,可选摄像头流或者屏幕分享流。 
 默认为CAMERASTREAM。  | 
     
| 
        x  | 
      
        Float  | 
      
        坐标x,归一化百分比,画布上该画面左上角的横坐标的相对值,范围是 [0.0,1.0]。从左到右布局,0.0在最左端,1.0在最右端,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        y  | 
      
        Float  | 
      
        坐标y,归一化百分比,画布上该画面左上角的纵坐标的相对值,范围是 [0.0,1.0]。从上到下布局,0.0在最上端,1.0在最下端,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        width  | 
      
        Float  | 
      
        窗格宽,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        height  | 
      
        Float  | 
      
        窗格高,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。  | 
     
| 
        zorder  | 
      
        Integer  | 
      
        叠放顺序,0为最底层,1层在0层之上,以此类推,最大支持25层,自定义布局场景下填写本字段。  | 
     
| 
        crop_mode  | 
      
        String  | 
      
        裁剪模式,自定义布局场景下填写本字段,支持两种模式: 
  | 
     
| 
        filling_policy  | 
      
        String  | 
      
        填充策略,仅限屏幕共享模板(包括screen_share_right、screen_share_left)场景下填写本字段,支持两种模式: 
  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        user_id  | 
      
        String  | 
      
        需要设置背景图的用户ID  | 
     
| 
        image_uri  | 
      
        String  | 
      
        需要设置背景图的地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg  | 
     
状态码:400
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        X-request-Id  | 
      
        String  | 
      
        此字段携带请求ID号,以便任务跟踪。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        错误码  | 
     
| 
        error_msg  | 
      
        String  | 
      
        错误描述  | 
     
状态码:404
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        X-request-Id  | 
      
        String  | 
      
        此字段携带请求ID号,以便任务跟踪。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        错误码  | 
     
| 
        error_msg  | 
      
        String  | 
      
        错误描述  | 
     
状态码:500
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        X-request-Id  | 
      
        String  | 
      
        此字段携带请求ID号,以便任务跟踪。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        错误码  | 
     
| 
        error_msg  | 
      
        String  | 
      
        错误描述  | 
     
请求示例
- 
    
创建一个合流录制任务。房间号:room001,输出流:720p,帧率:15,码率:2.26Mbps,视频布局为九宫格,最长空闲频道时间:30秒,录制规则id:5f5e172b9016ed5b0961a43
POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs { "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "nine_grids_view" }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" } } - 
    
创建一个合流录制任务,视频布局为屏幕共享模板,主视图在右边,主视图显示共享屏幕
POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs { "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "screen_share_right", "layout_panes" : [ { "id" : 1, "user_id" : "", "video_type" : "SCREENSTREAM", "filling_policy" : "SHARED_SCREEN" } ] }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" } } - 
    
创建一个合流录制任务,视频布局为屏幕共享模板,主视图在右边,主视图显示摄像头
POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs { "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "screen_share_right", "layout_panes" : [ { "id" : 1, "user_id" : "user1", "video_type" : "CAMERASTREAM", "filling_policy" : "FIXED_USER" } ] }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" } } - 
    
创建一个合流录制任务,视频布局为自定义布局
POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs { "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "custom", "layout_panes" : [ { "id" : 1, "user_id" : "user1", "video_type" : "CAMERASTREAM", "x" : 0, "y" : 0, "width" : 0.666, "height" : 0.333, "crop_mode" : "KEEP_RATIO_CROP" }, { "id" : 2, "user_id" : "user2", "video_type" : "CAMERASTREAM", "x" : 0.666, "y" : 0, "width" : 0.333, "height" : 0.666, "crop_mode" : "KEEP_RATIO_CROP" } ] }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" } } 
响应示例
状态码:201
任务创建成功,返回job的概要信息
{
  "job_id" : "607824b4fa163e19fe301cc817dda855",
  "stream_name" : "m_607824b4fa163e19fe301cc817dda855_gigu",
  "app_id" : "123456789abcdefghijklmno",
  "room_id" : "gigu",
  "mix_param" : {
    "room_id" : "gigu",
    "encode_template" : "1920x1080_30_4620",
    "max_idle_time" : 0,
    "layout_template" : "nine_grids_view"
  },
  "record_param" : {
    "record_rule_id" : "5f5e172b9016ed5b0961a43"
  },
  "create_time" : "2021-04-16T16:22:44Z",
  "update_time" : "2021-04-16T16:22:44Z",
  "state" : "INIT",
  "start_time" : "2021-04-16T16:22:44Z",
  "stop_time" : "0001-01-01T00:00:00Z"
}
  状态码:400
创建合流任务失败,语义有误,当前请求无法被服务器理解,或参数有误
{
  "error_code" : "RTC.00001003",
  "error_msg" : "InvalidParameterValue"
}
  状态码:404
app编号不存在
{
  "error_code" : "RTC.00001003",
  "error_msg" : "InvalidParameterValue"
}
  状态码:500
创建合流任务失败,服务器错误
{
  "error_code" : "RTC.00002xxx",
  "error_msg" : "InternalError"
}
 状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        201  | 
      
        任务创建成功,返回job的概要信息  | 
     
| 
        400  | 
      
        创建合流任务失败,语义有误,当前请求无法被服务器理解,或参数有误  | 
     
| 
        404  | 
      
        app编号不存在  | 
     
| 
        500  | 
      
        创建合流任务失败,服务器错误  | 
     
错误码
请参见错误码。