一个任务,四种能力
task_type 是按位组合的,四个独立能力各占一位,想同时要哪几个就相加:
所以
3 = 录像+合流,9 = 录像+直播,15 = 四种全开。
有些任务会自动启动
这是 SMeeting 与底层 SRTC 最不一样的地方:不是所有录制都要你手动调 start。 第一个人进会时,服务端会按会议自身的配置决定要不要起任务:
若部署时开了直播能力,上面每一行都会再加
8(直播流)—— 例如普通会议开了
auto_record 实际起的是 9。这个开关由部署决定,不由接口控制,不确定的话问一下我们。
自动启动用的布局是会议自己的 layout_data,没配就是 auto。
所以:创建会议时把 auto_record 设成 true,就不用在业务里管录制的启停了。
手动调 start 适用于「会议中途才决定要录」这类场景。
同一场会议重复调 start 是更新,不是新建
同一个会议对同一类型只有一个进行中的任务。用不同参数再调一次start,改的是现有任务
(例如换布局),不会多出一个任务,也不会产生第二个录像文件。
录像和直播的关键区别
取回放地址请等
mcu_record_done 回调,不要在任务一结束就取 —— 那时转码往往还没完成。画面怎么排
layout_data.layout 决定画面布局。auto 会按在线人数自动选宫格,绝大多数场景够用;
需要固定画面时才指定具体布局:
注意
grids_N 的 N 不连续(没有 7、10、11),传不支持的值会报错。
不想每次都传布局,就把统一的水印、标签、布局策略配进录制配置。
指定谁出现在哪个格子
layout_data.div_list 用来把特定用户钉到特定格子,不指定就按进会顺序自动填充。
cells[].idx是格子序号,顺序等同 HTML 表格里<td>的排列(从左到右、从上到下)uids留空表示「剩余在线用户轮流出现在这些格子里」(大轮询);填多个则是这几个人在这些格子里轮询(小轮询)polling_dur是轮询间隔秒数,0表示不轮询cells[].bind_share为true时该格子优先绑定会中的共享屏幕流
cells 填主持人
user_id,给小格子的 cells 留空 uids 并设 polling_dur。
无人时的行为
layout_data.nobody_text 决定会议里没人时怎么办:
- 留空 → 暂停录制(推荐,避免录出大段黑屏)
- 填了文本 → 继续录制并显示该文本
水印与成员名标签
watermark.type:0默认、1无、2单排、3多排。watermark.text留空时用会议标题作为水印内容- 成员名标签的位置用字母组合表示:
L左、R右、T上、B下,可组合(LB= 左下)。留空表示不显示标签 - 字号、颜色、轮廓都留默认值即可,只在有明确视觉要求时才指定
完整时序
计费提示
录制、录音、直播都是持续产生费用的服务端能力。auto_record 开着就意味着每一场会议都在录 ——
上线前确认这是你要的。手动启动的任务,业务侧最好在会议结束流程里显式调 stop。