音视频开发的中心录像服务器

AnyChat for Windows SDK自V4.8版本开始支持中心服务器录像(打开下载页面,位于SDK包bin ecordserver目录下),之前的版本只能在客户端录像,新版本支持在服务器端录像,集中保存,录像任务可由客户端发起,也可由业务服务器发起,录像完成之后,将录像文件名反馈给业务服务器,业务服务器可保存到数据库中便于集中维护。录像保存路径可设置。

下面一步一步介绍如何部署中心录像服务器,以及让中心录像服务器正常工作的注意事项:

一、下载AnyChat for Windows SDK包(要求V4.8及以上版本),解压缩,部署核心服务器和业务服务器(参考:AnyChat使用攻略之独立部署Windows视频服务器),让客户端能与核心服务器,以及核心服务器与业务服务器之间能正常的工作。
启动核心服务器之后,查看核心服务器的日志文件(AnyChatCoreServer.log),显示内容如下:

  1. [2013-07-03 18:28:28(479)]        ---------------------Init Service--------------------------
  2. [2013-07-03 18:28:28(488)]        Current File Version[4, 8, 0, 0],Build time:2013-07-03 13:52:21
  3. [2013-07-03 18:28:28(586)]        Start TCP Server Successed(port=8906)!
  4. [2013-07-03 18:28:28(604)]        Start UDP Server Successed(port=8907)!
  5. [2013-07-03 18:28:28(742)]        Authorized certification success!

复制代码

二、进入SDK包的bin ecordserver目录,里面包含如下图所示的文件:


其中“AnyChatRecordServer.exe”是主程序,注意,该主程序不能直接运行,可以通过如下两种方式来运行:
    1、运行run.bat来启动中心录像服务器;
    2、运行install.bat来安装为Windows服务,在“服务”中启动;

三、中心录像服务器参数配置。打开AnyChatRecordServer.ini配置文件,内容如下:

  1. [Base Settings]
  2. DebugMode=1
  3. ServerIpAddr=127.0.0.1
  4. ServerUdpPort=8907
  5. RecordRootDir=record
  6. RecordRootURL=http://www.anychat.cn/record/
  7. ServerCallBackPathType=1
  8. ClientCallBackPathType=2

复制代码

配置项详细说明如下:
    【DebugMode】    配置为0时,不在日志中输出相关的调试信息;为1时,可输出更多的调试信息,如录像开始,录像结束,录像文件名等,便于分析故障原因;      
    【ServerIpAddr】  配置核心服务器的IP地址,录像服务器与核心服务在同一台计算机时,默认为127.0.0.1
    【ServerUdpPort】 配置核心服务器的UDP通信端口,默认为8907
    【RecordRootDir】表示录像文件保存的本地根目录,可以为相对地址,如:RecordRootDir=record,表示当前录像服务器目录下的record子目录,也可以为绝对路径,如:RecordRootDir=d: ecord;
    【RecordRootURL】表示录像文件保存本地根目录的互联网访问地址,是一个URL地址,通过该URL地址,可以访问到中心录像服务器目录下的指定文件,通常需要在Web服务器(如Apache)中设置一个虚拟路径指向【RecordRootDir】,而【RecordRootURL】就是该虚拟路径;
    【ServerCallBackPathType】表示中心录像服务器完成录像之后,触发业务服务器回调事件中的路径类型:0 相对路径、1 绝对路径、2 URL路径;
    【ClientCallBackPathType】表示中心录像服务器完成录像之后,触发客户端回调事件中的路径类型:0 相对路径、1 绝对路径、2 URL路径;


四、启动中心录像服务器。运行run.bat,出现如下图所示的界面:

同时在Windows右下角的任务栏区域显示程序图标(点击该图标将弹出菜单,可选择退出程序):

在中心录像服务器程序目录下将生成日志文件:AnyChatRecordServer.log,内容如下所示:

  1. [2013-07-03 19:58:49(865)]        AnyChat Record Server Init,V1.0, Build Time:Jun  9 2013 17:23:55
  2. [2013-07-03 19:58:49(872)]        Record Root Directory: D:anychatAnyChatRecordServerRecord
  3. [2013-07-03 19:58:49(877)]        Ready to connect to the server  127.0.0.1(8907)....
  4. [2013-07-03 19:58:49(910)]        Successfully connect to the anychatcoreserver!

复制代码

若在日志中显示“Successfully connect to the anychatcoreserver!”则表示中心录像服务器与核心服务器连接成功,工作正常;否则请检查相关参数配置是否匹配,如AnyChatRecordServer.ini中的UDP端口和AnyChatCoreServer.ini中的UDP端口是否一致,另请检查程序的版本是否符合要求。

五、启动中心录像。客户端调用API:BRAC_StreamRecordCtrl(...),或是业务服务器调用API:BRAS_StreamRecordCtrl(...)可启动或停止对目标用户的录像任务,停止录像之后,若录像成功,则会在业务服务器上触发相应的回调函数调用。

六、注意事项:
    1、由于早期的授权证书不支持中心录像服务器,若希望使用该功能(为可选模块),请与我们的商务人员联系升级授权证书;
    2、在中心服务器录像过程中,客户端网络异常掉线将会中断录像,并触发业务服务器的录像回调函数;
    3、停止录像、用户注销等操作与业务服务器触发录像回调函数的时机是异步的过程,在业务服务器编程时需要考虑这种时间差的因素,可能存在先触发用户注销的回调,然后再触发录像完成的回调;

关于回调事件路径类型:
0    相对路径,形如:2014-08-31/12-08-31-074_AnyChat4_53.mp4
1    绝对路径,形如:d: ecord2014-08-3112-08-31-074_AnyChat4_53.mp4
2    URL路径,形如:http://www.anychat.cn/record/201 ... 074_AnyChat4_53.mp4

默认配置中:
【ServerCallBackPathType=1】表示业务服务器回调事件中返回绝对路径
【ClientCallBackPathType=2】表示客户端回调事件中返回URL地址,便于客户端可以直接通过该URL地址访问中心录像服务器上面的文件;

原文地址:https://www.cnblogs.com/hsq0421/p/4238815.html