Hi everyone,
I’m facing an issue with Janus and would appreciate any guidance or suggestions. I have two different camera brands connected to Janus, and I’m using the Janus with Streaming plugin to watch the real-time stream in a web application.
Issue Description:
- On macOS Safari, only one camera’s stream can be viewed. The other camera’s stream does not work.
- On macOS Chrome, both cameras’ streams work perfectly.
- On Windows Chrome, both cameras’ streams work perfectly as well.
Observations:
- The issue seems to be isolated to Safari on macOS and only affects one specific camera brand.
- The camera streams are working on other browsers (Chrome) on the same macOS machine.
- Noticed that the working camera, after receiving the SDP, responds with an SDP answer and continues to send ICE candidates immediately.
- The non-working camera, after receiving the SDP, only responds with an SDP answer and does not send any ICE candidates, leading to a failure in establishing the connection.
SDP Information:
For reference, here are snippets of the SDP information from the working and non-working cameras (if needed, I can provide the full SDP details):
Working Camera SDP:
{
"type": "offer",
"sdp": "v=0\r\no=- 1722829089329350 1 IN IP4 192.168.1.26\r\ns=Mountpoint 2650068953553959\r\nt=0 0\r\na=group:BUNDLE v\r\na=ice-options:trickle\r\na=fingerprint:sha-256 59:1F:D2:E4:A1:37:D0:46:5B:6B:0F:CF:0C:84:95:F0:3F:61:DA:BD:33:E3:E4:66:E5:BB:D1:00:26:D5:33:FC\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS janus\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97\r\nc=IN IP4 192.168.1.26\r\na=sendonly\r\na=mid:v\r\na=rtcp-mux\r\na=ice-ufrag:nQos\r\na=ice-pwd:FCVK6VvOauH4VvzZdTvNeW\r\na=ice-options:trickle\r\na=setup:actpass\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 ;packetization-mode=1;sprop-parameter-sets=Z0IAKpY1QPAET8s3AQEBQAAC7gAAV+Qh,aM48gA==\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=ssrc-group:FID 398005312 41603223\r\na=msid:janus janusv\r\na=ssrc:398005312 cname:janus\r\na=ssrc:41603223 cname:janus\r\na=candidate:1 1 udp 2015363583 192.168.1.26 10012 typ host\r\na=end-of-candidates\r\n"
}
ICE Candidate Example:
{
"janus":"trickle",
"candidate":{
"candidate":"candidate:1327485320 1 udp 2122194687 d222f684-5961-44ab-88bb-c689b6249ed3.local 58808 typ host generation 0 ufrag PKx7 network-id 1 network-cost 50",
"sdpMid":"v",
"sdpMLineIndex":0
},
"transaction":"qk3YICqva3PG",
"session_id":1595475985179369,
"handle_id":1917290438663887
}
Non-working Camera SDP:
{
"type": "offer",
"sdp": "v=0\r\no=- 1722829261465119 1 IN IP4 192.168.1.26\r\ns=Mountpoint 1845971582631417\r\nt=0 0\r\na=group:BUNDLE v\r\na=ice-options:trickle\r\na=fingerprint:sha-256 59:1F:D2:E4:A1:37:D0:46:5B:6B:0F:CF:0C:84:95:F0:3F:61:DA:BD:33:E3:E4:66:E5:BB:D1:00:26:D5:33:FC\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS janus\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97\r\nc=IN IP4 192.168.1.26\r\na=sendonly\r\na=mid:v\r\na=rtcp-mux\r\na=ice-ufrag:HAO0\r\na=ice-pwd:6Bmg6yYxh3dlmjcrvpmjwb\r\na=ice-options:trickle\r\na=setup:actpass\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=420028;sprop-parameter-sets=Z0IAKOkA8ARPywgAAB9IAAOqcCA=,aMqPIA==\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=ssrc-group:FID 501330620 1251309221\r\na=msid:janus janusv\r\na=ssrc:501330620 cname:janus\r\na=ssrc:1251309221 cname:janus\r\na=candidate:1 1 udp 2015363583 192.168.1.26 10072 typ host\r\na=end-of-candidates\r\n"
}
Has anyone experienced a similar issue or have any insights into why this might be happening? Are there specific configurations or settings in Janus that need to be adjusted for better compatibility with Safari? Any debugging tips or solutions would be greatly appreciated.
Thank you in advance for your help!