screenshare stream publishing with react native

We are succesfully publishing webcam stream with react native


But for screenshare stream we got this error

no active media section found
All nested objects in logs (codecs, extensionHeaders, tracks) are the same and screenshare stream can be played localy.

  1. Try the same code using mediasoup-client in Chrome by forcing “Chrome56” handler when creating the mediasoup-client Device instance. Does it work?
  2. Paste the local and remote SDPs step by step. They are shown in the logs.


This is not what I asked for, sorry.





Sorry, but that’s all logs. There is nothing like send() | calling pc.setLocalDescription() as in browser even with debug.enable('*');

Also there is no Chrome56. Only 55

Yeah, 55

The most strange part is that track’s readyState is ended. Even for camera and mic (both can be succesfully published)

Definitely I’m not gonna give support about react-native-webrtc. I don’t do React-Native for long. Please test in Chrome browser with Chrome55 handler and confirm whether the same scenario works or not.

As you can see there is Chrome55 handler in logs. Like you asked.

These logs do exist in all device handlers.

So, does it work in Chrome with Chrome55 handler?

But as you can see these logs appears only after part with error.

I will be honest. I cannot check in detail those screenshots. Please paste the relevant logs as text, and encode them into (without the arrows):

> ```
> // code here
> ```

Not sure if that is in RN or in Chrome.

BTW:

  • Screen sharing does perfectly work in the mediasoup-demo by forcing Chrome55: https://v3demo.mediasoup.org/?handler=Chrome55
  • In mediasoup-client there is NO difference between producing a webcam track or a screen sharing track. Both are just video tracks.
  • If you are calling transport.produce() with a track in “ended” state, that’s not a bug in mediasoup-client. Maybe you just inspected those logs after closing the Producers so their properties get updated in the previous log (since they are logged objects).
common.js:114 mediasoup-client:Device constructor() +0ms
common.js:114 mediasoup-client:Device constructor() | handler given: ReactNative +0ms
common.js:114 mediasoup-client:ReactNative close() +0ms
conference-api.ts:157 [init] iceServers:  undefined
common.js:114 mediasoup-client:Device load() [routerRtpCapabilities:{codecs: Array(3), headerExtensions: Array(12)}codecs: Array(3)0: kind: "audio"mimeType: "audio/opus"clockRate: 48000channels: 2rtcpFeedback: Array(1)0: type: "transport-cc"parameter: ""__proto__: Objectlength: 1__proto__: Array(0)parameters: {}preferredPayloadType: 101__proto__: Object1: kind: "video"mimeType: "video/VP8"clockRate: 90000rtcpFeedback: Array(5)0: {type: "nack", parameter: ""}1: {type: "nack", parameter: "pli"}2: {type: "ccm", parameter: "fir"}3: {type: "goog-remb", parameter: ""}4: {type: "transport-cc", parameter: ""}length: 5__proto__: Array(0)parameters: x-google-start-bitrate: 1000__proto__: ObjectpreferredPayloadType: 102__proto__: Object2: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 100, clockRate: 90000, parameters: {…}, …}length: 3__proto__: Array(0)headerExtensions: Array(12)0: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:sdes:mid", preferredId: 1, preferredEncrypt: false, direction: "recvonly"}1: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:sdes:mid", preferredId: 1, preferredEncrypt: false, direction: "recvonly"}2: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id", preferredId: 2, preferredEncrypt: false, direction: "recvonly"}3: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id", preferredId: 3, preferredEncrypt: false, direction: "recvonly"}4: {kind: "audio", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 4, preferredEncrypt: false, direction: "sendrecv"}5: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 4, preferredEncrypt: false, direction: "sendrecv"}6: {kind: "audio", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 5, preferredEncrypt: false, direction: "recvonly"}7: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 5, preferredEncrypt: false, direction: "sendrecv"}8: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", preferredId: 6, preferredEncrypt: false, direction: "sendrecv"}9: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:framemarking", preferredId: 7, preferredEncrypt: false, direction: "sendrecv"}10: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", preferredId: 10, preferredEncrypt: false, direction: "sendrecv"}11: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", preferredId: 12, preferredEncrypt: false, direction: "sendrecv"}length: 12__proto__: Array(0)__proto__: Object] +371ms
common.js:114 mediasoup-client:ReactNative getNativeRtpCapabilities() +371ms
common.js:114 mediasoup-client:Device load() | got native RTP capabilities:{codecs: Array(21), headerExtensions: Array(11)}codecs: Array(21)0: {kind: "audio", mimeType: "audio/opus", preferredPayloadType: 111, clockRate: 48000, channels: 2, …}1: {kind: "audio", mimeType: "audio/ISAC", preferredPayloadType: 103, clockRate: 16000, channels: 1, …}2: {kind: "audio", mimeType: "audio/ISAC", preferredPayloadType: 104, clockRate: 32000, channels: 1, …}3: {kind: "audio", mimeType: "audio/G722", preferredPayloadType: 9, clockRate: 8000, channels: 1, …}4: {kind: "audio", mimeType: "audio/ILBC", preferredPayloadType: 102, clockRate: 8000, channels: 1, …}5: {kind: "audio", mimeType: "audio/PCMU", preferredPayloadType: 0, clockRate: 8000, channels: 1, …}6: {kind: "audio", mimeType: "audio/PCMA", preferredPayloadType: 8, clockRate: 8000, channels: 1, …}7: {kind: "audio", mimeType: "audio/CN", preferredPayloadType: 106, clockRate: 32000, channels: 1, …}8: {kind: "audio", mimeType: "audio/CN", preferredPayloadType: 105, clockRate: 16000, channels: 1, …}9: {kind: "audio", mimeType: "audio/CN", preferredPayloadType: 13, clockRate: 8000, channels: 1, …}10: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 110, clockRate: 48000, channels: 1, …}11: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 112, clockRate: 32000, channels: 1, …}12: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 113, clockRate: 16000, channels: 1, …}13: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 126, clockRate: 8000, channels: 1, …}14: {kind: "video", mimeType: "video/VP8", preferredPayloadType: 96, clockRate: 90000, parameters: {…}, …}15: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 97, clockRate: 90000, parameters: {…}, …}16: {kind: "video", mimeType: "video/VP9", preferredPayloadType: 98, clockRate: 90000, parameters: {…}, …}17: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 99, clockRate: 90000, parameters: {…}, …}18: {kind: "video", mimeType: "video/red", preferredPayloadType: 100, clockRate: 90000, parameters: {…}, …}19: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 101, clockRate: 90000, parameters: {…}, …}20: {kind: "video", mimeType: "video/ulpfec", preferredPayloadType: 127, clockRate: 90000, parameters: {…}, …}length: 21__proto__: Array(0)headerExtensions: Array(11)0: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", preferredId: 1, preferredEncrypt: false, direction: "sendrecv"}1: {kind: "audio", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 2, preferredEncrypt: false, direction: "sendrecv"}2: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", preferredId: 14, preferredEncrypt: false, direction: "sendrecv"}3: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 13, preferredEncrypt: false, direction: "sendrecv"}4: {kind: "video", uri: "urn:3gpp:video-orientation", preferredId: 3, preferredEncrypt: false, direction: "sendrecv"}5: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 2, preferredEncrypt: false, direction: "sendrecv"}6: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay", preferredId: 5, preferredEncrypt: false, direction: "sendrecv"}7: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/video-content-type", preferredId: 6, preferredEncrypt: false, direction: "sendrecv"}8: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/video-timing", preferredId: 7, preferredEncrypt: false, direction: "sendrecv"}9: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", preferredId: 8, preferredEncrypt: false, direction: "sendrecv"}10: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/color-space", preferredId: 9, preferredEncrypt: false, direction: "sendrecv"}length: 11__proto__: Array(0)__proto__: Object +30ms
common.js:114 mediasoup-client:Device load() | got extended RTP capabilities:{codecs: Array(2), headerExtensions: Array(6)}codecs: Array(2)0: {mimeType: "audio/opus", kind: "audio", clockRate: 48000, channels: 2, localPayloadType: 111, …}1: {mimeType: "video/VP8", kind: "video", clockRate: 90000, channels: undefined, localPayloadType: 96, …}length: 2__proto__: Array(0)headerExtensions: Array(6)0: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", sendId: 13, recvId: 4, encrypt: false, …}1: {kind: "audio", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", sendId: 2, recvId: 5, encrypt: false, …}2: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", sendId: 2, recvId: 5, encrypt: false, …}3: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", sendId: 8, recvId: 6, encrypt: false, …}4: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", sendId: 1, recvId: 10, encrypt: false, …}5: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", sendId: 14, recvId: 12, encrypt: false, …}length: 6__proto__: Array(0)__proto__: Object +1ms
common.js:114 mediasoup-client:Device load() | got receiving RTP capabilities:{codecs: Array(3), headerExtensions: Array(5)}codecs: Array(3)0: {mimeType: "audio/opus", kind: "audio", preferredPayloadType: 101, clockRate: 48000, channels: 2, …}1: {mimeType: "video/VP8", kind: "video", preferredPayloadType: 102, clockRate: 90000, parameters: {…}, …}2: {mimeType: "video/rtx", kind: "video", preferredPayloadType: 100, clockRate: 90000, parameters: {…}, …}length: 3__proto__: Array(0)headerExtensions: Array(5)0: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 4, preferredEncrypt: false, direction: "sendrecv"}1: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 5, preferredEncrypt: false, direction: "sendrecv"}2: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", preferredId: 6, preferredEncrypt: false, direction: "sendrecv"}3: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", preferredId: 10, preferredEncrypt: false, direction: "sendrecv"}4: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", preferredId: 12, preferredEncrypt: false, direction: "sendrecv"}length: 5__proto__: Array(0)__proto__: Object +1ms
common.js:114 mediasoup-client:ReactNative getNativeSctpCapabilities() +31ms
common.js:114 mediasoup-client:Device load() | got native SCTP capabilities:{numStreams: {…}}numStreams: OS: 1024MIS: 1024__proto__: Object__proto__: Object +1ms
common.js:114 mediasoup-client:Device load() succeeded +0ms
common.js:114 mediasoup-client:ReactNative close() +1ms
conference-api.ts:178 [init] this.iceServers:  (2) [{…}, {…}]0: Objecturls: Array(1)username: "testUser"credential: "testPassword"get urls: ƒ ()set urls: ƒ ()get username: ƒ ()set username: ƒ ()get credential: ƒ ()set credential: ƒ ()__proto__: Object1: Objecturls: Array(1)username: "testUser"credential: "testPassword"get urls: ƒ ()set urls: ƒ ()get username: ƒ ()set username: ƒ ()get credential: ƒ ()set credential: ƒ ()__proto__: Objectlength: 2get 0: ƒ ()set 0: ƒ ()get 1: ƒ ()set 1: ƒ ()__proto__: Array(0)
common.js:114 mediasoup-client:Device createSendTransport() +113ms
common.js:114 mediasoup-client:Transport constructor() [id:040fbf5e-4352-4783-99d9-8c73a149174e, direction:send] +0ms
common.js:114 mediasoup-client:ReactNative run() +114ms
common.js:114 mediasoup-client:Transport produce() [track:EventTarget {_enabled: true, id: "d5bef8cd-aaf9-461e-97f5-49930351bf1c", kind: "video", label: "d5bef8cd-aaf9-461e-97f5-49930351bf1c", muted: false, …}enabled: trueonended: nullonmute: nullonunmute: nullonoverconstrained: null_enabled: trueid: "d5bef8cd-aaf9-461e-97f5-49930351bf1c"kind: "video"label: "d5bef8cd-aaf9-461e-97f5-49930351bf1c"muted: falsereadonly: trueremote: falsereadyState: "ended"Symbol(listeners): {ended: {…}}ended: {kind: 2, next: null, listener: ƒ}listener: ƒ _callee2()length: 0name: "_callee2"arguments: nullcaller: nullprototype: {constructor: ƒ}__proto__: ƒ ()[[FunctionLocation]]: conference-api.ts:248[[Scopes]]: Scopes[4]kind: 2next: null__proto__: Object__proto__: EventTarget] +2ms
common.js:114 mediasoup-client:ReactNative send() [kind:video, track.id:d5bef8cd-aaf9-461e-97f5-49930351bf1c] +3ms
backend.js:32 Possible Unhandled Promise Rejection (id: 0):
Error: no active media section found
Error: no active media section found
    at Object.extractDtlsParameters (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:133427:29)
    at ReactNative._setupTransport$ (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:143284:49)
    at tryCatch (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26923:19)
    at Generator.invoke [as _invoke] (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:27099:24)
    at Generator.prototype.<computed> [as next] (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26966:23)
    at tryCatch (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26923:19)
    at invoke (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26999:22)
    at http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:27029:13
    at tryCallTwo (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:28870:7)
    at doResolve (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:29034:15)
r @ backend.js:32
console.warn @ LogBox.js:36
registerWarning @ YellowBox.js:162
warnImpl @ YellowBox.js:88
console.warn @ YellowBox.js:66
onUnhandled @ Promise.js:41
onUnhandled @ rejection-tracking.js:71
(anonymous) @ JSTimers.js:238
_callTimer @ JSTimers.js:135
callTimers @ JSTimers.js:387
__callFunction @ MessageQueue.js:425
(anonymous) @ MessageQueue.js:112
__guard @ MessageQueue.js:373
callFunctionReturnFlushedQueue @ MessageQueue.js:111
(anonymous) @ debuggerWorker.d9da4ed7.js:4

Also with Chrome55

common.js:114 mediasoup-client:Device constructor() +0ms
common.js:114 mediasoup-client:Device constructor() | handler given: Chrome55 +1ms
common.js:114 mediasoup-client:Chrome55 close() +0ms
conference-api.ts:157 [init] iceServers:  undefined
common.js:114 mediasoup-client:Device load() [routerRtpCapabilities:{codecs: Array(3), headerExtensions: Array(12)}codecs: Array(3)0: kind: "audio"mimeType: "audio/opus"clockRate: 48000channels: 2rtcpFeedback: [{…}]parameters: {}preferredPayloadType: 101__proto__: Object1: kind: "video"mimeType: "video/VP8"clockRate: 90000rtcpFeedback: (5) [{…}, {…}, {…}, {…}, {…}]parameters: {x-google-start-bitrate: 1000}preferredPayloadType: 102__proto__: Object2: kind: "video"mimeType: "video/rtx"preferredPayloadType: 100clockRate: 90000parameters: {apt: 102}rtcpFeedback: []__proto__: Objectlength: 3__proto__: Array(0)headerExtensions: Array(12)0: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:sdes:mid", preferredId: 1, preferredEncrypt: false, direction: "recvonly"}1: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:sdes:mid", preferredId: 1, preferredEncrypt: false, direction: "recvonly"}2: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id", preferredId: 2, preferredEncrypt: false, direction: "recvonly"}3: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id", preferredId: 3, preferredEncrypt: false, direction: "recvonly"}4: {kind: "audio", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 4, preferredEncrypt: false, direction: "sendrecv"}5: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 4, preferredEncrypt: false, direction: "sendrecv"}6: {kind: "audio", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 5, preferredEncrypt: false, direction: "recvonly"}7: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 5, preferredEncrypt: false, direction: "sendrecv"}8: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", preferredId: 6, preferredEncrypt: false, direction: "sendrecv"}9: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:framemarking", preferredId: 7, preferredEncrypt: false, direction: "sendrecv"}10: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", preferredId: 10, preferredEncrypt: false, direction: "sendrecv"}11: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", preferredId: 12, preferredEncrypt: false, direction: "sendrecv"}length: 12__proto__: Array(0)__proto__: Object] +330ms
common.js:114 mediasoup-client:Chrome55 getNativeRtpCapabilities() +331ms
common.js:114 mediasoup-client:Device load() | got native RTP capabilities:{codecs: Array(21), headerExtensions: Array(11)}codecs: Array(21)0: {kind: "audio", mimeType: "audio/opus", preferredPayloadType: 111, clockRate: 48000, channels: 2, …}1: {kind: "audio", mimeType: "audio/ISAC", preferredPayloadType: 103, clockRate: 16000, channels: 1, …}2: {kind: "audio", mimeType: "audio/ISAC", preferredPayloadType: 104, clockRate: 32000, channels: 1, …}3: {kind: "audio", mimeType: "audio/G722", preferredPayloadType: 9, clockRate: 8000, channels: 1, …}4: {kind: "audio", mimeType: "audio/ILBC", preferredPayloadType: 102, clockRate: 8000, channels: 1, …}5: {kind: "audio", mimeType: "audio/PCMU", preferredPayloadType: 0, clockRate: 8000, channels: 1, …}6: {kind: "audio", mimeType: "audio/PCMA", preferredPayloadType: 8, clockRate: 8000, channels: 1, …}7: {kind: "audio", mimeType: "audio/CN", preferredPayloadType: 106, clockRate: 32000, channels: 1, …}8: {kind: "audio", mimeType: "audio/CN", preferredPayloadType: 105, clockRate: 16000, channels: 1, …}9: {kind: "audio", mimeType: "audio/CN", preferredPayloadType: 13, clockRate: 8000, channels: 1, …}10: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 110, clockRate: 48000, channels: 1, …}11: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 112, clockRate: 32000, channels: 1, …}12: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 113, clockRate: 16000, channels: 1, …}13: {kind: "audio", mimeType: "audio/telephone-event", preferredPayloadType: 126, clockRate: 8000, channels: 1, …}14: {kind: "video", mimeType: "video/VP8", preferredPayloadType: 96, clockRate: 90000, parameters: {…}, …}15: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 97, clockRate: 90000, parameters: {…}, …}16: {kind: "video", mimeType: "video/VP9", preferredPayloadType: 98, clockRate: 90000, parameters: {…}, …}17: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 99, clockRate: 90000, parameters: {…}, …}18: {kind: "video", mimeType: "video/red", preferredPayloadType: 100, clockRate: 90000, parameters: {…}, …}19: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 101, clockRate: 90000, parameters: {…}, …}20: {kind: "video", mimeType: "video/ulpfec", preferredPayloadType: 127, clockRate: 90000, parameters: {…}, …}length: 21__proto__: Array(0)headerExtensions: Array(11)0: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", preferredId: 1, preferredEncrypt: false, direction: "sendrecv"}1: {kind: "audio", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 2, preferredEncrypt: false, direction: "sendrecv"}2: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", preferredId: 14, preferredEncrypt: false, direction: "sendrecv"}3: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 13, preferredEncrypt: false, direction: "sendrecv"}4: {kind: "video", uri: "urn:3gpp:video-orientation", preferredId: 3, preferredEncrypt: false, direction: "sendrecv"}5: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 2, preferredEncrypt: false, direction: "sendrecv"}6: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay", preferredId: 5, preferredEncrypt: false, direction: "sendrecv"}7: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/video-content-type", preferredId: 6, preferredEncrypt: false, direction: "sendrecv"}8: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/video-timing", preferredId: 7, preferredEncrypt: false, direction: "sendrecv"}9: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", preferredId: 8, preferredEncrypt: false, direction: "sendrecv"}10: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/color-space", preferredId: 9, preferredEncrypt: false, direction: "sendrecv"}length: 11__proto__: Array(0)__proto__: Object +34ms
common.js:114 mediasoup-client:Device load() | got extended RTP capabilities:{codecs: Array(2), headerExtensions: Array(6)}codecs: Array(2)0: mimeType: "audio/opus"kind: "audio"clockRate: 48000channels: 2localPayloadType: 111localRtxPayloadType: undefinedremotePayloadType: 101remoteRtxPayloadType: undefinedlocalParameters: {minptime: 10, useinbandfec: 1}remoteParameters: {}rtcpFeedback: [{…}]__proto__: Object1: mimeType: "video/VP8"kind: "video"clockRate: 90000channels: undefinedlocalPayloadType: 96localRtxPayloadType: 97remotePayloadType: 102remoteRtxPayloadType: 100localParameters: {}remoteParameters: {x-google-start-bitrate: 1000}rtcpFeedback: (5) [{…}, {…}, {…}, {…}, {…}]__proto__: Objectlength: 2__proto__: Array(0)headerExtensions: Array(6)0: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", sendId: 13, recvId: 4, encrypt: false, …}1: {kind: "audio", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", sendId: 2, recvId: 5, encrypt: false, …}2: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", sendId: 2, recvId: 5, encrypt: false, …}3: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", sendId: 8, recvId: 6, encrypt: false, …}4: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", sendId: 1, recvId: 10, encrypt: false, …}5: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", sendId: 14, recvId: 12, encrypt: false, …}length: 6__proto__: Array(0)__proto__: Object +1ms
common.js:114 mediasoup-client:Device load() | got receiving RTP capabilities:{codecs: Array(3), headerExtensions: Array(5)}codecs: Array(3)0: {mimeType: "audio/opus", kind: "audio", preferredPayloadType: 101, clockRate: 48000, channels: 2, …}1: {mimeType: "video/VP8", kind: "video", preferredPayloadType: 102, clockRate: 90000, parameters: {…}, …}2: {mimeType: "video/rtx", kind: "video", preferredPayloadType: 100, clockRate: 90000, parameters: {…}, …}length: 3__proto__: Array(0)headerExtensions: Array(5)0: {kind: "video", uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", preferredId: 4, preferredEncrypt: false, direction: "sendrecv"}1: {kind: "video", uri: "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01", preferredId: 5, preferredEncrypt: false, direction: "sendrecv"}2: {kind: "video", uri: "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07", preferredId: 6, preferredEncrypt: false, direction: "sendrecv"}3: {kind: "audio", uri: "urn:ietf:params:rtp-hdrext:ssrc-audio-level", preferredId: 10, preferredEncrypt: false, direction: "sendrecv"}4: {kind: "video", uri: "urn:ietf:params:rtp-hdrext:toffset", preferredId: 12, preferredEncrypt: false, direction: "sendrecv"}length: 5__proto__: Array(0)__proto__: Object +1ms
common.js:114 mediasoup-client:Chrome55 getNativeSctpCapabilities() +35ms
common.js:114 mediasoup-client:Device load() | got native SCTP capabilities:{numStreams: {…}}numStreams: OS: 1024MIS: 1024__proto__: Object__proto__: Object +1ms
common.js:114 mediasoup-client:Device load() succeeded +0ms
common.js:114 mediasoup-client:Chrome55 close() +1ms
conference-api.ts:178 [init] this.iceServers:  (2) [{…}, {…}]0: Objecturls: Array(1)username: "testUser"credential: "testPassword"get urls: ƒ ()set urls: ƒ ()get username: ƒ ()set username: ƒ ()get credential: ƒ ()set credential: ƒ ()__proto__: Object1: Objecturls: Array(1)username: "testUser"credential: "testPassword"get urls: ƒ ()set urls: ƒ ()get username: ƒ ()set username: ƒ ()get credential: ƒ ()set credential: ƒ ()__proto__: Objectlength: 2get 0: ƒ ()set 0: ƒ ()get 1: ƒ ()set 1: ƒ ()__proto__: Array(0)
common.js:114 mediasoup-client:Device createSendTransport() +108ms
common.js:114 mediasoup-client:Transport constructor() [id:c686bcd3-166e-4d41-9821-43789ae4c338, direction:send] +0ms
common.js:114 mediasoup-client:Chrome55 run() +109ms
common.js:114 mediasoup-client:Transport produce() [track:EventTarget {_enabled: true, id: "852f145b-b123-4e80-8498-3b2e0a9eea71", kind: "video", label: "852f145b-b123-4e80-8498-3b2e0a9eea71", muted: false, …}enabled: trueonended: nullonmute: nullonunmute: nullonoverconstrained: null_enabled: trueid: "852f145b-b123-4e80-8498-3b2e0a9eea71"kind: "video"label: "852f145b-b123-4e80-8498-3b2e0a9eea71"muted: falsereadonly: trueremote: falsereadyState: "ended"Symbol(listeners): {ended: {…}}__proto__: EventTarget] +2ms
common.js:114 mediasoup-client:Chrome55 send() [kind:video, track.id:852f145b-b123-4e80-8498-3b2e0a9eea71] +3ms
backend.js:32 Possible Unhandled Promise Rejection (id: 0):
Error: no active media section found
Error: no active media section found
    at Object.extractDtlsParameters (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:133427:29)
    at Chrome55._setupTransport$ (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:138099:49)
    at tryCatch (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26923:19)
    at Generator.invoke [as _invoke] (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:27099:24)
    at Generator.prototype.<computed> [as next] (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26966:23)
    at tryCatch (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26923:19)
    at invoke (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:26999:22)
    at http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:27029:13
    at tryCallTwo (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:28870:7)
    at doResolve (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:29034:15)
r @ backend.js:32
console.warn @ LogBox.js:36
registerWarning @ YellowBox.js:162
warnImpl @ YellowBox.js:88
console.warn @ YellowBox.js:66
onUnhandled @ Promise.js:41
onUnhandled @ rejection-tracking.js:71
(anonymous) @ JSTimers.js:238
_callTimer @ JSTimers.js:135
callTimers @ JSTimers.js:387
__callFunction @ MessageQueue.js:425
(anonymous) @ MessageQueue.js:112
__guard @ MessageQueue.js:373
callFunctionReturnFlushedQueue @ MessageQueue.js:111
(anonymous) @ debuggerWorker.d9da4ed7.js:4

I’ve tested locally in a modified version of the mediasoup-demo with Chrome using Chrome55: Just screen sharing is done (no mic, no webcam, no datachannels). It works perfectly.

Not sure which mediasoup-clienbt version you are using but try upgrading just in case. I see no bug in mediasoup-client.

We succesfully published this screenshare stream with p2p but not with mediasoup. Here is sdp offer if it can help to understand the problem:

v=0
o=- 4525653979257779670 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1
a=msid-semantic: WMS 795072eb-ed84-4f51-a133-60e1ed631af7
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:riSO
a=ice-pwd:vIusCseyR8IKDtbuCIwkFM9M
a=ice-options:trickle
a=fingerprint:sha-256 3F:31:5C:A2:B9:58:6B:14:40:85:36:E2:4C:CD:DE:79:C0:0E:90:D4:36:CB:6A:7B:19:98:68:59:3F:FF:EF:90
a=setup:actpass
a=mid:0
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:13 urn:3gpp:video-orientation
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendrecv
a=msid:795072eb-ed84-4f51-a133-60e1ed631af7 92ecab2d-61bd-4610-90f2-a1a82891f3e3
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP9/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:124 red/90000
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 ulpfec/90000
a=ssrc-group:FID 85212681 4891185
a=ssrc:85212681 cname:C92hVQIigxG/ON0D
a=ssrc:85212681 msid:795072eb-ed84-4f51-a133-60e1ed631af7 92ecab2d-61bd-4610-90f2-a1a82891f3e3
a=ssrc:85212681 mslabel:795072eb-ed84-4f51-a133-60e1ed631af7
a=ssrc:85212681 label:92ecab2d-61bd-4610-90f2-a1a82891f3e3
a=ssrc:4891185 cname:C92hVQIigxG/ON0D
a=ssrc:4891185 msid:795072eb-ed84-4f51-a133-60e1ed631af7 92ecab2d-61bd-4610-90f2-a1a82891f3e3
a=ssrc:4891185 mslabel:795072eb-ed84-4f51-a133-60e1ed631af7
a=ssrc:4891185 label:92ecab2d-61bd-4610-90f2-a1a82891f3e3
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:riSO
a=ice-pwd:vIusCseyR8IKDtbuCIwkFM9M
a=ice-options:trickle
a=fingerprint:sha-256 3F:31:5C:A2:B9:58:6B:14:40:85:36:E2:4C:CD:DE:79:C0:0E:90:D4:36:CB:6A:7B:19:98:68:59:3F:FF:EF:90
a=setup:actpass
a=mid:1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=recvonly
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000

Sorry, I cannot help that much.

You previous code fails in browser when using the Chrome55 handler. The mediasoup-demo does not fail. Check what is wrong in your code. I don’t have time to check your things if you don’t check my things.

@ibc, but it really does work fine p2p. I believe this is really an issue in mediasoup SDK. Can you maybe take a look? What can i provide? And yes, we can make a donation if it is fixed in the SDK.

Simple replacing getUserMedia with getDisplayMedia makes this issue for mediasoup. Of course our android app did everything from https://mediasoup.org/documentation/v3/mediasoup-client/react-native/ . And camera as we said works with Chrome55 browser handler, not only ReactNative. But screenshare doesn’t.