云端录制
  • 产品简介
    • 概述
    • 发布日志
    • 计费说明
  • 快速开始
    • 实现云端录制
  • 基础功能
  • 服务端 API v2
  • 常见问题

混流录制

更新时间:2021-12-10 15:29

1 功能描述

云端录制支持如下两种录制模式:

  • 单流录制:分别录制房间内每条音视频流、白板,每条音视频流都会生成对应的音视频文件,所有白板会生成一个视频文件。
  • 混流录制:房间内所有音视频流、白板混合录制成一个音视频文件。

本文介绍如何通过使用云端录制 API 进行混流录制。

2 实现方法

在调用 StartRecord 方法时,将 RecordMode 参数设为 “2” 即可启用混流录制模式。

通过将 OutputFileFormat 参数设为 “mp4”、“flv” 或 “hls” 可以生成对应格式的视频文件。假设 OutputFileFormat 设为 “mp4” ,根据录制内容的不同,生成的文件如下:

录制内容 参数设置 录制生成文件
仅录制音频 StreamType 设为 1 生成一个 mp4 文件,mp4 文件内存储该房间所有 streamID 的音频数据。
仅录制视频 StreamType 设为 2 生成一个 mp4 文件,mp4 文件内存储该房间所有 streamID 和所有白板的视频数据。
录制音视频(合并) StreamType 设为 3 生成一个 mp4 文件,mp4 文件内存储该房间所有 streamID 的音视频数据和所有白板的视频数据。
录制音视频(分离) StreamType 设为 4 生成一个 mp4 文件和一个 aac 文件,mp4 文件内存储该房间所有 streamID 和所有白板的视频数据,aac 文件内存储该房间所有 streamID 的音频数据。

混流录制模式下,需要通过 MixOutputVideoConfig 参数设置输出视频的分辨率、帧率、码率等属性,建议参考下面的对照表进行设置。

  • 分辨率并不是越高越好,建议不要超过原始视频流的分辨率,否则最终录制文件可能会变模糊。
  • 该分辨率为混流模式下视频画布的分辨率,其宽高比无需与原始视频流一致。输出的画面中用户画面的宽高比取决于视频画布的宽高比以及混流布局方式。
  • 对照表中的基准码率适用于通信场景。直播场景下通常需要较大码率来提升视频质量,直播码率为基准码率的两倍。
分辨率(宽 * 高) 帧率 (fps) 基准码率(bps,适用于通信) 直播码率(bps,适用于直播)
160 * 120 15 65000 130000
120 * 120 15 50000 100000
320 * 180 15 140000 280000
180 * 180 15 100000 200000
240 * 180 15 120000 240000
320 * 240 15 200000 400000
240 * 240 15 140000 280000
424 * 240 15 220000 440000
640 * 360 15 400000 800000
360 * 360 15 260000 520000
640 * 360 30 600000 1200000
360 * 360 30 400000 800000
480 * 360 15 320000 640000
480 * 360 30 490000 980000
640 * 480 15 500000 1000000
480 * 480 15 400000 800000
640 * 480 30 750000 1500000
480 * 480 30 600000 1200000
848 * 480 15 610000 1220000
848 * 480 30 930000 1860000
640 * 480 10 400000 800000
1280 * 720 15 1130000 2260000
1280 * 720 30 1710000 3420000
960 * 720 15 910000 1820000
960 * 720 30 1380000 2760000
1920 * 1080 15 2080000 4160000
1920 * 1080 30 3150000 6300000

3 请求示例

Content-type 为 application/json;charset=utf-8,start 请求包体内容如下:

{
    "RoomId": "xxxx",
    "RecordInputParams": {
        "RecordMode": 2,
        "StreamType": 3,
        "MaxIdleTime": 60,
        "MixConfig": {
            "MixMode": 2,
            "MixOutputStreamId": "mix",
            "MixOutputVideoConfig": {
                    "Width": 1280, 
                    "Height": 720, 
                    "Fps": 15, 
                    "Bitrate": 1130000
            }
        }
    },
    "RecordOutputParams": {
        "OutputFileFormat": "mp4",
        "OutputFolder": "record/"
    },
    "StorageParams": {
        "Vendor": 2,
        "Region": "oss-xxxx",
        "Bucket": "xxxx",
        "AccessKeyId": "xxxx",
        "AccessKeySecret": "xxxx"
    }
}

相关文档