AnyChat技术支持论坛

标题: 关于中心录像服务器如何录像问题【JAVA】 [打印本页]

作者: mylee    时间: 2015-6-2 11:18
标题: 关于中心录像服务器如何录像问题【JAVA】
参照给的SDK,在“AnyChatCoreSDK_Win32_r4641\bin\recordserver”下面,已经部署了录像服务器,并且已经和核心服务器建立连接了。我想在业务服务器实现录像的开始和结束。请问我该怎么实现?谢谢
作者: mylee    时间: 2015-6-2 11:19
就是不知道在【BusinessServer】这个Java里面如何实现
作者: 陈文仲    时间: 2015-6-2 11:26
mylee 发表于 2015-6-2 11:19
就是不知道在【BusinessServer】这个Java里面如何实现

您好,可以使用BRAS_StreamRecordCtrl来启动或关闭录制。
作者: mylee    时间: 2015-6-2 11:27
陈文仲 发表于 2015-6-2 11:26
您好,可以使用BRAS_StreamRecordCtrl来启动或关闭录制。

是在【BusinessServer.java】这个类initSdk方法里面做吗?
作者: 陈文仲    时间: 2015-6-2 11:31
mylee 发表于 2015-6-2 11:27
是在【BusinessServer.java】这个类initSdk方法里面做吗?

您想在什么时候发起录制呢?客户端登陆、进入房间、退出房间等操作都会触发业务服务器的回调的,具体调用可以放到回调里面。
作者: mylee    时间: 2015-6-2 11:42
本帖最后由 mylee 于 2015-6-2 11:44 编辑
陈文仲 发表于 2015-6-2 11:31
您想在什么时候发起录制呢?客户端登陆、进入房间、退出房间等操作都会触发业务服务器的回调的,具体调用 ...

我就想在 两人建立通话视频后,就开始录制视频的。
  1. /**
  2.      * 用户进入房间验证回调,可以在此函数中验证登录房间
  3.      */
  4.     @Override
  5.     public void OnAnyChatUserEnterRoomActionCallBack(int dwUserId, int dwRoomId) {
  6.         String str = "OnUserEnterRoomActionCallBack: userid:" + dwUserId + " roomid: " + dwRoomId;
  7.         int dwFlags = AnyChatServerSDK.ANYCHAT_RECORD_FLAGS_VIDEO + AnyChatServerSDK.ANYCHAT_RECORD_FLAGS_AUDIO;
  8.         logger.info("开始录制视频。。。。");
  9.         AnyChatServerSDK.StreamRecordCtrlEx(dwUserId, 1, dwFlags, 1, "", 0);
  10.         generateLog(str);
  11.     }
复制代码

作者: 廖斌    时间: 2015-6-2 11:50
mylee 发表于 2015-6-2 11:42
我就想在 两人建立通话视频后,就开始录制视频的。

您好,您是想录制单方视频,还是将双方的视频合成录制在同一个文件中呢?上面贴的代码可以实现单方录制。
作者: mylee    时间: 2015-6-2 11:56
廖斌 发表于 2015-6-2 11:50
您好,您是想录制单方视频,还是将双方的视频合成录制在同一个文件中呢?上面贴的代码可以实现单方录制。

这两种有什么区别呢?
作者: mylee    时间: 2015-6-2 11:59
mylee 发表于 2015-6-2 11:56
这两种有什么区别呢?

你好,直接合成
作者: 佰锐科技-颜荣芝    时间: 2015-6-2 12:02
mylee 发表于 2015-6-2 11:59
你好,直接合成

您好,您需要的功能和接口可以参考 AnyChat音视频录制整体解决方案:http://bbs.anychat.cn/forum.php? ... hlight=%C2%BC%D6%C6
作者: mylee    时间: 2015-6-2 13:40
佰锐科技-颜荣芝 发表于 2015-6-2 12:02
您好,您需要的功能和接口可以参考 AnyChat音视频录制整体解决方案:http://bbs.anychat.cn/forum.php?mo ...

file:////C:/Users/Administrator/Desktop/1234.png

采用服务端来将双方的视频合成录制在同一个文件,为啥没其效果?产生了两个文件。这个合成还需要什么吗?
作者: 陈文仲    时间: 2015-6-2 13:49
本帖最后由 陈文仲 于 2015-6-2 13:51 编辑
mylee 发表于 2015-6-2 13:40
采用服务端来将双方的视频合成录制在同一个文件,为啥没其效果?产生了两个文件。这个合成还需要什么 ...

您好,您是在进入房间的回调里面进行录制的吗?没效果是指录制的只有一个人的视频?录制时,通话双方有请求对方的音视频了吗?
作者: mylee    时间: 2015-6-2 13:56
陈文仲 发表于 2015-6-2 13:49
您好,您是在进入房间的回调里面进行录制的吗?没效果是指录制的只有一个人的视频?录制时,通话双方有请 ...

我是直接在【OnAnyChatUserEnterRoomActionCallBack】这个回调里面执行的录制开始指令:
  1. int dwFlags = AnyChatServerSDK.ANYCHAT_RECORD_FLAGS_VIDEO + AnyChatServerSDK.ANYCHAT_RECORD_FLAGS_AUDIO + AnyChatServerSDK.ANYCHAT_RECORD_FLAGS_MIXVIDEO + AnyChatServerSDK.ANYCHAT_RECORD_FLAGS_MIXAUDIO + AnyChatServerSDK.ANYCHAT_RECORD_FLAGS_SERVER;
  2.         //接口调用
  3.         AnyChatServerSDK.StreamRecordCtrlEx(dwUserId, 1, dwFlags, 1, "", 0);
复制代码
但是,结束视频后,产生了两个文件,以下是日志:
  1. 06-02 13:53:31:958  OnAnyChatUserLeaveRoomActionCallBack: userid:1 roomid: 1
  2. 06-02 13:53:32:150  OnAnyChatServerRecordExCallBack: dwUserId1 ,Record Event ,szRecordFileName:D:\soft\AnyChat\AnyChatCoreSDK_Win32_r4641\bin\recordserver\record\2015-06-02\13-53-04-335_mylee_52.mp4 lpUserStr:
  3. 06-02 13:53:36:175  OnAnyChatUserLeaveRoomActionCallBack: userid:2 roomid: 1
  4. 06-02 13:53:36:391  OnAnyChatServerRecordExCallBack: dwUserId2 ,Record Event ,szRecordFileName:D:\soft\AnyChat\AnyChatCoreSDK_Win32_r4641\bin\recordserver\record\2015-06-02\13-53-01-277_mylee2_66.mp4 lpUserStr:
复制代码

作者: 陈文仲    时间: 2015-6-2 14:08
mylee 发表于 2015-6-2 13:56
我是直接在【OnAnyChatUserEnterRoomActionCallBack】这个回调里面执行的录制开始指令:但是,结束视频后 ...

OnAnyChatUserEnterRoomActionCallBack  这个回调是每进一个客户端就触发一次;在这里进行录制,两个用户进来相当于发起了两次录制。
作者: mylee    时间: 2015-6-9 10:33
请问,
在客户端用户呼叫视频的时候,业务服务器可以自主选择房间么?【如果可以,需要在什么地方添加呢?谢谢】
作者: 佰锐科技-杨子鳄    时间: 2015-6-9 10:46
您好。呼叫是由核心服务器分配的。
作者: 廖斌    时间: 2015-6-9 10:51
佰锐科技-杨子鳄 发表于 2015-6-9 10:46
您好。呼叫是由核心服务器分配的。

您好,呼叫成功后,视频服务器会为每对通话分配一个唯一的房间号。应用层可以不使用这个分配的房间号,也可以自定义一个。





欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3