混流录制
功能描述
云端录制支持如下两种录制模式:
- 单流录制:分别录制房间内每条音视频流、白板,每条音视频流都会生成对应的音视频文件,所有白板会生成一个视频文件。
- 混流录制:房间内所有音视频流、白板混合录制成一个音视频文件。
本文介绍如何通过使用云端录制 API 进行混流录制。
实现方法
在调用 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 |
请求示例
Content-type
为 application/json;charset=utf-8
,StartRecord 请求包体内容如下:
Untitled
{
"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"
}
}
1