Intel® Collaboration Suite for WebRTC
Community support and discussions on the Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC).
1149 Discussions

4.0遇到的问题

Daghe
Beginner
12,111 Views

1.video-agent 软硬件问题   启动mcu与vca卡中的video-agent,房间开始使用MCU中的video-agent模块,手动关闭该模块,自动切换到vca卡中的video-agent可以看到cpu明显上升,混合流画面停止,刷新后混合流画面不显示,需启动MCU中video-agent才能正常显示,若开始使用的是VCA卡中的video-agent亦是同样的情况,请帮忙复现

2.updateRoom更改房间配置返回500错误,是接口调用失败?看到restapi中有updateRoomPartially,如何更改房间内的配置?,3300/console中配置修改后apply能否将配置立即生效而不需重新启动服务

3.webrtc-agent/agent.toml中的stunserver,ip和端口设置未生效,iceServer在创建conference如何添加stunServer与turnServer,在demo中使用如下代码抓包未启作用

 conference = new Ics.Conference.ConferenceClient(
        {
                iceServers: [{
                        urls: "stun:xxx:3478"
                }, {
                        urls: [
                                "turn:xxx:3478?transport=udp",
                                "turn:xxx:3478?transport=tcp"
                        ],
                        credential: "123456",
                        username: "aaa"
                }]
        });

期待回复,感谢!!

0 Kudos
32 Replies
Qiujiao_W_Intel
Employee
6,488 Views

Hi, 关于问题1,我们这边没能复现,请回答以下问题:

a VCA卡的image版本

b. VCA卡使用的video agent是不是4.0的版本
c. video_agent中rabbit host设置的是不是跟其他MCU模块一样的host地址

video agent中的hardwareAcceletrated是否设置为true

e 看到CPU明显上升是大概多少,混合流画面不显示之后MCU的log里有没什么异常信息,请提供相关的log信息

问题2: updateRoomPartially API这个版本不支持,请使用updateRoom更改房间配置。3300/console中配置修改后如果房间里没有任何流连接新的配置会在6s后生效

问题3:4.0设置iceServer的设置接口有变化,请参照下面方式进行,具体请参考文档说明:

var conference = Woogeen.ConferenceClient.create({iceServers : [{

        urls: "turn:xx.xx.xx.xx:xx?transport=tcp",

       credential: "xxx",

       username: "xxx"

        }]});

 

0 Kudos
Daghe
Beginner
6,488 Views

VCA的image版本  vca_persistent_centos7.2_1.3.48.img   

hardwareAcceletrated设置为true 

CPU上升单核35% GPU 2% ,日志无异常信息

关闭video-agent自动切换CPU上升,等待一段时间后刷新混合流画面出现,video-agent切换需要等待的时间? Centos必须使用7.3?

 

0 Kudos
Daghe
Beginner
6,488 Views

var config = { 

  publishLimit: -1,

   userLimit: -1  

};

updateRoom(myRoom,config);更新房间配置信息返回500错误,config必须是整个房间的配置,还是调用的方法有问题?

感谢回复!

0 Kudos
Qiujiao_W_Intel
Employee
6,488 Views

vca卡跟MCU是在同一个网络环境下吗?切换慢的话大概等待多久才出现的画面?client是用什么客户端publish stream的,请确认继续增加用户publish跟subscribe CPU是否还是快速上升,centos不一定要是7.3. 

updateRoom中的config必须是整个房间的配置信息

0 Kudos
Daghe
Beginner
6,488 Views

video-agent自动切换问题应该是我配置的webrtc-agent/webrtc外网映射出现的问题,使用内网时现在已经能正常切换工作

客户端为chrome最新版本66.0.3359.139

当MCU工作在NAT后时,portal/portal.toml的ip设置为映射的外网地址,端口需与映射的端口保持一致,webrtc中network_interface=[{name = "映射的端口,replace_address = "映射的外网地址""}],udp端口为55535-55536仅开放两个端口,该配置会偶先刷新不显示混合流画面,日志无错误信息,配置有问题?

updateRoom当房间内有流时修改背景颜色与布局layout,查看响应参数是生效的,但刷新后画面依旧是之前的配置,updateRoom时,房间内不允许有流的连接?

感谢!

0 Kudos
yt__xia
Beginner
6,488 Views

4.0 怎么创建 H246 的 流呢? 测试步骤 使用chrome 采集的摄像头调用streaming-outs 返回 500 ,使用streaming-ins 方式添加rtmp方式,在调用streaming-outs 时可以正常推流的, 调试观察 使用rtmp方式,h264 aac 使用 浏览器采集摄像头方式 vp8 opus 但是新接口没找到怎么改变编码格式

0 Kudos
Daghe
Beginner
6,488 Views

房间内有流时,forbidSub,forbidPub调用后感觉没起作用,混合流画面依旧显示

0 Kudos
Qiujiao_W_Intel
Employee
6,488 Views

@Daghe 当有多个连接时, webrtc agent需要使用的udp端口数也会随着增加,两个udp端口不够用,请开放更多的udp端口如果有多个连接。updateRoom如果要生效的话要求房间内没有流6s之后才会生效。forbidSub, forbidPub对已经存在的流不起作用,只对后面加入的流起作用

@yt 我理解你的问题是如何publish h264的流,这个可以在调用publish API的时候指定videoCodec, 推流的时候可以在调用streaming-outs的restful API的json data里指定videoCodec

0 Kudos
Qiujiao_W_Intel
Employee
6,488 Views

@Daghe 前面关于iceserver设置的示例是旧的版本,请参照文档使用下面新的版本:

 const conference = new Ics.Conference.ConferenceClient({

    rtcConfiguration: {

      iceServers: [{

        urls: ["turn:xx.xx.xx.xx?transport=tcp"],

        credential: "xxx",

        username: "xxx"

      }]

    }

  });

0 Kudos
yt__xia
Beginner
6,488 Views

我改怎么使用streaming-outs 将mix 流推到rtmp 服务上呢? 

"info": {
"label": "common",
"activeInput": "648025971757003600",
....
 
 
是使用activeInput  这个流ID吗?
 
使用非合成的摄像头流,也是同样的错误,是使用方法不对吗?
"id": "184603000989775680",
"type": "forward",
"media": {
"audio": {
"status": "active",
"format": {
"codec": "opus",
"sampleRate": 48000,
"channelNum": 2
},
"source": "mic",
},
"video": {
"status": "active",
"format": {
"codec": "vp8"
},
"source": "camera",
"parameters": {
"resolution": {
"width": 640,
"height": 480
},
"framerate": 30
},
 
}
但是始终返回  500 错误
 
日志查看
2018-05-07 11:40:53,107  - INFO: woogeen.AVStreamOut - Closing rtmp://192.168.1.138/live/5aebb3dc73f1432f009975cd-common
2018-05-07 11:40:53,113  - INFO: woogeen.AVStreamOut - Closed
 
另外:关于forbidSub,forbidPub 设置后,是对后面进入该room的人员的限制么,包括任何role? 使用 presenter 
测试,确实没发现有什么作用。

 

0 Kudos
Wenlong_X_Intel
Employee
6,488 Views

@yt, xia 

1. 关于forbidsub与forbidpub,是禁用的是指定的单个用户的sub及pub权限,是起效的。

使用如下场景,使用samplepage,默认是会sub mix流的。之后调用forbidsub接口,成功返回后,不要刷新页面,被指定的用户再调用sub相关的接口都不会成功,而是得到一个跟授权相关的错误。也可以让被指定的用户unsub mix流,之后再次sub mix流,这时sub也是不会成功的。

forbidsub或forbidpub,是对单个用户的行为,不能够作用到新增加的用户。刷新页面会有用户的退出和新加入发生,这时的用户标识已经不同了, 所以也不会再起作用

2. 关于如何使用streaming-outs推流到rtmpserver

首先,调用getStreams接口获取到房间中的流信息,一般第一个为房间中的mix流,信息类似:

{
        "id": "5adee0cb367b2758669bed9b-common",
        "type": "mixed",
        "media": {
            "audio": {
                "format": {
                    "channelNum": 2,
                    "sampleRate": 48000,
                    "codec": "opus"
其中的id就是streaming-out接口中使用的流ID

之后调用streaming-out接口,调用要传入以下参数:

{

"url": "rtmpserver://streamurl",

"media": {

    "audio": { "from": "mixstreamid" },

    "video": { "from": "mixstreamid",

                     "parameters":{ "keyFrameInterval": 2}  // the parameter object for video, can give resolution, frameRate etc

                  }

    }

}

我们使用这样的参数调用可以正确工作

0 Kudos
yt__xia
Beginner
6,488 Views

@Xie, Wenlong (Intel)  非常感谢, 将 hardware 选项关闭后,可以正常使用streaming-outs 接口了。forbidsub/forbidpub 也可以了。硬件编码,不知道是什么原因,不支持h264吗?

0 Kudos
Wenlong_X_Intel
Employee
6,488 Views

@yt, xia 关于你说的硬件不能够进行H264编码的问题,希望能提供一些具体的环境参数,方便我们这边重现和模拟

1.你使用的硬件是什么?VCA硬件还是有硬件加速的机器?

2.如果是VCA硬件,那VCA硬件的版本和上面运行的image的版本分别是什么?

3.如果是硬件加速的机器,那使用的MSDK版本是什么?机器的CPU型号等等机器信息是什么?

 

0 Kudos
yt__xia
Beginner
6,488 Views

@Xie, Wenlong (Intel)

   Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz

  我看说明好像只能支持到  第4代及以上

0 Kudos
yt__xia
Beginner
6,488 Views

@Xie, Wenlong (Intel)  会有和  3.5 一样的接口使用说明么。很多参数不知道怎么传,和3.5 差别很大,例如本地摄像头怎么修改分辨率之类的,录制的时候选择mp4无法录制,设置json会报错,也不知该怎么传。

videoFrom: {

codec: 'h264'
},
audioFrom: {
codec: 'aac'
}
0 Kudos
Daghe
Beginner
6,488 Views

@Qiujiao W. (Intel)

1.现在混合流画面没有全屏的按钮?之前的版本是支持全屏的

2.录制的文件名如何改变,而不是默认的startRecording返回的id,录制时是否能指定keyFrameRate等视频参数

3.updateRoomPartially是否会再之后的版本修改,能否实现修改(画面布局)立即生效而不是房间内必须没有流?

期待回复,谢谢

 

0 Kudos
Wenlong_X_Intel
Employee
6,488 Views

@ yt, xia

4.0也是有关于RESTful api的文档说明的,后面会上线,请关注官方页面的相关信息。

可以下载文档包,查看关于各个接口的使用说明。

另外,使用硬件模式,有两种方式:1.使用支持硬件加速的cpu,并且需要安装相应的MSDK软件包,具体请参考官方页面。2.使用VCA专用硬件进行硬件解码,具体也请参看官方页面的说明。

 

 

0 Kudos
Qiujiao_W_Intel
Employee
6,488 Views

@Daghe, 我们提供的是sample page,全屏功能是浏览器提供的接口,需要的话可以自行添加
录制下来的文件名id是固定的, 如果需要修改文件名可以将id记录下来在录制结束之后自行修改文件名

我们有计划在后续版本中支持updateRoomPartially功能,敬请期待

配置实时生效这个我们暂时不会支持

0 Kudos
yt__xia
Beginner
6,488 Views

@Xie, Wenlong (Intel)    关于屏幕共享报错问题

const audioConstraintsForMic = new Ics.Base.AudioTrackConstraints(Ics.Base.AudioSourceInfo.SCREENCAST);
const videoConstraintsForCamera = new Ics.Base.VideoTrackConstraints(Ics.Base.VideoSourceInfo.SCREENCAST);
videoConstraintsForCamera.frameRate = 25;
videoConstraintsForCamera.resolution = Resolution;
videoConstraintsForCamera.deviceId = 'jgodoicpeogbcecimafplcnomdkfkipd';
设备ID传的是屏幕共享插件的ID
是否是这样使用的呢,始终都返回错误
 
Failed to create MediaStream, TypeError: Extension ID must be specified for screen sharing on Chrome.
0 Kudos
Wenlong_X_Intel
Employee
6,362 Views

yt, xia

进行屏幕共享,请使用Ics.Base.MediaStreamFactory.createMediaStream(constraints)方法

其中constraints是一个对象,包含以下三个属性:

audio: Ics.Base.AudioTrackConstraints

video: Ics.Base.VideoTrackConstraints

extensionId: extensionid

0 Kudos
Reply