feat(ios): 添加远端视频录制功能并优化信令连接稳定性
- 新增 VideoRecorder 组件,支持 WebRTC 和自编码两种模式录制远端视频为 MP4 - 优化 SignalingClient 连接管理,修复 WebSocket 握手前 receive 导致的断开问题 - 重构控制面板 UI,支持统计信息折叠展开和录制控制按钮 - 添加录制状态指示、保存路径提示及断开自动取消录制逻辑 - 更新项目配置和文档,补充录制功能说明
This commit is contained in:
@@ -47,8 +47,20 @@ web_rtc_controller_ios/
|
||||
- 导航键:返回 / 主页 / 多任务(Android keyCode 4 / 3 / 187)
|
||||
- 分辨率切换:原始画质 / 1080P / 720P / 480P
|
||||
- 串流模式切换:WebRTC(SRTP 视频轨)/ 自编码(DataChannel H.264 裸流 + VideoToolbox 硬解)
|
||||
- 远端视频录制:连接后可将收到的画面录制为 MP4(两种串流模式均支持)
|
||||
- 实时统计:分辨率、帧率、码率、RTT、链路类型(P2P/TURN)、编解码器等
|
||||
|
||||
## 录制说明
|
||||
|
||||
控制面板顶部「录制 / 停止」按钮用于录制远端画面,行为对齐 Android 端 `VideoRecorder`:
|
||||
|
||||
- **WebRTC 模式**:`WebRTCClient` 把远端视频轨 fan-out 一份给 `VideoRecorder`(实现 `RTCVideoRenderer`),
|
||||
拿到解码后的 `CVPixelBuffer`,用 `AVAssetWriter` + H.264 硬编码封装为 MP4。
|
||||
- **自编码模式**:`SelfCodecDecoder` 用 VideoToolbox 硬解出 AVCC 帧后回传给 `VideoRecorder`,
|
||||
复用已解码的 H.264 帧写盘。
|
||||
- 录制文件保存在 App 沙盒 `Documents/WebRTCRecordings/rec_YYYYMMDD_HHmmss.mp4`,停止后弹出保存路径提示。
|
||||
- 断开连接时若仍在录制会自动取消(丢弃未保存内容)。
|
||||
|
||||
## 运行
|
||||
|
||||
1. 用 Xcode 打开 `web_rtc_controller_ios.xcodeproj`,首次打开等待 SPM 解析 WebRTC 依赖。
|
||||
|
||||
Reference in New Issue
Block a user