Giter VIP home page Giter VIP logo

owt-client-javascript's Introduction

Open WebRTC Toolkit JavaScript SDK

Open WebRTC Toolkit JavaScript SDK builds on top of the W3C standard WebRTC APIs to accelerate development of real-time communications (RTC) for web applications, including peer-to-peer, broadcasting, and conference mode communications.

How to build release package

  1. Run npm install -g grunt-cli to install grunt. (You may need to chown -R $USER /usr/local for this to work.)
  2. Go to "scripts" folder.
  3. Run npm install to install development dependencies.
  4. Run grunt.
  5. Get release package in "dist" folder.

How to build uncompressed SDK

Run grunt debug in "scripts" folder and get files in "dist/sdk-debug".

Where to find API documents

Run grunt jsdoc in "scripts" folder and get docs in "dist/docs".

How to contribute

We warmly welcome community contributions to Open WebRTC Toolkit JavaScript SDK repository. If you are willing to contribute your features and ideas to OWT, follow the process below:

  • Make sure your patch will not break anything, including all the build and tests
  • Submit a pull request onto https://github.com/open-webrtc-toolkit/owt-client-javascript/pulls
  • Watch your patch for review comments if any, until it is accepted and merged OWT project is licensed under Apache License, Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contributions under these terms.

How to report issues

Use the "Issues" tab on Github.

See Also

http://webrtc.intel.com

owt-client-javascript's People

Contributors

arunetm avatar bshapero89 avatar cisco6 avatar cisco66666 avatar dependabot[bot] avatar gaomingkai avatar geekhyt avatar grgustaf avatar hexray-newbee avatar huachunbo avatar jianjunz avatar lijinxia avatar lzhai avatar qwu16 avatar starwarfan avatar taste1981 avatar wayunge avatar xiewenlong1202 avatar yanbin7 avatar yxian avatar zhangyihui1 avatar zhenqi522 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

owt-client-javascript's Issues

firefox(66) <-> chrome p2p: firefox get error message when chrome publish localStream to firefox

1: chrome and firefox connect server
2: chrome and firefox addRemoteId each other
3: firefox publish localstream to chrome will success
4: chrome publish local stream to firefox

expect : chrome publish success and firefox show remote stream good

error log:
About to set remote description. Signaling state: stable owt.js:9:79291
Signaling state changed: have-remote-offer owt.js:9:83050
Remote track added. owt.js:9:80524
Draining pending streams. owt.js:9:86010
Current description: [object RTCSessionDescription] owt.js:9:90779
Pending description: null owt.js:9:90852
Signaling state changed: stable owt.js:9:83050
Draining pending streams. owt.js:9:86010
Peer connection is ready for draining pending streams. owt.js:9:86101
Draining pending messages. owt.js:9:87455
Empty candidate. owt.js:9:80441
Received woogeen message. sc.websocket.js:118:7
Received signaling message from 12: {"type":"chat-closed","data":{"stack":"Error: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote answer sdp: Failed to apply the description for 0: Failed to set SSL role for the transport.","message":"Error happened at remote side."}} owt.js:9:67121
Channel received message: [object Object] owt.js:9:76185
Stream is removed. peercall.html:237:9
Signaling state changed: closed owt.js:9:83050
Remote stream removed. owt.js:9:82154
Received woogeen message. sc.websocket.js:118:7
Received signaling message from 12: {"type":"chat-closed","data":{"code":2500,"message":"Error happened at remote side."}} owt.js:9:67121
AbortError: The fetching process for the media resource was aborted by the user agent at the user's request.

p2p: chrome(72) call p2pClient.getStats(remoteId) and publication.getStats() can not get useful detail message.

1: client1(chrome) and client2(chrome) connect server with h264
2: client1 and client2 addAllowRemoteId each other
3: client1 publish to client2
4: client1 call p2pClient.getStats(client2Id)
expect : can get h264 in RTCStatsReport
actual :
peercall.html:138 RTCStatsReport {size: 69}size: 69__proto__: RTCStatsReportentries: ƒ entries()arguments: (...)caller: (...)length: 0name: "entries"proto: ƒ ()[[Scopes]]: Scopes[0]forEach: ƒ forEach()arguments: (...)caller: (...)length: 1name: "forEach"proto: ƒ ()apply: ƒ apply()arguments: (...)bind: ƒ bind()call: ƒ call()caller: (...)constructor: ƒ Function()length: 0name: ""toString: ƒ toString()Symbol(Symbol.hasInstance): ƒ Symbol.hasInstanceget arguments: ƒ ()set arguments: ƒ ()get caller: ƒ ()set caller: ƒ ()proto: Object[[FunctionLocation]]: [[Scopes]]: Scopes[0][[Scopes]]: Scopes[0]No propertiesget: ƒ ()arguments: (...)caller: (...)length: 1name: "get"proto: ƒ ()[[Scopes]]: Scopes[0]has: ƒ has()arguments: (...)caller: (...)length: 1name: "has"proto: ƒ ()[[Scopes]]: Scopes[0]keys: ƒ keys()arguments: (...)caller: (...)length: 0name: "keys"proto: ƒ ()apply: ƒ apply()arguments: (...)bind: ƒ bind()call: ƒ call()caller: (...)constructor: ƒ Function()length: 0name: ""toString: ƒ toString()Symbol(Symbol.hasInstance): ƒ Symbol.hasInstanceget arguments: ƒ ()arguments: (...)caller: (...)length: 0__proto__: ƒ ()[[Scopes]]: Scopes[0]set arguments: ƒ ()get caller: ƒ ()set caller: ƒ ()proto: Object[[FunctionLocation]]: [[Scopes]]: Scopes[0][[Scopes]]: Scopes[0]No propertiesvalues: ƒ values()arguments: (...)caller: (...)length: 0name: "values"proto: ƒ ()[[Scopes]]: Scopes[0]constructor: ƒ RTCStatsReport()size: (...)Symbol(Symbol.iterator): ƒ entries()arguments: (...)caller: (...)length: 0name: "entries"proto: ƒ ()apply: ƒ apply()arguments: (...)bind: ƒ bind()call: ƒ call()caller: (...)constructor: ƒ Function()length: 0name: ""toString: ƒ toString()Symbol(Symbol.hasInstance): ƒ Symbol.hasInstanceget arguments: ƒ ()set arguments: ƒ ()get caller: ƒ ()set caller: ƒ ()proto: Object[[FunctionLocation]]: [[Scopes]]: Scopes[0][[Scopes]]: Scopes[0]Symbol(Symbol.toStringTag): "RTCStatsReport"get size: ƒ size()arguments: (...)caller: (...)length: 0name: "get size"proto: ƒ ()[[Scopes]]: Scopes[0]No properties__proto__: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()defineGetter: ƒ defineGetter()defineSetter: ƒ defineSetter()lookupGetter: ƒ lookupGetter()lookupSetter: ƒ lookupSetter()get proto: ƒ proto()set proto: ƒ proto()

2 : client1 call publication.getStats()
actual:
peercall.html:138 []0: RTCStatsReportsize: 9__proto__: RTCStatsReportentries: ƒ entries()forEach: ƒ forEach()get: ƒ ()has: ƒ has()keys: ƒ keys()values: ƒ values()constructor: ƒ RTCStatsReport()size: (...)Symbol(Symbol.iterator): ƒ entries()Symbol(Symbol.toStringTag): "RTCStatsReport"get size: ƒ size()proto: Object1: RTCStatsReportsize: 9__proto__: RTCStatsReportlength: 2__proto__: Array(0)concat: ƒ concat()constructor: ƒ Array()copyWithin: ƒ copyWithin()entries: ƒ entries()every: ƒ every()fill: ƒ fill()filter: ƒ filter()find: ƒ find()findIndex: ƒ findIndex()flat: ƒ flat()flatMap: ƒ flatMap()forEach: ƒ forEach()includes: ƒ includes()indexOf: ƒ indexOf()join: ƒ join()keys: ƒ keys()lastIndexOf: ƒ lastIndexOf()length: 0map: ƒ map()pop: ƒ pop()push: ƒ push()reduce: ƒ reduce()reduceRight: ƒ reduceRight()reverse: ƒ reverse()shift: ƒ shift()slice: ƒ slice()some: ƒ some()sort: ƒ sort()splice: ƒ splice()toLocaleString: ƒ toLocaleString()toString: ƒ toString()unshift: ƒ unshift()values: ƒ values()Symbol(Symbol.iterator): ƒ values()Symbol(Symbol.unscopables): {copyWithin: true, entries: true, fill: true, find: true, findIndex: true, …}proto: Object

p2p: Multiple video codec publication expectation is wrong

1: user1(chrome) connect server with videoCodec vp9
2: user2(chrome) connect server with videoCodec vp8 and vp9
3: user1 and user2 addAllowRemoteId each other
4: user2 publish local stream to user1
5: user1 publish local stream to user2

expect : user1 and user2 send video codec is vp9
actual : user1 send video codec is vp8 ,user2 send video codec is vp9

chrome version 72

p2p : Firefox(65) can not publish stream to android with videoCodec h264

1: user1(Firefox) and user2(android) connect server with videoCodec h264
2: user1 and user2 addAllowRemoteId each other
3: user1 publish loclasteam to android

expect : firefox publish local stream success
actual: firefox publish local stream failed

log:
Received woogeen message. sc.websocket.js:117:7
Received signaling message from 11: {"type":"chat-ua","data":{"runtime":{"name":"webrtc","version":"67"},"sdk":{"type":"Android","version":4.1},"os":{"name":"Android","version":"6.0.1"},"capabilities":{"continualIceGathering":true,"unifiedPlan":true,"streamRemovable":true}}} owt.js:9:67121
Channel received message: [object Object] owt.js:9:76093
Received woogeen message. sc.websocket.js:117:7
Received signaling message from 11: {"type":"chat-signal","data":{"type":"answer","sdp":"v=0\r\no=- 8029645061154869922 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1 2\r\na=msid-semantic: WMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 109 9 0 8 101\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Wn6U\r\na=ice-pwd:P6uHKPA3hxUeiopOC7fqUfaI\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 4A:0E:EA:7A:44:5F:00:E7:C9:A9:E7:75:C0:D6:C4:B4:FF:5E:B7:83:85:09:13:35:D2:3A:46:96:10:5A:6B:96\r\na=setup:active\r\na=mid:0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:109 opus/48000/2\r\na=fmtp:109 minptime=10;useinbandfec=1\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:101 telephone-event/8000\r\nm=video 9 UDP/TLS/RTP/SAVPF\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Wn6U\r\na=ice-pwd:P6uHKPA3hxUeiopOC7fqUfaI\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 4A:0E:EA:7A:44:5F:00:E7:C9:A9:E7:75:C0:D6:C4:B4:FF:5E:B7:83:85:09:13:35:D2:3A:46:96:10:5A:6B:96\r\na=setup:active\r\na=mid:1\r\na=extmap:5 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:Wn6U\r\na=ice-pwd:P6uHKPA3hxUeiopOC7fqUfaI\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 4A:0E:EA:7A:44:5F:00:E7:C9:A9:E7:75:C0:D6:C4:B4:FF:5E:B7:83:85:09:13:35:D2:3A:46:96:10:5A:6B:96\r\na=setup:active\r\na=mid:2\r\na=sctp-port:5000\r\n"}} owt.js:9:67121
Channel received message: [object Object] owt.js:9:76093
About to set remote description. Signaling state: have-local-offer owt.js:9:79684
Signaling state changed: stable owt.js:9:83029
Draining pending streams. owt.js:9:86058
Peer connection is ready for draining pending streams. owt.js:9:86149
Draining pending messages. owt.js:9:87250
Set remote descripiton successfully. owt.js:9:79941
Draining pending messages. owt.js:9:87250
Received woogeen message. sc.websocket.js:117:7
Received signaling message from 11: {"type":"chat-closed","data":{"code":2502,"message":"SessionDescription is NULL."}} owt.js:9:67121
Channel received message: [object Object] owt.js:9:76093
Signaling state changed: closed owt.js:9:83029
Failed to share video.

chrome74beta client can not pub

publish local stream failed: Error: Ice procedure failed.
at t.value (owt.js:9)
at t.value (owt.js:9)
at C (owt.js:9)
at owt.js:9
at owt.js:9
at Array.map ()
at t.dispatchEvent (owt.js:9)
at r. (owt.js:9)
at r.emit (socket.io.js:6)
at r.onevent (socket.io.js:8)
owt.js:9 Cannot find specific remote stream.
(anonymous) @ owt.js:9
C @ owt.js:9
(anonymous) @ owt.js:9
(anonymous) @ owt.js:9
dispatchEvent @ owt.js:9
(anonymous) @ owt.js:9
r.emit @ socket.io.js:6
r.onevent @ socket.io.js:8
r.onpacket @ socket.io.js:8
(anonymous) @ socket.io.js:8
r.emit @ socket.io.js:6
r.ondecoded @ socket.io.js:6
(anonymous) @ socket.io.js:8
r.emit @ socket.io.js:6
a.add @ socket.io.js:6
r.ondata @ socket.io.js:6
(anonymous) @ socket.io.js:8
r.emit @ socket.io.js:6
r.onPacket @ socket.io.js:6
(anonymous) @ socket.io.js:6
r.emit @ socket.io.js:6
r.onPacket @ socket.io.js:7
r.onData @ socket.io.js:7
ws.onmessage @ socket.io.js:8
owt.js:9 ICE connection state changed to disconnected
owt.js:9 ICE connection state changed to failed
script2.js:1914 remote stream id: 5c8fe4b6c8d9e92e9c33f697-common
2owt.js:9 Remote stream added.
owt.js:9 ICE connection state changed to checking
owt.js:9 ICE connection state changed to connected
owt.js:9 Empty candidate.

Chrome browser is crashed when user publish simulcast stream with VP9 video codec

Steps:

  1. Create publish options:
    publishOptions = {
    audio : true,
    video:[
    {codecPayloadType:125,rid: 'q', active: true, scaleResolutionDownBy: 4.0},
    {codecPayloadType:125,rid: 'h', active: true, scaleResolutionDownBy: 2.0},
    {codecPayloadType:125,rid: 'f', active: true}
    ]
    }

  2. publish local camera stream with video codec
    client.publish(localStream, publishOptions,['VP9'])

Chrome browser will crash .
Chrome version is Version 76.0.3809.132 (Official Build) (64-bit)

Incorrectly specify AudioCodec in VideoCodecParameters description

new VideoCodecParameters()
Members


name :string
Name of a codec. Please use a value in Ics.Base.AudioCodec. However, some functions do not support all the values in Ics.Base.VideoCodec.
Type:
• string


profile :string
The profile of a codec. Profile may not apply to all codecs.
Type:
• string

Firefox only show single resolution for simulcast stream which published by Chrome browser

Steps

  1. Use Chrome browser to publish simulcast stream with codec as VP8 , resolution is 1280x720
    publish option is
    publishOptions = {
    audio : true,
    video : [
    {codecPayloadType:125,rid: 'h', active: true, scaleResolutionDownBy: 2.0},
    {codecPayloadType:125,rid: 'f', active: true}
    ]}

  2. Check the webrtc-internals and Chrome console , make sure the simulcast stream published successful. Check settings for corresponding remote stream ,there is two resolution : 1280x720 and 640x360

  3. Use Firefox to login and try to subscribe the stream published by Chrome in step1.
    There is only single resolution for this remote stream .


settings: {…}
​​​​​
audio: Array [ {…} ]
​​​​​
video: (1) […]
​​​​​​
0: {…}
​​​​​​​
bitrate: NaN
​​​​​​​
codec: Object { name: "vp8", profile: undefined }
​​​​​​​
frameRate: 30
​​​​​​​
keyFrameInterval: undefined
​​​​​​​
resolution: Object { width: 640, height: 360 }
​​​​​​​
rid: undefined
​​​​​​​
: Object { … }
​​​​​​
length: 1
​​​​​​
: Array []
​​​​​
: Object { … }
​​​​
source: Object { audio: "mic", video: "camera" }
​​​​
: Object { … }

: {…

A stop pushed stream , B haven't trigger 'ended' event

Operational steps:
1. A call createToken to get valid token,A join room.
2. B join room and pulish a atream.
3. A publish a stream then subscribe B's forward stream.
4. A stop A's pushed stream
Actual results:
B haven't trigger subscribe 'ended' event
Expect:
After stop A's pushed stream,B should trigger subscribe 'ended' event

Can not find some dependence files in unit test

in test/unit/test.html need some dependence files:
resources/scripts/gen/chai-as-promised-browserified.js
resources/scripts/gen/sinon-browserified.js

actual : can not find dependence file in resources/scripts

p2p : firefox(66) <-> android publish h264 with each other not work

1: user1(android), user2(firefox) conenct server with h264
2: user1 and user2 addAllowRemoteId each other
3: firefox publish to android will failed

firefox log:
Received woogeen message. sc.websocket.js:118:7
Received signaling message from 11: {"type":"chat-closed","data":{"code":2502,"message":"SessionDescription is NULL."}} owt.js:9:67121
Channel received message: [object Object] owt.js:9:76185
Signaling state changed: closed owt.js:9:83050
Failed to share video.

grunt debug command described in README no longer exists

I'm a bit confused or I would have submitted a PR to fix this myself.

The grunt debug target was removed in commit 2a09784.

The peercall.html in the src/ tree has a <script> tag that references "../../../dist/sdk-debug/owt.js". This implies the file would need to be hosted on a webserver that includes the dist/sdk-debug tree. That is only generated by grunt dev currently.

But when you run grunt by itself, it copies the sample code into the dist subdir, copies owt.js under the js/ subdir, and patches up that <script> tag. So maybe you intend for them to run the sample from there?

Grunt also overwrites the serverAddress line in the code with https://example.com:8096, so I wanted to add some text like this to the sample README:

After you run grunt in the owt-client-javascript/scripts directory, a modified copy of this sample will be placed the generated owt-client-javascript/dist directory. It might be easier to make these changes there, and host the dist/samples/p2p directory on the web.

One other thing to note is that in the src/ tree version of peercall.html, the serverAddress is set to http://example.com. I wonder if it should be https://example.com:8096.

Hope that makes sense.

Simulcast remote stream rid always display as undefined

Steps:

  1. Publish simulcast stream with option
    e.g
    publishOptions = {
    audio : true,
    video:[
    {codecPayloadType:125,rid: 'q', active: true, scaleResolutionDownBy: 4.0},
    {codecPayloadType:125,rid: 'h', active: true, scaleResolutionDownBy: 2.0},
    {codecPayloadType:125,rid: 'f', active: true}
    ]
  2. Check corresponding remote stream rid, it always display as undefined.

1: {"478090875793162750" => t}
key: "478090875793162750"
value: t
addEventListener: ƒ (t,n)
clearEventListener: ƒ (t)
dispatchEvent: ƒ (t)
extraCapabilities: e {audio: e, video: e}
removeEventListener: ƒ (t,n)
settings: e
audio: [e]
video: Array(1)
0: e
bitrate: NaN
codec: e {name: "vp8", profile: undefined}
frameRate: 30
keyFrameInterval: undefined
resolution: e {width: 80, height: 45}
rid: undefined

Simulcast rid should not set in video.parameters

Steps

  1. Publish simulcast stream , stream resolution is 640x320
    publish option is
    publishOptions = {
    audio : true,
    video : [
    {codecPayloadType:125,rid: 'h', active: true, scaleResolutionDownBy: 2.0},
    {codecPayloadType:125,rid: 'f', active: true}
    ]
    }
  2. Try to subscribe simulcast stream with subscription options
    subOptions = {"audio":true,"video":{"resolution":{"width":320,"height":180},"rid":'h'}}

It reports
Uncaught (in promise) request.media.video.parameters should NOT have additional properties "simulcastRid",request.media.video should be equal to constant

Here is socket.io message information :

4212["subscribe", {media: {audio: {from: "315506692244571970"},…}}]
0: "subscribe"
1: {media: {audio: {from: "315506692244571970"},…}}
media: {audio: {from: "315506692244571970"},…}
audio: {from: "315506692244571970"}
video: {from: "315506692244571970", parameters: {resolution: {width: 320, height: 180}, simulcastRid: "h"}}
from: "315506692244571970"
parameters: {resolution: {width: 320, height: 180}, simulcastRid: "h"}

chrome74beta client can not sub

subscribe failed: Error: Ice procedure failed.
at t.value (owt.js:9)
at t.value (owt.js:9)
at C (owt.js:9)
at owt.js:9
at owt.js:9
at Array.map ()
at t.dispatchEvent (owt.js:9)
at r. (owt.js:9)
at r.emit (socket.io.js:6)
at r.onevent (socket.io.js:8)
owt.js:9 ICE connection state changed to disconnected
owt.js:9 ICE connection state changed to failed

Subscription rid will not be set if subscribe option only contains rid

Try to subscribe simulcast stream using following subscription option
subOptions = {"audio":true,"video":{"rid":'h'}}
client.subscribe(remoteStream, subOptions)

It would not work.

Here is issue root cause
mediaOptions.video = {};
mediaOptions.video.from = stream.id;
if (options.video.resolution || options.video.frameRate || (options.video
.bitrateMultiplier && options.video.bitrateMultiplier !== 1) ||
options.video.keyFrameInterval) {
mediaOptions.video.parameters = {
resolution: options.video.resolution,
framerate: options.video.frameRate,
bitrate: options.video.bitrateMultiplier ? 'x'
+ options.video.bitrateMultiplier.toString() : undefined,
keyFrameInterval: options.video.keyFrameInterval,
simulcastRid: options.video.rid
};
}

Edge publish failed

1: Edge join rom
2: Edge publish local stream to mcu

expect : Edge publish success
actual : Edge publish failed

use Release-v20190811ubuntu.tgz Edge publish success
use Release-v20190827ubuntu.tgz Edge publish failed
sdp:
o=thisisadapterortc 818006064637465 0 IN IP4 127.0.0.1^M
s=-^M
t=0 0^M
a=group:BUNDLE ^M
a=ice-options:trickle^M

Two-way publication is failed

use p2p js sample ,two page and test in chrome(72)
1: user1 and user2 connect server
2: user1 and user2 addAllowRemoteId each other
3: user1 publish local stream to user2 success
4: user2 publish local stream to user1 failed

user1 get error message:
owt.js:9 Uncaught ReferenceError: tracksInfo is not defined
at t.value (owt.js:9)
at RTCPeerConnection._isUnifiedPlan._pc.onaddstream (owt.js:9)

Shared Screen Delay Problem

User 1 logs in to the meeting and opens the shared screen

User 2 logs in to the conference and gets the shared screen

User 1 moves the mouse. User 2 will delay about 1-2 seconds in acquiring the shared screen.

chrome <-> firefox: chrome republish sharecreen to firefox failed

1: chrome and firefox connect server
2: chrome and firefox addAllowRemoteId each other
3: chrome publish sharescreen with video and audio wil success
4: chrome stop sharescreen
5: chrome republish sharescreen again

chrome : 74
firefox: 67 (mac 10.14)

expect after step 5 firefox can receive sharescreen
actual : firefox can not receive sharescreen
firefox.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.