- 文档首页
实时音视频
实时音视频
开发指南
录制音视频通话
本地服务端录制
本地服务端录制
RTC 提供了录制程序,以便您在自己的服务器上录制音视频通话或直播内容,用于后续回放、存档、审核或分析等用途。录制程序会将每个用户的音视频流分别录制为独立文件。
步骤 1:下载程序包
- 解压程序包。假定将程序包文件存放于 /opt/download/local_record 目录下。
cd /opt/download/local_record
tar -zxvf local_record.tar.gz #版本号 1.0.0.50 视具体版本而定
- 进入解压后生成的 Recorder 目录,其文件结构如下:
-
- lib:存放VolcEngineRTC子程序执行依赖的库。
- rtc_ffmpeg: 父子进程依赖的ffmpeg库。
步骤 2(可选):开启 Core Dump 收集崩溃日志
为便于在程序异常退出时排查问题,建议您开启系统的 Core Dump 功能。
说明
运行一次该脚本后,如果系统重启,该脚本依然生效。
- 执行 ulimit -c 命令查看。若输出为 0,则说明 core dump 未开启。
sudo ./enablecoredump.sh
说明
若无法立即重启服务器,请额外执行 ulimit -c unlimited 命令,使配置在当前会话中生效。
- 脚本执行后,生成的 core 文件将位于 /var/corefile 目录下。
- (可选)如果您在 Docker 容器中运行录制程序,请在启动容器时添加以下参数:
docker run --ulimit core=-1 --security-opt seccomp=unconfined --privileged=true --cap-add=SYS_PTRACE
步骤 3:启动录制任务
通过执行 recorder 程序并传入相应参数来启动一个录制任务。
./recorder -appID <app_id> -token <token> -roomID <room_id> -uid <uid> -volcEngineRTCDir <bin_dir>
< > 中为需要您填入的真实数据。例如:./recorder -appID AppId11 -token 00114+= -roomID room12 -uid uid12 -volcEngineRTCDir /opt/download/local_record/Recorder/bin。
- 您可以通过执行 ./recorder --help 或 ./recorder -h 查看全部可选参数。
./recorder -appID AppId11 -token 00114+= -roomID room12 -uid uid12 -volcEngineRTCDir /opt/download/local_record/Recorder/bin -audioBitrate 64kbps -screenAudioBitrate 128kbps -screenVideoBitrate 1700kbps -screenFps 15 -videoBitrate 1500kbps -videoFps 15
- 首先,创建配置文件 cfg.txt,内容示例如下:
{"Recording_Dir" : "/data/record_files"}
- 然后,在启动命令中通过 cfgFilePath 参数指定它:
./recorder -appID AppId11 -token 00114+= -roomID room12 -uid uid12 -volcEngineRTCDir /opt/download/Recorder/bin -cfgFilePath cfg.txt
./recorder -appID AppId11 -token 00114+= -roomID room12 -uid uid12 -volcEngineRTCDir /opt/download/Recorder/bin -idle 360
步骤 4:结束录制任务
通过发送 SIGINT 信号给 recorder 进程来正常结束录制。
# 1. 查找 recorder 进程的 PID
# 2. 结束进程(<pid> 替换为实际的进程号)
步骤 5:合成录制文件
录制结束后,系统会为每个用户生成临时的 .data 文件。您需要使用 convert 命令将这些临时文件合成为最终的 MP4 文件。
./recorder -convert <Dir>
例如:如果录制文件存放在 20230712/test_room_152618_065905405 目录中:
./recorder -convert 20230712/test_room_152618_065905405
合成后,目录中会包含以下文件:
- C-lr_web_uid-1691464986946.json:合成对应 MP4 文件所需的配置文件。
- C-lr_web_uid-1691464986946.mp4:最终合成的 MP4 文件。
- Concat_C-lr_web_uid-1691464986946.INFO:合成时子进程 VolcEngineRTC 的日志。
- lr_web_uid_xx.data: 录制过程中生成的临时数据文件。
- record.log: recorder 主进程的录制日志。
- convert.log: recorder 主进程的文件合成日志。
- VolcEngineRTC.INFO: VolcEngineRTC 子进程的日志。
- UserVideoDirForConcatOflr_web_uid:临时录制文件目录。
- 其他 .json, .log 文件:辅助配置和日志文件。
以下数据基于特定主机配置测试得出,仅供参考。
测试主机配置
- CPU:Intel(R) Xeon(R) Platinum 8260 CPU @ 2.40GHz,虚拟 32 核
并发性能
系统调优
在多房间高并发场景下,如果因系统文件句柄(fd)限制导致录制程序卡顿,可以调整以下内核参数:
sysctl -w fs.inotify.max_user_instances=512
sysctl fs.inotify.max_user_watches = 8192
- fs.inotify.max_user_instances:每个用户最多可以创建的 inotify instances 数量上限。
- fs.inotify.max_user_watches:每个用户同时可以添加的 watch 数目。
最近更新时间:2026.09.28 10:19:27