
录制(Recording)
功能捕获和保存会议中的视频、音频和屏幕内容以供日后播放或存档的能力
什么是录制?
视频会议中的录制是捕获音频、视频、屏幕共享和其他会议内容并将其保存到文件中以供日后查看、共享或存档的能力。录制允许无法参加的参与者补上内容,能够回顾重要讨论,并作为培训、合规或法律目的的文档。
现代视频会议平台提供本地录制(保存到用户设备)和云录制(保存到服务器),具有各种质量选项、转录功能和自动化处理能力。
录制类型
本地录制
直接保存到用户计算机的录制:
- 客户端处理:使用设备 CPU 和存储
- 完全控制:用户可以立即访问文件
- 无上传延迟:无需等待云处理
- 存储限制:受设备存储容量限制
- 隐私:数据从不离开用户设备
- 质量:可以以原始质量录制而无压缩
云录制
在远程服务器上处理和存储的录制:
- 服务器端处理:不影响客户端设备性能
- 自动存储:保存到云帐户,可从任何地方访问
- 转录:自动语音转文本转录
- 处理:自动修剪、章节、说话人识别
- 共享:使用链接轻松共享,无需大文件传输
- 保留政策:基于组织规则的自动删除
录制模式
画廊视图录制
以网格布局录制所有参与者:
- 平等可见性:所有参与者始终可见
- 大文件:由于多个视频流,录制文件大小更大
- 最适合:小型会议、小组讨论、课堂
演讲者视图录制
在主视图中录制活跃演讲者,其他人的缩略图:
- 动态布局:焦点跟随活跃演讲者
- 较小文件:强调一个大流,减小文件大小
- 最适合:演示、讲座、网络研讨会
分离流录制
将每个参与者录制为单独的文件:
- 后期制作灵活性:在视频编辑软件中编辑和混合
- 最高质量:每个流都是原始质量
- 存储密集:多个大文件
- 最适合:专业制作、播客
使用 MediaRecorder API 实现
本地录制实现
MediaRecorder API 启用基于浏览器的录制:
// 初始化 MediaRecorder
let mediaRecorder;
let recordedChunks = [];
function startRecording(stream) {
// 创建 MediaRecorder 实例
const options = {
mimeType: 'video/webm;codecs=vp9,opus',
videoBitsPerSecond: 2500000 // 2.5 Mbps
};
mediaRecorder = new MediaRecorder(stream, options);
// 收集数据块
mediaRecorder.ondataavailable = (event) => {
if (event.data.size > 0) {
recordedChunks.push(event.data);
}
};
// 处理录制停止
mediaRecorder.onstop = () => {
const blob = new Blob(recordedChunks, { type: 'video/webm' });
const url = URL.createObjectURL(blob);
// 下载文件
const a = document.createElement('a');
a.href = url;
a.download = `recording-${Date.now()}.webm`;
a.click();
// 清理
recordedChunks = [];
};
// 开始录制
mediaRecorder.start(1000); // 每 1 秒收集一次数据
console.log('录制已开始');
}
function stopRecording() {
if (mediaRecorder && mediaRecorder.state !== 'inactive') {
mediaRecorder.stop();
console.log('录制已停止');
}
}录制组合流
同时录制摄像头和屏幕共享:
// 组合多个流
function combineStreams(cameraStream, screenStream) {
const combinedStream = new MediaStream();
// 添加摄像头视频或屏幕视频(以活跃的为准)
const videoTrack = screenStream?.getVideoTracks()[0] ||
cameraStream?.getVideoTracks()[0];
if (videoTrack) combinedStream.addTrack(videoTrack);
// 从摄像头添加音频
const audioTrack = cameraStream?.getAudioTracks()[0];
if (audioTrack) combinedStream.addTrack(audioTrack);
// 从屏幕添加系统音频(如果可用)
const systemAudio = screenStream?.getAudioTracks()[0];
if (systemAudio) combinedStream.addTrack(systemAudio);
return combinedStream;
}
const recordStream = combineStreams(cameraStream, screenShareStream);
startRecording(recordStream);云录制架构
服务器端录制使用媒体服务器捕获流:
// 服务器端:初始化录制会话
function startCloudRecording(meetingId, layout) {
const recorder = {
id: generateId(),
meetingId: meetingId,
layout: layout, // 'gallery', 'speaker', 'separate'
startTime: Date.now(),
status: 'recording',
outputPath: `/recordings/${meetingId}/${Date.now()}.mp4`
};
// 创建媒体服务器录制会话
const mediaServerRecording = mediaServer.startRecording({
meetingId: meetingId,
streams: getMeetingStreams(meetingId),
layout: layout,
output: recorder.outputPath,
codec: 'h264',
resolution: '1920x1080',
framerate: 30
});
// 存储录制元数据
recordings.set(recorder.id, recorder);
return recorder;
}录制权限和同意
法律要求
许多司法管辖区在录制前需要同意:
- 单方同意:只有一名参与者(通常是主持人)需要知道正在录制(较少的司法管辖区)
- 双方同意:所有参与者必须同意录制(加利福尼亚州、佛罗里达州等)
- GDPR:欧盟需要明确同意和清晰通知
- 特定行业:HIPAA(医疗保健)、FERPA(教育)有额外要求
同意通知
通知参与者的最佳实践:
- 会议前:在日历邀请中指出会议将被录制
- 视觉指示器:在会议期间醒目地显示录制图标/徽章
- 音频公告:加入时"此会议正在录制"
- 同意对话框:要求参与者在加入录制会议之前接受
- 退出选项:如果参与者不同意,允许他们离开
// 显示录制同意对话框
function showRecordingConsent() {
return new Promise((resolve) => {
showDialog({
title: '会议录制',
message: '此会议将被录制。通过加入,您同意被录制。',
buttons: [
{
label: '我同意',
action: () => resolve(true)
},
{
label: '离开会议',
action: () => {
leaveCall();
resolve(false);
}
}
]
});
});
}录制功能(2025)
AI 驱动的增强
现代录制平台提供智能功能:
- 自动转录:实时语音转文本,带说话人识别
- 亮点检测:AI 识别关键时刻、行动项目、决定
- 智能章节:按主题自动分段录制
- 噪音抑制:在后期处理中去除背景噪音
- 自动编辑:删除静音停顿,生成摘要片段
- 可搜索内容:在转录中搜索以查找特定时刻
质量和格式选项
- 分辨率:720p、1080p 或 4K 录制
- 帧率:15fps(低带宽),30fps(标准),60fps(流畅运动)
- 音频质量:64kbps(语音),128kbps(音乐/高保真)
- 文件格式:MP4(最兼容),WebM,MKV
- 编解码器:H.264(兼容性),H.265(效率),VP9(开放)
录制后处理
- 修剪:删除会议前和会议后的聊天
- 品牌推广:添加带有公司徽标的片头/片尾幻灯片
- 字幕:嵌入或附加 SRT/VTT 字幕文件
- 多种格式:生成视频、纯音频和转录版本
- 压缩:优化文件大小以进行存储/共享
存储和保留
存储选项
- 平台云存储:由视频会议提供商存储(Zoom、Teams 等)
- 自定义云存储:上传到 AWS S3、Google Cloud Storage、Azure Blob
- LMS 集成:自动上传到 Canvas、Moodle、Blackboard
- 本地存储:保存到用户的设备或网络驱动器
保留政策
录制生命周期的自动化管理:
- 自动删除:在 N 天后删除录制(30、60、90 天常见)
- 归档:将旧录制移至更便宜的冷存储
- 法律保留:为诉讼/合规无限期保留录制
- 基于权限:根据会议类型或参与者的不同保留规则
访问控制和共享
权限
- 仅所有者:只有会议主持人可以访问录制
- 参与者:所有参与者自动获得访问权限
- 组织:组织中拥有链接的任何人都可以查看
- 公开:拥有链接的任何人都可以查看(用于网络研讨会、公共活动)
- 密码保护:需要密码才能查看录制
共享方法
- 直接链接:共享云托管录制的 URL
- 电子邮件分发:自动向所有参与者发送带链接的电子邮件
- 嵌入代码:在网站或 LMS 中嵌入播放器
- 下载:允许用户下载 MP4/WebM 文件
常见用例
- 教育:为缺席的学生录制讲座,创建课程内容库
- 培训:入职视频、合规培训、技能发展
- 文档:会议记录、决策记录、项目审查
- 合规:法律取证、财务咨询会议、医疗保健咨询
- 内容创作:播客、网络研讨会、营销内容
- 内部沟通:公司全体会议、季度业务审查
最佳实践
录制前
- 通知参与者:在开始录制前始终通知
- 获得同意:确保符合当地法律
- 测试设备:在重要会议前验证录制是否工作
- 选择布局:选择适当的视图(演讲者/画廊)
录制期间
- 视觉指示器:确保录制指示器可见
- 避免中断:不要多次停止/启动录制
- 监控存储:确保有足够的磁盘空间(本地)或配额(云)
录制后
- 审查质量:快速审查以确保音频/视频正确捕获
- 添加元数据:添加标题、描述、标签以便发现
- 及时共享:在内容仍相关时发送给参与者
- 管理存储:定期归档或删除旧录制
平台示例
- Zoom:本地和云录制,自动转录,每个参与者的单独音频文件
- Microsoft Teams:云录制到 OneDrive/SharePoint,自动转录,Stream 集成
- Google Meet:云录制到 Google Drive(Workspace 帐户),自动保存到组织者
- Webex:本地和云录制,自动亮点,可搜索转录
- Loom:专门用于快速异步视频录制,即时共享