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

4.0遇到的问题

Daghe
Beginner
10,233 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
yt__xia
Beginner
4,897 Views

@Xie, Wenlong (Intel)  如果说只需要纯音频的,或者存视频的方式加入房间该如做呢?

const audioConstraintsForMic = new Ics.Base.AudioTrackConstraints(Ics.Base.AudioSourceInfo.SCREENCAST);
const videoConstraintsForCamera = new Ics.Base.VideoTrackConstraints(Ics.Base.VideoSourceInfo.SCREENCAST);
 
Ics.Base.MediaStreamFactory.createMediaStream(constraints).then(stream => {
mediaStream = stream;
localStream = new Ics.Base.LocalStream(mediaStream, new Ics.Base.StreamSourceInfo('screen-cast', 'screen-cast'));
 
目前通这种方式出现一个问题,在屏幕共享的时候不选择音频报错一个错误:
ics.js:713 Uncaught (in promise) Error: options.audio/video cannot be true or an object if there is no audio/video track in remote stream.

 

0 Kudos
Daghe
Beginner
4,897 Views

forbidPub使用后请求成功感觉没起作用,预览画面及混合流画面依旧显示,如何判断forbidPub起作用了?

0 Kudos
Daghe
Beginner
4,897 Views

forbidSub后生效,是否可以自己写permitSub:{audio,true,video:true}; 取消forbidSub

0 Kudos
yt__xia
Beginner
4,897 Views

Daghe  请看 Quote #12的说明

 

0 Kudos
Daghe
Beginner
4,897 Views

通过验证:

forbidSub后再sub确实会报错:Uncaught (in promise) unauthorized   permitSub(自己重写权限:audio:true,video:true)后画面能正常显示

forbidPub后无混合流画面,报错Uncaught (in promise) unauthorized ,permitPub 再publish后需再次sub才能看到流画面

0 Kudos
yt__xia
Beginner
4,897 Views

@Xie, Wenlong (Intel)   多次验证发现,使用SIP呼叫参数的stream,无法被重复subscribe ,并且也没返回任何错误。

1.测试场景,浏览器先进入room,然后使用SIP 呼叫该room,sip的画面可以正常显示到合成里面,在streamadded 事件里面将sip的流退出合成(有嵌套,因此需要退出),然后重新subscribe 可也是可以正常的,偶尔也会无法显示,几率比较小(没打印错误)。

2. 新用户加入,在 resp.remoteStreams 里面找到 sip相关的流,进行subscribe的时候无法显示,也没打印任何异常日志。是本身就不支持这样的操作吗

 

0 Kudos
Wenlong_X_Intel
Employee
4,897 Views

@yt, xia  关于如何进行video-only的屏幕共享,只要把不需要的多媒体的值设定为false就可以了

如创建video-only的屏幕共享,只要在mediaStreamDeviceConstraints中的audio设置为false。

关于SIP呼叫,我们测试了如下的场景,并没有出现不能够sub的情况。

场景1:

1.user 1 使用sip加入room。此时user1可以加入mix画面,也能够sub到自己的forward流

2.user 2使用chrome加入room。此时mix画面中有user1和user2,user2可以sub user1和user2的forward流,user1也可以成功的sub所有forward流

场景2:

1.user1使用chrome加入room

2.user2使用sip加入room

3.user3使用chrome加入room

以上三个user都可以sub mix流和所有的forward流

 

0 Kudos
yt__xia
Beginner
4,897 Views

@Xie, Wenlong (Intel) user2进入房间是通过resp.remoteStreams 找到 stream.origin.startsWith('sip:') 然后进行 conference.subscribe(stream, {

audio: true,
video: true

}.then((

subscription) => {
subscriptionForScreen = subscription;
console.log(subscription)
$('.sip video').get(0).srcObject = stream.mediaStream;
});
 

 

我这边还是不行,不知道什么原因,谷歌版本 66.0.3359.139 ,sip 呼叫参数 

audio:format:{codec: "pcmu"} ,video:format:{codec: "h264"}

0 Kudos
yt__xia
Beginner
4,897 Views

@Xie, Wenlong (Intel) 测试发现,SIP入会的画面,经过streaming-outs ,传入sip入会的 流ID  返回成功,但是并不能通过rtmp正常观看

{"id":"716522781352293400","media":{"audio":{"from":"efd3d2a43930","format":{"codec":"aac","sampleRate":48000,"channelNum":2},"status":"active"},"video":{"from":"efd3d2a43930","format":{"codec":"h264"},"status":"active"}},"url":"rtmp://192.168.1.138/live/efd3d2a43930"}

 

查看后台日志  

2018-05-16 09:15:47.755  - INFO: ErizoJS - pid: 26799
2018-05-16 09:15:47.758  - INFO: ErizoJS - Connecting to rabbitMQ server...
2018-05-16 09:15:47.772  - INFO: AmqpClient - Connecting to rabbitMQ server OK, hostPort: { host: 'localhost', port: 5672 }
2018-05-16 09:15:47.813  - INFO: ErizoJS - streaming-36ffdb35bbb0cede0fd7@192.168.1.156_0 as rpc server ready
2018-05-16 09:15:47.816  - INFO: ErizoJS - streaming-36ffdb35bbb0cede0fd7@192.168.1.156_0 as monitor ready
2018-05-16 09:20:27,633  - INFO: woogeen.AVStreamOut - Initial audio options format(AAC_48000_2), sample rate(48000), channels(2), isRtpPacket(0)
2018-05-16 09:20:30,594  - ERROR: woogeen.AVStreamOut - No a/v frames, hasAudio(1) - ready(1), hasVideo(1) - ready(0), timeOutMs 3000
2018-05-16 09:20:30.594  - ERROR: StreamingNode - avstream-out fatal error: No a/v frames
2018-05-16 09:20:30,598  - INFO: woogeen.AVStreamOut - Closing rtmp://192.168.1.138/live/efd3d2a43930
2018-05-16 09:20:30,598  - INFO: woogeen.AVStreamOut - Closed
2018-05-16 09:20:30.638  - WARN: ErizoJS - Exiting on SIGTERM

0 Kudos
tony1
Beginner
4,897 Views

@Xie, Wenlong (Intel) 您好,使用streaming-ins方式(tmp://live.hkstv.hk.lxdns.com/live/hks)sub mix流画面能够正常出来,但是声音比较失真,有点颤音。这个情况如何处理?

0 Kudos
liu__bin
Beginner
4,897 Views

@tony 可以贴下您的streaming-ins 传参方式吗?

我这么传递的提示500.

curl -X POST -H "Content-Type:application/json"  127.0.0.1:3004/rooms/5b1f8d16e293076181a617e5/streaming-ins/  -d '{"connection":{"url":"rtmp://127.0.0.1/live/streamname"},"media":{"audio":true,"video":true}}' -v

错误码如下:

<pre>TypeError: Cannot read property &#39;protocol&#39; of undefined<br> &nbsp; &nbsp;at Object.startStreamingIn (/opt/rtc/mcu/4.0/extras/basic_example/rest.js:1327:37)<br> &nbsp; &nbsp;at /opt/rtc/mcu/4.0/extras/basic_example/samplertcservice.js:337:15<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (/opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/layer.js:95:5)<br> &nbsp; &nbsp;at next (/opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/route.js:137:13)<br> &nbsp; &nbsp;at Route.dispatch (/opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/route.js:112:3)<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (/opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/layer.js:95:5)<br> &nbsp; &nbsp;at /opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/index.js:281:22<br> &nbsp; &nbsp;at param (/opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/index.js:354:14)<br> &nbsp; &nbsp;at param (/opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/index.js:365:14)<br> &nbsp; &nbsp;at Function.process_params (/opt/rtc/mcu/4.0/extras/basic_example/node_modules/express/lib/router/index.js:410:3)</pre>

0 Kudos
liu__bin
Beginner
4,897 Views

streaming-ins传参通过如下可以集成,

curl -X POST -H "Content-Type:application/json"  127.0.0.1:3004/rooms/5b1f8d16e293076181a617e5/streaming-ins/  -d '{"url":"rtmp://127.0.0.1/live/streamname","transport":{"transportProtocol":"tcp","bufferSize":2048},"media":{"audio":true,"video":true}}' -v

这块的参数似乎与官方提供的rest-api 5.4对不上https://software.intel.com/en-us/documentation/intel-collaboration-suite-for-webrtc-documentation-mcu-management-rest-api

0 Kudos
Reply