服务器录像开发指南

    简介

    融云音视频服务器端录像服务支持:

    • 录制一个音视频通讯内所有参与者的语音和视频内容
    • 同时录制多个音视频通讯内所有参与者的语音和视频内容
    • 同时录制一个或多个音视频通讯内所有参与者的纯语音内容
    • 支持会场中途录像,会场进行中开启、停止录制
    • 支持 1000 人会议模式的录制
    • 支持自定义存储文件名

    开通方式

    在融云开发者平台,实时音视频服务中开启服务端录像功能。

    SDK 版本支持

    会议模式 RTCLib SDK 所有版本都支持服务端录像功能,通话模式的 CallLib、CallKit SDK 支持版本信息如下:

    CallLib SDK

    • Android CallLib SDK 2.9.0 及以上版本
    • iOS CallLib SDK 2.9.0 及以上版本
    • Web CallLib SDK 3.0.0 及以上版本

    CallKit SDK

    • Android CallKit SDK 2.9.0 及以上版本
    • iOS CallKit SDK 2.9.0 及以上版本

    录制架构

    image

    为满足客户个性化的存储及处理性能的需要,服务器录像方案采用客户自备 Linux 录像服务器,部署录像服务程序的方案进行实现。要求如下:

    环境要求

    系统

    • SUSE Linux Enterprise Server 11 sp3 及以上
    • RHEL/CentOS 6.5 及以上
    • Ubuntu 14.04 及以上

    网络

    带宽

    • 根据录制的媒体流数量和分辨率决定。

      例如:一个 640×480 视频媒体流需要的带宽为 500kbps,每个二人会议两个媒体流,50 个会议 100 个视频流则需要 100mbps 带宽。

    硬件配置

    • 每个会议的内存消耗约为 100M
    • 10 分钟视频文件大小为 30M,音频文件为 5M
    • 主要瓶颈在于 CPU,处理器i7 4790(4 核 8 线程) 同时能支持的会话数量
    mix 模式 simple 模式
    2 人 640×480,帧率 15,单路码流 500kbps 8 个 12 个

    快速 Demo 集成

    自定义开发

    用户可以参照 Demo 的源码,根据会场变动信息选择录制的开始时间、结束时间、录制模式

    录像流程

    1. AppServer 集成会场同步能力获取当前的音视频会话信息
    2. AppServer 调用 Recorder 程序,并将 channelid 等通过命令行参数传入
    3. Recorder 连接流媒体服务器,进行录像

    录制模式

    • mix 模式:

      整个会议录制成一个文件

      默认样式为第一个加入者为大屏,后加入者为小屏显示在左上角

      文件名为:会议id_时间戳.mkv

    • simple 模式:

      每道媒体流生成一个文件。(一个二人会议会生成 4 个文件,2 纯音频+2 纯视频)

      文件夹:会议id_开始时间

      视频文件:用户id_时间戳.mkv

      音频文件:用户id_时间戳.aac

    自定义录像模式

    • 自动全录模式:

      会场开启后自动开启录像,录像存储文件名系统程序确定。

    • 自定义异步模式

      根据实际需要中途进行录像的开启和关闭,录像存储文件名客户可自定义。

    录像程序参数

    • -h 流媒体服务器地址

    • -p 流媒体服务器端口

    • -a appkey

    • -c channelid 房间号

    • -o 录像文件存储目录

    • -m 启动 mix 录像模式

    • --file 自定义录像存储文件名

    • -k uniquekey 用于身份认证

      服务器地址,端口,channelid,uniquekey 等信息需要通过会场同步获取

    录像程序下载

    启动录像:

    Recorder -h host -p port -a appkey -c cid -o out_dir -k uniquekey
    

    停止录像:

    kill -15 pid
    

    自动化部署

    我们提供了自动化部署工具,集成了录像程序、服务器录像 Demo 等能力,开发者根据包里提供的自动化部署的脚本和工具进行自动化部署即可。

    下载自动化部署工具,部署说明如下:

    1、voip-recorder_bash_2.0.1 目录下,包括 3 个文件,global.conf/packages/run.sh。

    2、修改配置文件 global.conf

      #数据盘挂载目录
      base_path=/data
      #运行程序的用户
      base_user=blink
    
      #需要录像的appid
      #必填
      #在融云官网 http://www.rongcloud.cn/申请
      appKey=
    
      #需要录像的voip secret
      #在融云官网 http://www.rongcloud.cn/申请
      secret=
    
      #服务监听的端口
      extport=
    
      #会场同步注册地址,即http-gateway服务的地址
      gatewayAddr=https://rtc.ronghub.com
    
      #用于接收会场状态的地址(本机部署服务的地址),如http://122.40.103.189:8060/recv
      recvAddr=
    
      #mediaserver外网ip和内网ip的映射,多个用分号隔开
      #externalIp1-localIp1;externalIp2-localIp2;externalIp3-localIp3
      #externalToLocalIpMap=122.10.22.189-192.168.140.132
    
      #录像模式 (默认为1)
      #1:自动全录模式;2:自定义异步录像;
      recordType=1
    
      #录像是否使用混流模式  boolean类型  true/false
      mixMode=true
    

    3、修改配置文件后,执行 bash run.sh

    image

    4、部署完成后,在 /data/services/demo-rtc-record-server

    image

    5、查看 rtc-record-server 环境是否已经启动,执行 ps -elf|grep demo-rtc-record-server

    image