Closed yarekc closed 6 years ago
We'll need more info, logs won't be enough: https://janus.conf.meetecho.com/docs/debug
Any update?
It did not happen again. Sometimes I have Janus "working" with no errors in shell console, but no one is able to connect anymore. So I restart Janus and everything is ok. I put a cron to stop and start janus. BTW is there a janus command to restart janus ? (because I do use some messy ssh script that sends commands into screen sessions) regards
No, restarting is up to an external application. Check the Daemon/Services documentation for ways to do that with the OS.
Closing then. Please reopen or open a new issue in case you have more data to share.
BTW, I know you will say it is a SAFAFRI stuff, but Janus and Safari11 does not work together well. When running chatvideoroom demo (H264), Safari can ONLY watch the stream if Safari has enabled the webcam access. I guess it is probably Safari that does not respect some rule, but I think Janus should adapt to Safari and not Safari to Janus.
You can test that strange behaviour on
https://0pop.com/serguey/ (streamid to be played is in console log) Works fine on chrome and Firefox. It does not work in Safari unless you publish your own stream. If you just try to play the stream without publishing, you will get these errors:
[8642338652960041] Creating ICE agent (ICE Full mode, controlling)
[WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1...
[WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1...
[WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1...
[WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1...
[WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1...
[WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1...
How exactly should Janus "adapt" to what's clearly a browser limitation or feature? There's nothing a server can say to change that: all we can do is negotiate how we do with everybody and hope we'll get something back. So yes, it IS a Safari thing, sorry.
Il 11 nov 2017 8:15 AM, "chmielewski" notifications@github.com ha scritto:
BTW, I know you will say it is a SAFAFRI stuff, but Janus and Safari11 does not work together well. When running chatvideoroom demo (H264), Safari can ONLY watch the stream if Safari has enabled the webcam access. I guess it is probably Safari that does not respect some rule, but I think Janus should adapt to Safari and not Safari to Janus.
You can test that strange behaviour on
https://0pop.com/serguey/ (streamid to be played is in console log) Works fine on chrome and Firefox. It does not work in Safari unless you publish your own stream. If you just try to play the stream without publishing, you will get these errors:
[8642338652960041] Creating ICE agent (ICE Full mode, controlling) [WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1... [WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1... [WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1... [WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1... [WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1... [WARN] [8642338652960041] Still waiting for the DTLS stack for component 1 in stream 1...
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/meetecho/janus-gateway/issues/1050#issuecomment-343620462, or mute the thread https://github.com/notifications/unsubscribe-auth/ADg5vN2h_A-UqZ-Qm1951Pl9Sjym-miTks5s1OcEgaJpZM4QRatV .
I don't think it is a Safari limitation since that works fine with mediaSoup for instance. It alsoworks fine when using direct peer2peer. I think there is something special in negotiation phase between peers that is not completed by Janus or not sent to Safari. I really hope you will not take it too lightly because IOS and Safari really counts these days.
Mediasoup uses a single PeerConnection for everything, so when you give access to the webcam you also allow the same connection to get the media from everybody. In P2P you send your webcam to everybody, so each PeerConnection requires webcam access at least once and it works after that. In the VideoRoom, we use one PC to send media, and the others just to receive, so I guess it only works if the publisher starts first: if that's the case, try not starting a subscription until you start publishing yourself. Apart from that, nothing I can do.
I'm not taking it lightly but there's nothing I can do to change stupid policies in browsers from my code.
@yarekc Just to clarify, Safari will not generate candidates containing local IP addresses unless you grant audio/video permissions (this is why it works when sending your video). Currently, the only workarounds are to either disable ICE Candidate restrictions in the Safari WebRTC Developer menu, or force the use of TURN
When asked about this at the recent Kranky Geek WebRTC event, the WebKit developers mentioned a possible plan to use mDNS in place of those IP addresses. For now, one-way WebRTC is not possible with Safari (without forcing TURN).
The WebKit bug tracking this: https://bugs.webkit.org/show_bug.cgi?id=174500
@ruddell : Thanks that makes sense : thanks for that info ! I think you should publish that for notes on safari...
I watched some webrtc demo on wowza or red5pro: I was streaming with chrome Webrtc (webcam granted) and I was watching the stream on Safari (WITHOUT grant any permission).
Please do apaologize @lminiero to harassing you with these Safari questions and also giving you false informations.
BTW, how to force the TURN ? I put that inside my JS :
janus = new Janus({
server: server,
iceServers :[{url: 'turn:numb.viagenie.ca',
credential: '****',
username: 'yarek'
}]
```,
And that did not help.
@lminiero : Forcing TURN solved that Safari problem ! I put that on the google group post, but I guess it would be nice if you add that in your FAQ: I guess you don't have a mac or iphone. Once you will get a mac or an iphone, your priority will be "apple first" : that's the influence of Apple marketing :)
You are telling me about mediaSoup and its single peer connection and that the videoRoom plugins uses 2 : 1 to receive and 1 to send.
What are the cons/pros of doing that compared to mediaSoup ? Regards
Here is what I get once Janus crashes: