Intel® Collaboration Suite for WebRTC
Community support and discussions on the Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC).
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646

4.0遇到的问题

Daghe
Beginner
781 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
513 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"

        }]});

 

Daghe
Beginner
513 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?

 

Daghe
Beginner
513 Views

var config = { 

  publishLimit: -1,

   userLimit: -1  

};

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

感谢回复!

Qiujiao_W_Intel
Employee
513 Views

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

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

Daghe
Beginner
513 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时,房间内不允许有流的连接?

感谢!

yt__xia
Beginner
513 Views

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

Daghe
Beginner
513 Views

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

Qiujiao_W_Intel
Employee
513 Views

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

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

Qiujiao_W_Intel
Employee
513 Views

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

 const conference = new Ics.Conference.ConferenceClient({

    rtcConfiguration: {

      iceServers: [{

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

        credential: "xxx",

        username: "xxx"

      }]

    }

  });

yt__xia
Beginner
513 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 
测试,确实没发现有什么作用。

 

Wenlong_X_Intel
Employee
513 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

                  }

    }

}

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

yt__xia
Beginner
513 Views

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

Wenlong_X_Intel
Employee
513 Views

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

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

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

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

 

yt__xia
Beginner
513 Views

@Xie, Wenlong (Intel)

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

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

yt__xia
Beginner
513 Views

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

videoFrom: {

codec: 'h264'
},
audioFrom: {
codec: 'aac'
}
Daghe
Beginner
513 Views

@Qiujiao W. (Intel)

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

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

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

期待回复,谢谢

 

Wenlong_X_Intel
Employee
513 Views

@ yt, xia

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

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

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

 

 

Qiujiao_W_Intel
Employee
513 Views

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

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

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

yt__xia
Beginner
513 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.
Wenlong_X_Intel
Employee
387 Views

yt, xia

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

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

audio: Ics.Base.AudioTrackConstraints

video: Ics.Base.VideoTrackConstraints

extensionId: extensionid

Reply