AnyChat技术支持论坛

标题: SDK有实现客户端录屏的接口么。? [打印本页]

作者: Cris    时间: 2017-11-28 18:42
标题: SDK有实现客户端录屏的接口么。?
SDK有实现客户端录屏的接口么。?windows下的。。
作者: 佰锐科技-刘冬明    时间: 2017-11-29 09:02
有的。我们的接口齐全。您可以使用API“BRAC_StreamRecordCtrl”接口进行录制。您可以下载我们的SDK进行体验下。http://sdk.anychat.cn/html/download.html
作者: Cris    时间: 2017-12-12 11:54
这个接口只能录制对讲的视频吧,我想录制整个屏幕的内容或者指定窗口的实时内容,可以实现吗
作者: 佰锐科技-刘冬明    时间: 2017-12-12 15:00
打开远程桌面,远程桌面其实也是一路视频流。录制远程桌面的视频流即可。 远程桌面可以参考下这个帖子。http://bbs.anychat.cn/forum.php? ... 6%B3%CC%D7%C0%C3%E6
作者: Cris    时间: 2017-12-12 15:23
能在显示本地摄像头视频的同时录制本地的屏幕吗?比方说现在本地和另外一个好友在视频聊天,界面上显示着双方的摄像头视频及语音,能不能在这个同时录制整个屏幕的内容。
作者: 佰锐科技-刘冬明    时间: 2017-12-12 16:38
可以的,您可以调节分辨率为您桌面的分辨率即可把桌面当前画面以一路视频流输出,您即可对其视频流进行录制
作者: Cris    时间: 2017-12-20 14:45
您好,请问怎么才能调整屏幕录制的分辨率为全屏或者指定的大小啊,还有共享的录屏那个绿色的框如何去掉。还有同时输出多路流,在调用BRAC_StreamRecordCtrlEx录像时如何选择录制屏幕那个流。
作者: 佰锐科技-刘洋    时间: 2017-12-20 17:11
Cris 发表于 2017-12-20 14:45
您好,请问怎么才能调整屏幕录制的分辨率为全屏或者指定的大小啊,还有共享的录屏那个绿色的框如何去掉。还 ...

你好  可以留一个邮箱 我这边给你发一个demo 参考一下!
作者: Cris    时间: 2017-12-20 17:16
1959899913@qq.com,发我这个QQ就行,qq邮箱也可以。
作者: 佰锐科技-刘洋    时间: 2017-12-20 17:25
Cris 发表于 2017-12-20 17:16
,发我这个QQ就行,qq邮箱也可以。

你好 已经发送到你的邮箱 请注意查收!
作者: 佰锐科技-梁国桦    时间: 2017-12-20 17:59
本帖最后由 佰锐科技-梁国桦 于 2017-12-20 19:08 编辑

以JavaScript代码为例,我简略说说多路音视频输入(含桌面共享)的步骤:
1、在初始化之后,设置启用桌面共享
  1. BRAC_SetSDKOption(BRAC_SO_CORESDK_SCREENCAMERACTRL, 1);
复制代码
2、枚举视频设备(用于桌面共享的虚拟摄像头一般在数组的最后一个;第2、3、4步可在进入房间后执行)
  1. videoCaptureList = BRAC_EnumDevices(BRAC_DEVICE_VIDEOCAPTURE);
复制代码
3、把获取的视频设备分别设置不同的视频流号(这里例子用for循环来设置,从0开始设置流号)
  1. for(var i=0; i<videoCaptureList.length; i++) {
  2.         BRAC_SetUserStreamInfo(mSelfUserId, i, BRAC_SO_LOCALVIDEO_DEVICENAME, videoCaptureList[i]);
  3. }
复制代码
4、设置绑定视频流显示位置和开启视频流
  1. // 设置视频流显示位置(由最后一个参数传入流号)
  2. // 把0号流显示在AnyChatLocalVideoDiv0上,其他流号亦然;要设置多个视频流显示位置就调用多次,每次传不同的div、objectId和视频流号即可
  3. BRAC_SetVideoPosEx(mSelfUserId, document.getElementById("AnyChatLocalVideoDiv0"), "ANYCHAT_VIDEO_LOCAL_0", 0);

  4. // 打开本地的0号流(由第三个参数传入流号)
  5. BRAC_UserCameraControlEx(mSelfUserId, 1, 0, 0, "");
复制代码
以上就是多路音视频的显示步骤。

设置某号流视频参数的方法:
  1. // deviceIdx为传入的视频流号
  2. function videoStreamParamsSetting(deviceIdx) {
  3.         // 设置本地视频编码的码率(如果码率为0,则表示使用质量优先模式)
  4.         BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_BITRATECTRL,bitRate);
  5.         
  6.         // 设置本地视频采集分辨率
  7.         BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_WIDTHCTRL, videoWidth);
  8.         BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_HEIGHTCTRL, videoHeight);

  9.         // 设置本地视频编码的帧率
  10.         BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_FPSCTRL,fps);

  11.         // 设置本地视频编码的关键帧间隔
  12.         BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_GOPCTRL, gop);

  13.         // 让视频参数生效
  14.         BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_APPLYPARAM,1);        
  15. }
复制代码
可以改造成视频参数由函数的参数传递。
若传的是桌面共享的视频流号,且分辨率设置得跟显示器的分辨率一致,则会整个桌面共享出去,绿框会消失(在打开桌面共享流之前调用)



作者: Cris    时间: 2017-12-21 13:33
佰锐科技-梁国桦 发表于 2017-12-20 17:59
以JavaScript代码为例,我简略说说多路音视频输入(含桌面共享)的步骤:
1、在初始化之后,设置启用桌面 ...

您好,我现在以实现同时输出两路视频流,还有个问题,录制视频文件时怎么选择录制桌面共享的视频流呢,用什么接口,还有录桌面共享的视频时能否录制同时把两个客户端对讲的声音同时录进去呢?
作者: 佰锐科技-刘洋    时间: 2017-12-21 14:28
Cris 发表于 2017-12-21 13:33
您好,我现在以实现同时输出两路视频流,还有个问题,录制视频文件时怎么选择录制桌面共享的视频流呢,用 ...

根据上面提到的第2步  第3步可以获取到桌面共享的视频流  在录制桌面共享的同时 可以把两个客户端对讲的声音同时录制进去
作者: Cris    时间: 2017-12-21 14:48
您没明白我的意思,我本地是输出了两个视频流的,一个是摄像头的视频,还有一个是共享桌面的流,现在用StreamRecordCtrlEx(dwSelfId, 1, 20,20,600,400, 0, "")录制视频的时候是录制的摄像头那一路流,我想知道的是怎么切换到录制屏幕共享的那路流。并且连同摄像头对讲的声音一并录到视频中去。
作者: 佰锐科技-梁国桦    时间: 2017-12-21 16:26
Cris 发表于 2017-12-21 13:33
您好,我现在以实现同时输出两路视频流,还有个问题,录制视频文件时怎么选择录制桌面共享的视频流呢,用 ...

两个客户端是包括自己和对方?
作者: Cris    时间: 2017-12-21 16:55
佰锐科技-梁国桦 发表于 2017-12-21 16:26
两个客户端是包括自己和对方?

首先,我实现客户端与其他终端视频对讲,客户端显示双方摄像头的实时画面,同时我在输出一个桌面共享的视频流,然后把这个桌面共享的视频流录制成视频文件。还是刚才的问题,本地输出两路视频流,能选择录制指定的流的视频文件么。能留个您的qq么。
作者: 佰锐科技-梁国桦    时间: 2017-12-21 22:47
Cris 发表于 2017-12-21 16:55
首先,我实现客户端与其他终端视频对讲,客户端显示双方摄像头的实时画面,同时我在输出一个桌面共享的视 ...

可以采用服务器合成流录制的方式。

开始录制代码:
  1. BRAC_StreamRecordCtrlEx(-1, 1, 0x1b37, 0, "");
复制代码
结束录制代码:
  1. BRAC_StreamRecordCtrlEx(-1, 0, 0x1b37, 0, "");
复制代码

作者: 佰锐科技-梁国桦    时间: 2017-12-21 22:57
用合成流录制的方式,其中“0x1b37”包含了服务器录制、合成流录制、混合房间内用户音视频录制、并列模式录制、触发本地回调等。
该种录制方式会把房间内所有的视频流、音频流都合成在一起(视频流包括自己和其他人的视频流、桌面共享流),然后由于采用服务器录制,所以必须部署视频服务器。

录像服务器的部署请参考:
Windows:http://bbs.anychat.cn/forum.php?mod=viewthread&tid=20
Linux:http://bbs.anychat.cn/forum.php?mod=viewthread&tid=943
作者: Cris    时间: 2017-12-22 11:12
2016-12-13 多路视频流合成录制时,支持选择指定的流进行录制
http://bbs.anychat.cn/forum.php? ... &fromuid=259536
(出处: AnyChat技术支持论坛)
录像的API接口为:BRAC_StreamRecordCtrlEx,该接口的最后一个参数“lpUserStr”为一个JSON字符串,可以通过该参数来控制录制的行为,包括指定录像文件名,"{'filename':'myname.mp4'}"。

新版本(AnyChat r6424)提供了新的功能特性,本次增加“streamlist”参数(JSON对象数组),可以通过该参数来控制录制的视频流,JSON格式定义如下:
{
    "streamlist": [
        {
            "userid": 100,
            "streamindex": 0
        },
        {
            "userid": 101,
            "streamindex": 1
        }
    ]
}

这个streamlist参数是怎么用的,放到BRAC_StreamRecordCtrlEx最后一个参数json里边去么,可以跟“filename”并列使用么
作者: 佰锐科技-刘洋    时间: 2017-12-22 11:31
Cris 发表于 2017-12-22 11:12
2016-12-13 多路视频流合成录制时,支持选择指定的流进行录制
http://bbs.anychat.cn/forum.php?mod=viewt ...

你好  可以的,filename跟streamlist同级!




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