WebRTC API

MediaRecorder()

给定一个要录制 MediaStream ,创建一个新的 MediaRecorder 对象。可用的选项包括设置容器的 MIME 类型(例如 “video/webm” 或 “video/mp4” ),以及音频和视频轨道的比特率,或设置单个总比特率。

简单来说就是使用这个方法并传入MediaStream,可以按指定 mimeType(容器/编码格式)和比特率等选项对音视频进行编码并分段输出(通过 dataavailable 事件得到 Blob chunks),最终组合成文件(Blob -> 下载 / 上传 / MediaSource 播放)。

MIME type(媒体类型):像 "video/webm""video/mp4" 的字符串,它告诉浏览器我们期望的容器/编码组合。

Blob:二进制大对象,MediaRecorderdataavailable 会返回 Blob(通常是 container format 的一段数据,例如 webm chunk)。用途:URL.createObjectURL(blob) 预览,或 blob.arrayBuffer() 上传 / 存盘。

MediaStreamTrack()

MediaStreamTrack 表示一个单一的媒体轨道:音频轨道(microphone)或视频轨道(camera / screen)。它是 MediaStream 的基本单元:一个 MediaStream 通常由若干 MediaStreamTrack(audio/video)组合而成。

适配录制与屏幕共享

功能:多流录制,加密,压缩

调用流程

用户调用

MediaRecorderAPI.setupRecorder()

EncryptionRecorder.setupRecorder()

#buildRecorderOptions() // 参数验证

AudioMixer.setupAudioGraph() // 混音处理

BaseRecorder.setupRecorder()

new MediaRecorder(stream, options)

WebRTC MediaRecorder API