设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 13485|回复: 25

AnyChat使用攻略之独立部署Windows中心录像服务器

[复制链接]

200

主题

2979

帖子

8664

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8664
发表于 2013-7-3 19:48:00 | 显示全部楼层 |阅读模式
Linux平台中心录像服务器部署请参考http://bbs.anychat.cn/forum.php? ... ge=1&extra=#pid6117

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

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

一、下载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\recordserver目录,里面包含如下图所示的文件:
anychatrecordserver_dir.jpg
其中“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:\record(注意:不要配置为:RecordRootDir=d:\record\,即路径后面不要加上“\”);
    【RecordRootURL】表示录像文件保存本地根目录的互联网访问地址,是一个URL地址,通过该URL地址,可以访问到中心录像服务器目录下的指定文件,通常需要在Web服务器(如Apache)中设置一个虚拟路径指向【RecordRootDir】,而【RecordRootURL】就是该虚拟路径;
    【ServerCallBackPathType】表示中心录像服务器完成录像之后,触发业务服务器回调事件中的路径类型:0 相对路径、1 绝对路径、2 URL路径;
    【ClientCallBackPathType】表示中心录像服务器完成录像之后,触发客户端回调事件中的路径类型:0 相对路径、1 绝对路径、2 URL路径;


四、启动中心录像服务器。运行run.bat,出现如下图所示的界面:
anychatrecordserver_run.jpg
同时在Windows右下角的任务栏区域显示程序图标(点击该图标将弹出菜单,可选择退出程序):
anychatrecordserver_tip.jpg 在中心录像服务器程序目录下将生成日志文件: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:\anychat\AnyChatRecordServer\Record\
  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:\record\2014-08-31\12-08-31-074_AnyChat4_53.mp4
2    URL路径,形如:http://www.anychat.cn/record/201 ... 074_AnyChat4_53.mp4

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

参考:
1、AnyChat音视频录制整体解决方案
2、有关中心录像服务器配置项【RecordRootURL】的说明
回复

使用道具 举报

200

主题

2979

帖子

8664

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8664
 楼主| 发表于 2013-7-3 20:34:00 | 显示全部楼层

中心录像服务器程序开发指南

一、业务服务器程序开发:

a)增加回调函数:
  1. // 服务器录像回调函数定义
  2. typedef void (CALLBACK * BRAS_OnServerRecord_CallBack)(DWORD dwUserId, DWORD dwParam, DWORD dwRecordServerId, DWORD dwElapse, LPCTSTR lpRecordFileName, LPVOID lpUserValue);
复制代码
dwUserId:录像用户Id;
lpRecordFileName:录像文件名(含路径,可以是相对路径,可以是绝对路径,在AnyChatRecordServer.ini中配置)
其它参数保留

b)增加回调函数设置API:
  1. // 设置服务器录像通知回调函数
  2. BRAS_API DWORD BRAS_SetOnServerRecordCallBack(BRAS_OnServerRecord_CallBack lpFunction, LPVOID lpUserValue=NULL);
复制代码
c)增加录像控制API:
  1. // 中心端录像控制
  2. BRAS_API DWORD BRAS_StreamRecordCtrl(DWORD dwUserId, BOOL bStartRecord, DWORD dwFlags, DWORD dwParam, DWORD dwRecordServerId);
复制代码
dwUserId:录像用户Id;
bStartRecord: 1 开始录像,  0 停止录像;
其它参数默认为0

二、客户端程序:
API接口没有变化:
  1. // 用户音、视频录制
  2. BRAC_API DWORD BRAC_StreamRecordCtrl(DWORD dwUserId, BOOL bStartRecord, DWORD dwFlags, DWORD dwParam);
复制代码
新增常量标识定义:
  1. #define BRAC_RECORD_FLAGS_SERVER        0x00000004L        ///< 服务器端录制
复制代码
当客户端调用API:BRAC_StreamRecordCtrl时,第三个参数(dwFlags)设置为:BRAC_RECORD_FLAGS_SERVER时,表示在服务器端进行录像。


回复 支持 反对

使用道具 举报

9

主题

82

帖子

233

积分

中级会员

Rank: 3Rank: 3

积分
233
发表于 2013-7-26 12:48:32 | 显示全部楼层
需求是,手机端可以查看,视频通话的内容?看你们写的,应该可以做到,就是在两个人实时视频时,服务器端进行录制视频,通话结束后生成的mp4文件,手机端可以网路请求服务器获得。不知道我理解对不?可以满足需求吗?
回复 支持 反对

使用道具 举报

200

主题

2979

帖子

8664

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8664
 楼主| 发表于 2013-7-26 13:49:51 | 显示全部楼层
您好,目前实现的是把通话过程中的音频、视频流录制为MP4文件,目前AnyChat内核暂不支持MP4文件的播放,需要上层应用自己来实现。因为AnyChat主要是即时通讯方面的应用,MP4文件的播放属于点播,是另一个应用领域的,可能后期AnyChat会支持视频的点播。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2013-8-29 15:54:01 | 显示全部楼层
您好!
关于中心录制这部分有几个问题需要咨询一下。
1:中心录制服务器只提供windows版本,而没有linux版本吗?
2:核心服务器和业务服务器部署在linux上面,可以通过中心录制服务器录制。但在linux server SDK里面并没有找到 服务器录像回调函数定义以及设置服务器录像通知回调函数这两个接口,为什么这个地方跟windows server的SDK不同?linux业务服务器怎么控制音视频录制的业务逻辑?

回复 支持 反对

使用道具 举报

5

主题

1311

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
发表于 2013-8-29 16:12:25 | 显示全部楼层
wansbest 发表于 2013-8-29 15:54
您好!
关于中心录制这部分有几个问题需要咨询一下。
1:中心录制服务器只提供windows版本,而没有linux ...

您好
1、目前没有linux版本的录像服务器程序,录像服务器跟核心服务器可以部署在不同的电脑上面
2、您好,我们在本周之内将接口加上。
回复 支持 反对

使用道具 举报

200

主题

2979

帖子

8664

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8664
 楼主| 发表于 2013-8-30 16:08:54 | 显示全部楼层
wansbest 发表于 2013-8-29 15:54
您好!
关于中心录制这部分有几个问题需要咨询一下。
1:中心录制服务器只提供windows版本,而没有linux ...

您好,已更新AnyChat for Linux SDK,支持服务器录像相关业务逻辑控制,请重新下载:http://www.anychat.cn/download.html
回复 支持 反对

使用道具 举报

1

主题

26

帖子

93

积分

注册会员

Rank: 2

积分
93
发表于 2013-11-27 10:27:24 | 显示全部楼层
请问,我需要使用windows版的视频录制功能,你在上面说的录像服务器和核心服务器是分开的还是一个的
回复 支持 反对

使用道具 举报

发表于 2013-11-27 10:37:31 | 显示全部楼层
Maco 发表于 2013-11-27 10:27
请问,我需要使用windows版的视频录制功能,你在上面说的录像服务器和核心服务器是分开的还是一个的

你好,是分开的,录制服务器是另一个。
http://bbs.anychat.cn/forum.php? ... 1&extra=#pid305
回复 支持 反对

使用道具 举报

1

主题

26

帖子

93

积分

注册会员

Rank: 2

积分
93
发表于 2013-11-27 12:02:52 | 显示全部楼层
你好,我想在web端与客户端视频通话时,录制视频保存到(windows pc端),该怎么调用,调用循序是怎样的(录像服务器和核心服务器已部署)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2018-4-24 08:50 , Processed in 0.206312 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表