You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
录制音视频通话
本地服务端录制
复制全文
下载 pdf
本地服务端录制
RTC 提供了录制程序,以便您在自己的服务器上录制音视频通话或直播内容,用于后续回放、存档、审核或分析等用途。录制程序会将每个用户的音视频流分别录制为独立文件。​
功能特性​
​
​
功能​
说明​
命令行录制​
支持通过命令行启动录制任务。​
自动录制​
支持监测到房间内有用户推流后自动开始录制。​
单流录制​
支持对单个用户的音视频流进行录制,最多支持 17 个用户。​
录制内容​
默认录制音视频,音频格式为 AAC,视频格式为 H.264。​
空闲超时​
支持设置房间内无用户推流的空闲超时时间,超时后任务自动终止。​
参数配置​
支持自定义设置录制文件的音视频参数、存储路径等。​
空流补帧​
支持在房间内用户推流中断后补充黑帧,保证录制文件的连续性。​
系统适配​
CentOS 6.5+ x64。​
​
前提条件​
  • 系统要求:CentOS 6.5+ x64。​
操作步骤​
步骤 1:下载程序包​
  1. 下载程序包​
  1. 解压程序包。假定将程序包文件存放于 /opt/download/local_record 目录下。​
  • ​
    cd /opt/download/local_record​
    tar -zxvf local_record.tar.gz #版本号 1.0.0.50 视具体版本而定​
    ​
  • 进入解压后生成的 Recorder 目录,其文件结构如下:​
  • bin目录:​
  • ​Image​​
  • VolcEngineRTC:录制子程序。​
  • patchelf:辅助工具。​
  • lib:存放VolcEngineRTC子程序执行依赖的库。​
  • recorder: 录制父进程。​
  • rtc_ffmpeg: 父子进程依赖的ffmpeg库。​
步骤 2(可选):开启 Core Dump 收集崩溃日志​
为便于在程序异常退出时排查问题,建议您开启系统的 Core Dump 功能。​
说明​
运行一次该脚本后,如果系统重启,该脚本依然生效。​
  1. 执行 ulimit -c 命令查看。若输出为 0,则说明 core dump 未开启。​
  1. 获取脚本:​
  1. 执行脚本开启 core dump:​
  • ​
    sudo ./enablecoredump.sh​
    ​
  1. 重启服务器使脚本生效。​
说明​
若无法立即重启服务器,请额外执行 ulimit -c unlimited 命令,使配置在当前会话中生效。​
  • 脚本执行后,生成的 core 文件将位于 /var/corefile 目录下。​
  1. (可选)如果您在 Docker 容器中运行录制程序,请在启动容器时添加以下参数:​
  • ​
    docker run --ulimit core=-1 --security-opt seccomp=unconfined --privileged=true --cap-add=SYS_PTRACE​
    ​
  • ​
    参数​
    描述​
    --ulimit core=-1​
    不限制 coredump 大小​
    --security-opt seccomp=unconfined​
    允许容器执行全部系统调用​
    --privileged=true​
    允许 createdump 访问其他进程​
    --cap-add=SYS_PTRACE​
    允许在docker 中进行 gdb 调试​
    ​
步骤 3:启动录制任务​
通过执行 recorder 程序并传入相应参数来启动一个录制任务。​
说明​
当前仅支持生成 mp4 格式录制文件。​
基础命令格式​
​
./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。​
参数说明​
  • 必选参数​
  • ​
  • ​
    参数名​
    描述​
    appID​
    您在控制台获取的 AppID。​
    roomID​
    待录制房间的 ID。​
    token​
    用于录制服务加入房间的鉴权 Token。​
    uid​
    录制服务使用的用户 ID,在房间内必须保持唯一。​
    volcEngineRTCDir​
    录制子程序 VolcEngineRTC 所在的路径。​
    ​
  • 可选参数​
  • 您可以通过执行 ./recorder --help 或 ./recorder -h 查看全部可选参数。​
  • ​
  • ​
    参数​
    描述​
    audioBitrate​
    录制摄像头流的音频码率,单位为 kbps 或 bps,默认值为 64kbps。​
    screenAudioBitrate​
    录制屏幕流的音频码率,单位为 kbps 或 bps,默认值为 64kbps。​
    screenVideoBitrate​
    录制屏幕流的视频码率,取值范围为 [1,10000],单位为 kbps 或 bps,默认值为 1kbps。​
    screenFps​
    录制屏幕流的帧率,取值范围为 [1,30],默认值为 15。​
    videoBitrate​
    录制摄像头流的视频码率,取值范围为 [1,10000],单位为 kbps 或 bps,默认值为 1kbps。​
    videoFps​
    录制摄像头流的帧率,取值范围为 [1,30],默认值为 15。​
    cfgFilePath​
    指定配置文件路径,用于设置录制文件存放目录等。若未指定,录制文件会保存在当前路径下以日期(YYYYMMDD)命名的目录中。配置文件需提前创建,格式为 txt,内容示例:{"Recording_Dir" : "xrecorder"},其中 xrecorder 为您指定的存放路径。​
    idle​
    录制任务的空闲超时时间,单位为秒。当房间内无用户推流超过此时间后,任务自动终止。取值范围为 [10, 86400],默认值为 180。​
    ​
使用示例​
  • 自定义音视频参数​
  • ​
    ./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​
ps -ef | grep recorder​
​
# 2. 结束进程(<pid> 替换为实际的进程号)​
kill -INT <pid>​
​
步骤 5:合成录制文件​
录制结束后,系统会为每个用户生成临时的 .data 文件。您需要使用 convert 命令将这些临时文件合成为最终的 MP4 文件。​
​
# <Dir> 为录制文件存放路径​
./recorder -convert <Dir>​
​
例如:如果录制文件存放在 20230712/test_room_152618_065905405 目录中:​
​
./recorder -convert 20230712/test_room_152618_065905405​
​
合成后,目录中会包含以下文件:​
​Image​​
  • 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 文件:辅助配置和日志文件。​
性能参考​
以下数据基于特定主机配置测试得出,仅供参考。​
测试主机配置​
  • 主机类型:阿里云 ecs.g7.8xlarge​
  • CPU:Intel(R) Xeon(R) Platinum 8260 CPU @ 2.40GHz,虚拟 32 核​
  • 内存:62 GB​
  • 磁盘 I/O:322 MB/s​
并发性能​
  • 单房间场景​
  • ​
  • ​
    推流分辨率​
    帧率 (FPS)​
    码率 (Kbps)​
    测试结果​
    720 * 480​
    15​
    500​
    单房间同时最多录制 30 路流​
    ​
  • 多房间场景​
  • ​
  • ​
    推流分辨率​
    帧率​
    码率​
    推流数量​
    测试结果​
    320 * 240​
    15​
    200​
    1​
    并发录制 280 个房间,CPU 负载 75 %,建议并发 275 个房间​
    320 * 240​
    15​
    200​
    2​
    并发录制 165 个房间,CPU 负载 75 %,建议并发 160 个房间​
    ​
系统调优​
在多房间高并发场景下,如果因系统文件句柄(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
这个页面对您有帮助吗?
有用
有用
无用
无用