jitsi / jitsi-meet

Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
https://jitsi.org/meet
Apache License 2.0
22.98k stars 6.69k forks source link

when user's own camera doesn't work, they can't see other people's videos #749

Closed wolftune closed 6 years ago

wolftune commented 8 years ago

It seems that when there is an issue with successfully recognizing a camera on a user's machine, they can't see me on my working camera. There's no reason that their camera failing should be in the way of them seeing me. That connection is unfortunate.

gpolitis commented 8 years ago

This sounds like a bug. Could you please elaborate a bit more on the problem? What's the exact scenario? What operating systems are you running? What browsers are you running (also what version)? Thanks

wolftune commented 8 years ago

Tried both Chromium and Firefox (latest stable versions, I believe), both systems running Ubuntu. Computer with built-in camera that isn't working for some reason, then tried with external USB camera. That computer only succeeded in ever seeing the other computer's video after starting the connection with the external USB camera successfully detected and working. Effectively, the failure to successfully connect the machine's own camera resulted in not actually connecting and seeing the other computer's feed.

gpolitis commented 8 years ago

Could you please copy/paste here any logs from the JavaScript console?

wolftune commented 8 years ago

I'll have to try and replicate again sometime when the person with the dysfunctional camera is available…

wolftune commented 8 years ago

What I see on my working computer with working camera when the other participant joins:

USER dfb8700a LEFT JitsiParticipant {_jid: "wolfchat@conference.meet.jit.si/dfb8700a", _id: "dfb8700a", _conference: JitsiConference, _displayName: undefined, _supportsDTMF: false…}
VideoLayout.js:847 Removing remote video: dfb8700a
RemoteVideo.js:163 Remove thumbnail dfb8700a
Logger.js:89 [/modules/xmpp/moderator.js] <Moderator.onMucMemberLeft>:  Someone left is it focus ? wolfchat@conference.meet.jit.si/dfb8700a
conference.js:977 My role changed, new role: moderator
Logger.js:89 [/modules/xmpp/ChatRoom.js] <ChatRoom._initFocus>:  Ignore focus: wolfchat@conference.meet.jit.si/focus, real JID: focus@auth.meet.jit.si/focus182213597526
Logger.js:89 [/modules/xmpp/recording.js] <Recording.handleJibriPresence>:  Handle jibri presence :  undefined
conference.js:1092 Received recorder status change:  unavailable undefined
Logger.js:89 [/modules/xmpp/ChatRoom.js] <ChatRoom.onPresence>:  entered wolfchat@conference.meet.jit.si/b0abb966 Object {show: "", status: "", affiliation: "none", role: "participant", jid: "b0abb966-864e-450e-a908-c966948aed12@meet.jit.si/75b265f5-2243-45fd-9392-1519e3b73f1e"…}
conference.js:960 USER b0abb966 connnected JitsiParticipant {_jid: "wolfchat@conference.meet.jit.si/b0abb966", _id: "b0abb966", _conference: JitsiConference, _displayName: undefined, _supportsDTMF: false…}
Avatar.js:71 No avatar stored yet for b0abb966 - using ID as avatar ID
Avatar.js:71 No avatar stored yet for b0abb966 - using ID as avatar ID

And here's what they see in their browser:

(TIME) index.html loaded:     1635.3489999972837 wolfchat:9
(TIME) Sending external connect XHR:     1923.3119999972814 external_connect.js?v=1:69
[/modules/RTC/RTCBrowserType.js] <Array.detectChrome>:  This appears to be Chrome, ver: 37 Logger.js:89
(TIME) document ready:     3087.033999997281 app.js:164
[/modules/RTC/ScreenObtainer.js] <Object.ScreenObtainer.init>:  Using Chrome extension for desktop sharing Logger.js:89
[/modules/RTC/ScreenObtainer.js] <>:  Chrome extension installed: false updateRequired: false Logger.js:89
[/modules/RTC/RTCUtils.js] <Object.RTCUtils.getUserMediaWithConstraints>:  Get media constraints Object {audio: Object, video: Object} Logger.js:89
[/modules/xmpp/xmpp.js] <XMPP.initFeaturesList>:  Lip-sync enabled ! Logger.js:89
(TIME) external connect XHR done:     3864.9589999972777 external_connect.js?v=1:38
[/modules/xmpp/xmpp.js] <XMPP.attach>:  (TIME) Strophe Attaching    :3866.449999997279 Logger.js:89
[/modules/xmpp/xmpp.js] <XMPP.connectionHandler>:  (TIME) Strophe ATTACHED:     3875.2549999972816 Logger.js:89
[/modules/xmpp/xmpp.js] <XMPP.connectionHandler>:  My Jabber ID: b0abb966-864e-450e-a908-c966948aed12@meet.jit.si/75b265f5-2243-45fd-9392-1519e3b73f1e Logger.js:89
[/modules/RTC/RTCUtils.js] <>:  Failed to get access to local media. Error  NavigatorUserMediaError {constraintName: "", message: "", name: "DevicesNotFoundError"} Object {audio: Object, video: Object} Logger.js:89
failed to create local tracks ["audio", "video"] JitsiTrackError {gum: Object, name: "gum.general", message: "Generic getUserMedia error", stack: "Error↵    at new JitsiTrackError (https://d3f5ootf…et/1108/libs/lib-jitsi-meet.min.js?v=1108:7:29843", constructor: function} conference.js:268
[/modules/RTC/RTCUtils.js] <Object.RTCUtils.getUserMediaWithConstraints>:  Get media constraints Object {audio: Object, video: false} Logger.js:89
[/modules/RTC/RTCUtils.js] <>:  onUserMediaSuccess Logger.js:89
initialized with 1 local tracks conference.js:501
[/modules/xmpp/ChatRoom.js] <new ChatRoom>:  Joined MUC as wolfchat@conference.meet.jit.si/b0abb966 Logger.js:89
[/modules/xmpp/moderator.js] <Moderator.setFocusUserJid>:  Focus jid set to:  undefined Logger.js:89
[/modules/xmpp/moderator.js] <Moderator.createConferenceIq>:  Session ID: null machine UID: 4af6b2a9a67ccea88de2a7b09f0d3bc3 Logger.js:89
[/modules/xmpp/ChatRoom.js] <ChatRoom.addStream>:  No conference handler or conference not started yet Logger.js:89
[/modules/xmpp/strophe.ping.js] <Object.Strophe.addConnectionPlugin.startInterval>:  XMPP pings will be sent every 10000 ms Logger.js:89
GET https://api.callstats.io/static/callstats.min.js net::ERR_SSL_PROTOCOL_ERROR ScriptUtil.js:25
[/modules/xmpp/moderator.js] <Moderator.setFocusUserJid>:  Focus jid set to:  focus@auth.meet.jit.si Logger.js:89
[/modules/xmpp/moderator.js] <Moderator.parseConfigOptions>:  Authentication enabled: false Logger.js:89
[/modules/xmpp/moderator.js] <Moderator.parseConfigOptions>:  External authentication enabled: false Logger.js:89
[/modules/xmpp/moderator.js] <Moderator.parseConfigOptions>:  Sip gateway enabled:  false Logger.js:89
[/modules/xmpp/ChatRoom.js] <ChatRoom.onPresence>:  entered wolfchat@conference.meet.jit.si/focus Object {show: "", status: "", affiliation: "owner", role: "moderator", jid: "focus@auth.meet.jit.si/focus182213597526"…} Logger.js:89
[/modules/xmpp/ChatRoom.js] <ChatRoom._initFocus>:  Ignore focus: wolfchat@conference.meet.jit.si/focus, real JID: focus@auth.meet.jit.si/focus182213597526 Logger.js:89
Etherpad is enabled UI.js:561
[/modules/version/ComponentsVersions.js] <ComponentsVersions.<anonymous>>:  Got xmpp version: Prosody(trunk nightly build 683 (2016-07-14, 8cca24bea3e0),Linux) Logger.js:89
[/modules/version/ComponentsVersions.js] <ComponentsVersions.<anonymous>>:  Got focus version: JiCoFo(1.0.1.0-273,Linux) Logger.js:89
[/modules/version/ComponentsVersions.js] <ComponentsVersions.<anonymous>>:  Got videobridge version: JVB(0.1.757,Linux) Logger.js:89
[/modules/xmpp/recording.js] <Recording.handleJibriPresence>:  Handle jibri presence :  undefined Logger.js:89
Received recorder status change:  unavailable undefined conference.js:1092
[/modules/xmpp/ChatRoom.js] <ChatRoom.onPresence>:  entered wolfchat@conference.meet.jit.si/9c1606e8 Object {show: "", status: "", affiliation: "owner", role: "moderator", jid: "9c1606e8-f991-42b9-b9ed-64deef70f18d@meet.jit.si/eb74ecbc-dba5-4123-9492-5d95c1888a33"…} Logger.js:89
USER 9c1606e8 connnected JitsiParticipant {_jid: "wolfchat@conference.meet.jit.si/9c1606e8", _id: "9c1606e8", _conference: JitsiConference, _displayName: "wolftuse", _supportsDTMF: false…} conference.js:960
No avatar stored yet for 9c1606e8 - using ID as avatar ID Avatar.js:71
No avatar stored yet for 9c1606e8 - using ID as avatar ID Avatar.js:71
My role changed, new role: none conference.js:977
[/modules/xmpp/ChatRoom.js] <ChatRoom.onPresence>:  (TIME) MUC joined:     5494.5359999972825 Logger.js:89
[/modules/xmpp/ChatRoom.js] <ChatRoom.onMessage>:  Subject is changed to  Logger.js:89
hover in b0abb966 LargeVideo.js:474
No avatar stored yet for b0abb966 - using ID as avatar ID Avatar.js:71
No avatar stored yet for b0abb966 - using ID as avatar ID Avatar.js:71
No avatar stored yet for b0abb966 - using ID as avatar ID Avatar.js:71
[/modules/xmpp/strophe.jingle.js] <Object.Strophe.addConnectionPlugin.onJingle>:  on jingle session-initiate from wolfchat@conference.meet.jit.si/focus <iq xmlns=​"jabber:​client" type=​"set" to=​"b0abb966-864e-450e-a908-c966948aed12@meet.jit.si/​75b265f5-2243-45fd-9392-1519e3b73f1e" from=​"wolfchat@conference.meet.jit.si/​focus" id=​"YjBhYmI5NjYtODY0ZS00NTBlLWE5MDgtYzk2Njk0OGFlZDEyQG1lZXQuaml0LnNpLzc1YjI2NWY1LTIyNDMtNDVmZC05MzkyLTE1MTllM2I3M2YxZQAyUXp5ZC01MTAyNzMyACeWN6Xp4+I26tNSkgj80Wo=">​…​</iq>​ Logger.js:89
[/modules/xmpp/strophe.jingle.js] <Object.Strophe.addConnectionPlugin.onJingle>:  (TIME) received session-initiate:     6004.087999997281 Logger.js:89
[/JitsiMeetJS.js] <Object.LibJitsiMeet.getGlobalOnErrorHandler>:  UnhandledError: null Script: null Line: null Column: null StackTrace:  ReferenceError {stack: (...), message: "callstats is not defined"} Logger.js:89
[/modules/statistics/CallStats.js] <null.<anonymous>>:  ReferenceError {stack: (...), message: "callstats is not defined"} Logger.js:89
Imploding SIM group: 559167295 1782494090 3570535908 index.js:146
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.remoteStreamAdded>:  Ignored remote 'stream added' event for non-user stream MediaStream {onremovetrack: null, onaddtrack: null, onended: null, ended: false, id: "mixedmslabel"…} Logger.js:89
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.remoteTrackAdded>:  Remote track added MediaStream {onremovetrack: function, onaddtrack: function, onended: null, ended: false, id: "ea6dd2bc-88e3-42d7-b38d-ce9f32cb3685"…} MediaStreamTrack {onended: null, onunmute: null, onmute: null, readyState: "live", enabled: true…} Logger.js:89
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.remoteTrackAdded>:  associated jid wolfchat@conference.meet.jit.si/9c1606e8 2144128661 Logger.js:89
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.remoteTrackAdded>:  Remote track added MediaStream {onremovetrack: function, onaddtrack: function, onended: function, ended: false, id: "ea6dd2bc-88e3-42d7-b38d-ce9f32cb3685"…} MediaStreamTrack {onended: null, onunmute: null, onmute: null, readyState: "live", enabled: true…} Logger.js:89
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.remoteTrackAdded>:  associated jid wolfchat@conference.meet.jit.si/9c1606e8 559167295 Logger.js:89
[/modules/xmpp/JingleSessionPC.js] <reportError>:  modified setLocalDescription failed: Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to add send stream ssrc: 2834827462. Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to add send stream ssrc: 2834827462. Logger.js:89
[/JitsiMeetJS.js] <Object.LibJitsiMeet.getGlobalOnErrorHandler>:  UnhandledError: null Script: null Line: null Column: null StackTrace:  Error {stack: (...), message: "modified setLocalDescription failed: Failed to set…tion: Failed to add send stream ssrc: 2834827462."} Logger.js:89
[/JitsiMeetJS.js] <Object.LibJitsiMeet.getGlobalOnErrorHandler>:  UnhandledError: null Script: null Line: null Column: null StackTrace:  Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to add send stream ssrc: 2834827462. Logger.js:89
[/JitsiConference.js] <>:  Failed to accept incoming Jingle session Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to add send stream ssrc: 2834827462. Logger.js:89
[/JitsiMeetJS.js] <Object.LibJitsiMeet.getGlobalOnErrorHandler>:  UnhandledError: Script error. Script:  Line: 0 Column: 0 StackTrace:  null Logger.js:89
[/modules/statistics/CallStats.js] <CallStats._reportError>:  No error is passed! Logger.js:89
Uncaught TypeError: Cannot read property 'eventEmitter' of undefined JingleSessionPC.js:1120
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.sendIceCandidates>:  sendIceCandidates [RTCIceCandidate, RTCIceCandidate, RTCIceCandidate] Logger.js:89
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.sendIceCandidates>:  sendIceCandidates [RTCIceCandidate, RTCIceCandidate, RTCIceCandidate] Logger.js:89
[/modules/xmpp/JingleSessionPC.js] <JingleSessionPC.sendIceCandidate>:  sendIceCandidate: last candidate. Logger.js:89

They also got an error box saying "There was an error connecting to your camera. Cannot use camera for an unknown reason."

Overall, my point is that this should not be stopping them from seeing my video, but it does.

muhviehstah commented 8 years ago

I can confirm this behavior since we use jitsi. it makes no difference which Browser or OS is used.. When the browser can access the cam, the streams are working correct.

gpolitis commented 8 years ago

@muhviehstah thanks for confirming this.

@wolftune here's the problem from the logs you posted: Failed to accept incoming Jingle session Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to add send stream ssrc: 2834827462. So, setLocalDescription fails because the SDP is somehow invalid.

I've tried to reproduce it on my end but, unfortunately, I didn't have much luck with that. Would it be possible to use Chrome to try to reproduce the issue and then get a webrtc-internals dump (just go to chrome://webrtc-internals, click the "Create Dump" arrow and then press the "Download the PeerConnection updates and stats data" button and save the file somewhere on your computer)? When you have the file, could you please post it here? thanks

bgrozev commented 6 years ago

This is outdated by now (and most probably fixed)

Me4Linux commented 4 years ago

Still happens with a recent installation but also when using https://meet.jit.si . When the user doesn't have a camera, they can't see other participants. Also shared screens are not visible. Seems to be unrelated to OS and browser (testet with both Firefox ESR 68/78, Firefox 80 and Chromium).