跳转至

部署模式

单机部署说明

服务端录制 Demo 支持 Docker 自动部署(推荐使用), Native 自动部署、Native 手动部署三种方式。使用融云录制 Demo 不做任何二次开发的情况下推荐使用 Docker 部署。

Docker 自动部署
  1. 安装或准备 docker 环境。

  2. 命令行执行以下内容。

docker run -d  --rm \
--ulimit core=0 \
--name recording \
--env APPKEY="{your-appkey}" \
--env SECRET="{your-secret}" \
--env RECORD_MODE={your-record-mode} \
-p {your-tcp-port}:80 \
-v {your-record-dir}:/data/record \
-v {your-log-dir}:/var/log/supervisor \
rongcloud/demo-rtc-record:latest

例如:

docker run -d  --rm \
--ulimit core=0 \
--name recording \
--env APPKEY="XXXXXXXXX" \
--env SECRET="YYYYYYYYY" \
--env RECORD_MODE=3 \
-p 80:80 \
-v /data/record/files:/data/record \
-v /data/record/logs:/var/log/supervisor \
rongcloud/demo-rtc-record:latest

其中,需要确保服务器已经开通 your-tcp-port 对应的 tcp 端口,以及 your-udp-min-port 到 your-udp-max-port 对应的 udp 端口段。

前者用于接收房间状态同步 http 请求,后者用于媒体流通信。

相关项目:

  • Docker 录制 Demo 镜像地址:https://hub.docker.com/r/rongcloud/demo-rtc-record

  • Docker 录制 Demo 开源项目:https://github.com/rongcloud/demo-rtc-record-docker

Native 自动部署

通过命令脚本一键自动化部署录制程序。下载部署程序 v3.0.9

部署步骤说明:

1、修改 global.conf 配置,说明如下:

#房间状态同步服务端口配置,默认8800
channel_port=8800

#录制程序服务 HTTP 端口配置,默认 5000
record_port=5000

#需要录制的 appKey
#必填
#在融云官网开发者后台创建应用获取 http://www.rongcloud.cn/
appKey=

#必填
#在融云官网开发者后台创建应用获取 http://www.rongcloud.cn/ appKey 和 secret 会用来校验签名
secret=

#录制模式 1:自动全录模式(默认);2:自定义异步录制(提供 http 接口,调用开始录制和结束录制);
recordType=1

#录像保存地址,不配置则不会启动录像
recordSaveDir=/data/record/

#mediaserver 地址(以下为公有云默认地址,私有云客户请联系商务获取)
mediaUrl=https://rtc-info.ronghub.com

#录制模式,默认 mix 全录模式 3:
#simlpe 模式(全录 0,仅录视频 1,仅录音频 2)
#mix 模式(全录 3,仅录视频 4,仅录音频 5)
Publish_mode=3

#音频格式: aac/wav
AudioFormat=aac

#大小流 high:1  low:2 
SimulCast=1

2、下载部署程序 v3.0.9后运行 install.sh 文件完成部署

Native 手动部署

需要对以下两个程序分别进行部署:

  • 房间状态同步消息处理程序,为 GitHub 开源项目(demo-rtc-server-record)立即下载

  • 底层录制服务程序(RongRTC-Record),未进行开源,开箱即用,立即下载 v3.0.9

房间状态同步消息处理程序,打包部署流程如下:

1、基于源码 Maven 打包构建

  • 1)下载或克隆 demo-rtc-server-record 项目

  • 2)进入项目 demo-rtc-server-record 目录

  • 3)安装依赖 mvn install

  • 4)打包 mvn clean package

2、创建 Demo 运行目录,并进入该目录,将 maven 打包好的可执行 jar 包 demo-rtc-server-record-*.jar 复制到当前目录

3、将项目源码根目录中的 ServiceSettings.properties,log4j.properties 复制到当前目录

4、修改状态同步服务的配置文件 ServiceSettings.properties 详细如下:

#必填,服务监听的 http 端口
port=8800

#必填,应用的 appKey 在融云开发者后台创建应用后获取 http://www.rongcloud.cn
appKey=

#必填,在融云开发者后台创建应用后获取 http://www.rongcloud.cn,appkey 和 secret 会用来校验签名
secret=

#底层录制服务程序,录制节点地址,根据部署情况修改 IP、端口即可
recordNodeAddr=http://127.0.0.1:5000/record

#录像保存地址,不配置则不会启动录像
recordSaveDir=/data/record/

#录制模式 1:自动全录模式(默认);2:自定义异步录制(提供 http 接口,调用开始录制和结束录制);
recordType=1

5、启动程序

nohup java -jar demo-rtc-server-record-*.jar &

6、验证,观察日志 nohup.out,无报错,当有房间状态变更时能收到请求。

底层录制服务程序(RongRTC-Record)部署步骤如下:

1、程序部署

centos 系统:以 root 身份执行 centos-record_install.sh

ubantu 系统:以 root 身份执行 ubuntu-record_install.sh

2、将依赖库 libs 的路径添加到 /data/libs/(用户可以自定义目录)

cp -drf libs /data/libs

3、将 bin 目录下的所有文件放到指定目录地址 /data/services/record/,执行 cp bin/* /data/services/record/

将 export LD_LIBRARY_PATH=/data/libs/ /data/services/record//Recorder --port 5000 放到 supervisor

备注:HTTP 默认端口 5000 此端口应该和录制程序中的 ServiceSettings.properties 配置保持一致

4、更新配置文件 ServiceSettings.properties 说明如下:

#录制程序服务 HTTP 端口配置,默认 5000
port=5000

#必填,需要录制的 appKey 在融云开发者后台创建应用后获取 http://www.rongcloud.cn/
appKey=

#音视频服务地址(以下为公有云默认地址,私有云客户请联系商务获取)
mediaUrl=https://rtc-info.ronghub.com

#录制模式: simlpe 模式(全录,仅录视频,仅录音频),mix 模式(全录,仅录视频,仅录音频),默认 mix 全录模式

#SIMPLE=0, SIMPLE_VIDEO=1,SIMPLE_AUDIO=2, MIX = 3, MIX_VIDEO = 4, MIX_AUDIO = 5
Publish_mode=3

#音频格式: aac/wav
AudioFormat=aac

#大小流 high:1  low:2 
SimulCast=1

集群部署说明

如果是集群部署,需要安装 nginx,参考下面的脚本对 HTTP 请求进行路由(原理是:根据 http request 中 ChannelID 头进行路由),将改好的脚本放在 nginx 启动加载配置的目录中即可。

upstream cluster {
    hash $http_ChannelId consistent;
    #对应的录制节点的 IP、端口
    server 172.19.21.174:7788;
    server 172.19.21.175:7788;
}

server {
    listen 8800;

    location / {
      proxy_pass http://cluster;
    }
}