I have a magic issue on Streaming demo

I’m testing the demo with some devices and the test results are as follows (PASS means all functions are working normally):

Echo test demo:

  1. [PASS] MacOS with google chrome version:115.0.5790.170 (x86_64)
  2. [PASS] MacOS with Firefox version:115.0.2(64 bit)
  3. [PASS] Windows 10 Home Edition with google chrome version:115.0.5790.102(64 bit)
  4. [PASS] Windows 10 Home Edition with Firefox version:115.0.2(64 bit)
  5. [PASS] Windows 10 Home Edition with Edge version: 115.0.1901.200 (64 bit)
  6. [PASS] iPhone 12 pro with Google chrome version: 115.0.5790.130

VideoRoom demo:

  1. [PASS] MacOS with google chrome version:115.0.5790.170 (x86_64)
  2. [PASS] MacOS with Firefox version:115.0.2(64 bit)
  3. [PASS] Windows 10 Home Edition with google chrome version:115.0.5790.102(64 bit)
  4. [PASS] Windows 10 Home Edition with Firefox version:115.0.2(64 bit)
  5. [PASS] Windows 10 Home Edition with Edge version: 115.0.1901.200 (64 bit)
  6. [PASS] iPhone 12 pro with Google chrome version: 115.0.5790.130

Streaming demo:

  1. [PASS] MacOS with google chrome version:115.0.5790.170 (x86_64)
  2. [PASS] MacOS with Firefox version:115.0.2(64 bit)
  3. [FAIL] Windows 10 Home Edition with google chrome version:115.0.5790.102(64 bit)
    Janus not throw any error, but the remote video looks like decode error
  4. [PASS] Windows 10 Home Edition with Firefox version:115.0.2(64 bit)
  5. [PASS] Windows 10 Home Edition with Edge version: 115.0.1901.200 (64 bit)
  6. [FAIL] iPhone 12 pro with Google chrome version: 115.0.5790.130
    error message: it looks like data received, but no video can visible.

Situation 1: Test on Windows with Firefox, I got logs on Janus server:

Creating new session: 8748575412633812; 0x7f7bec0018e0
Creating new handle in session 8748575412633812: 3560989808845938; 0x7f7bec0018e0 0x7f7bec002040
[3560989808845938] Creating ICE agent (ICE Full mode, controlling)
[WARN] [3560989808845938] Failed to add some remote candidates (added 0, expected 1)
[3560989808845938] The DTLS handshake has been completed
[janus.plugin.streaming-0x7f7ba000af40] WebRTC media is now available
[ERR] [ice.c:janus_ice_outgoing_traffic_handle:4562] [3560989808845938] No candidates not gathered yet for stream??

The test results are good and the video stream can be displayed perfectly.

Situation 2: Test on Windows with GoogleChrome, I got logs on Janus server:

Creating new session: 4115526653531961; 0x7f2f3c0018e0
Creating new handle in session 4115526653531961: 3097983601443046; 0x7f2f3c0018e0 0x7f2f3c002040
[3097983601443046] Creating ICE agent (ICE Full mode, controlling)
[WARN] [3097983601443046] Failed to add some remote candidates (added 1, expected 2)
[3097983601443046] The DTLS handshake has been completed
[janus.plugin.streaming-0x55fe82243f00] WebRTC media is now available
[ERR] [ice.c:janus_ice_outgoing_traffic_handle:4562] [3097983601443046] No candidates not gathered yet for stream??

The test result is not good, the video stream is not displayed correctly(Video looks like decode issue).

Situation 2: Test on iPhone 12 pro with GoogleChrome, I got logs on Janus server:

Creating new session: 8583603529576325; 0x7fd5100018e0
Creating new handle in session 8583603529576325: 4519268479639586; 0x7fd5100018e0 0x7fd510002040
[4519268479639586] Creating ICE agent (ICE Full mode, controlling)
[WARN] [4519268479639586] Failed to add some remote candidates (added 0, expected 1)
[4519268479639586] The DTLS handshake has been completed
[janus.plugin.streaming-0x5623e5199700] WebRTC media is now available
[ERR] [ice.c:janus_ice_outgoing_traffic_handle:4562] [4519268479639586] No candidates not gathered yet for stream??

The test result is not good, the video stream is not displayed correctly(The loading indicator always running but it looks like received the data from server).

How should I solve this problem? Or do I need to gather some information to track down this issue?
Thank you.

(Happy holidays to Meetecho!!)

As you pointed out, nothing wrong on the WebRTC side (PeerConnection works) so Janus is doing its job. The problem is decoder related, so something broken in the video stream you send to the Streaming plugin or how you negotiate the (I assume?) H.264 stream.

Hi lorenzo:

The camera I’m using has a streaming server (rtsp) inside and I don’t know what data it sends to the janus server. My streaming plugin configuration reads as follows:

rtsp-camera1: {
	type = "rtsp"
	id = 100
	description = "Camera112"
	audio = false
	video = true
	url = "rtsp://192.168.50.112/live_stream"
	videocodec = "h264"
	videofmtp = "packetization-mode=1;profile-level-id=42e01f"
	videopt = 126
	rtsp_reconnect_delay = 5
	rtsp_session_timeout = 10
	rtsp_timeout = 10
	rtsp_conn_timeout = 15
}

I have a question. Using the same streaming server, but the display results of different browsers are different, does it mean that the browser has poor capabilities? (Firefox win!)

That’s a codec problem. The H.264 cameras send may work with some browsers and not others, and that has nothing to do with Janus, which only relays media.

I see. Now I use shortcut solution for my purpose:

Firefox can display the stream, so I use it to display and open a child window to share the screen to the iPhone, and the iPhone browser (Google chrome, Firebox, etc.) can view the stream perfectly.

But this is not a good solution for my purpose, the core function is reading rtsp streams and put into VideoRoom plugin, and then Janus can share the stream view to the other user who join in the VideoRoom.

Thanks for your help, I’ll keep trying.