如果您需要一个开放的、可实现视频录制的音视频解决方案sdk,那么强烈推荐Chat,它开放了所有的API接口及技术文档,有部分示例源码可供参考。但是需要注意的是Any从Chat r4115版本才开始支持的哦,Chat开放了录像服务器SDK接口(Chat Record Server SDK)。
录像服务器SDK支持的平台包括Windows、Linux(x86、x64),支持的开发语言有C++、Java,示例代码位于SDK的src\recordserver目录下。
Chat Record Server SDK是服务器端SDK,用于上层应用实现特定的服务器录制功能。通过SDK接口可以获取到每个用户的视频、语音、通信数据,由上层应用自己写入文件。
录像服务器SDK的工作原理是:
一、录像服务器启动:调用API:BRRS_InitSDK(0);之后,录像服务器主动与核心服务器建立连接,连接成功之后,将会触发录像服务器的回调事件:BRRS_OnServerAppMessage_CallBack;录像服务器读当前目录下的配置文件AnyChatRecordServer.ini,配置文件会指明核心服务器的IP地址、端口信息;录像服务器与核心服务器连接成功之后,业务服务器也将收到相关的事件通知;
二、录像任务的下达:
1、客户端下达录像指令:调用API接口:BRAC_StreamRecordCtrl(dwUserId, TRUE,dwFlags, 0),其中dwFlags参数增加标志:BRAC_RECORD_FLAGS_SERVER;
2、或是业务服务器下达录像指令:调用API接口:BRAS_StreamRecordCtrl(dwUserId, TRUE, 0, 0);
三、录像任务的执行:
1、开始录像事件:当录像服务器收到录像任务后,将产生一个回调事件:BRRS_OnRecordStart_CallBack(userid),通知上层应用录像开始,上层应用可以创建一个文件用于录像;
2、录像数据事件:当录像服务器收到语音、视频、通信数据之后,将重复的产生回调事件:BRRS_OnRecordBuffer_CallBack(userid, buf),通知上层有录像数据,上层应用可以将这些数据写入到文件中;
四、录像任务的停止:
1、客户端下达停止指令:调用API接口:BRAC_StreamRecordCtrl(dwUserId, FALSE, 0, 0),
2、或是业务服务器下达录像指令:调用API接口:BRAS_StreamRecordCtrl(dwUserId, FALSE, 0, 0);
五、事件回调:
1、录像停止事件:当录像服务器收到停止指令之后,将在录像服务器上产生一个回调事件:BRRS_OnRecordFinish_CallBack(userid),上层应用可以关闭文件,并将录像文件名通过事件参数反馈给录像服务器,录像服务器会将相关信息通知到业务服务器;
2、录像任务事件:当业务服务器收到录像服务器返回的录像任务相关信息之后,将在业务服务器上产生一个回调事件:BRAS_OnServerRecord_CallBack(userid, lpRecordFileName),业务服务器可以将相关的录像记录进行保存等操作;
如有疑问可参阅bbs.anychat.cn