Hello,

Could anyone answer whether the RTSP specification has requirements about the 
client_port value in a SETUP response, and what the LIVE555 software behavior 
would be if the server responds with a different value than sent in a SETUP 
request?

For context, I'm investigating a video problem as a 3rd party of a 3rd party, 
so the feedback time for tests is large. The base problem is that an RTSP 
stream is not receiving video packets from a stream in a separate network, but 
other RTSP streams are received and VLC can receive from the problem stream.

To illustrate the problem, consider network segments [1] and [2], and cameras 
[a] and [b] both in network segment [1].

  *
Cameras [a] and [b] can be viewed by our client in network segment [1].
  *
Camera [a] can be viewed by our client in network [2].
  *
Camera [b] cannot be viewed by our client in network [2].
  *
VLC can view camera [b] in network [2].

I built openRTSP and asked them to run this with the -n flag to signal packets 
arriving. At the time I built this, it was the most recent version: LIVE555 
Streaming Media v2024.05.30.

I don't understand a lot of the RTSP communication, but what jumped out to me 
was that every test that showed "Data packets have begun arriving" had a 
matching client_port value in the SETUP response as what was requested, and 
every test that never showed the "Data packets" message had a different set of 
values in the client_port of the SETUP response than what was requested. 
Viewing this same camera from the camera's network responds with the same 
client_port value as requested and shows the "Data packets" message.

Here's a snippet of the output from a non-working test:
Created receiver for "video/MP4V-ES" subsession (client ports 50104-50105)
Sending request: SETUP rtsp://10.10.30.7/mpeg4?cam=0/__StreamID=2161115640 
RTSP/1.0
CSeq: 4
User-Agent: openRTSP (LIVE555 Streaming Media v2024.05.30)
Transport: RTP/AVP;unicast;client_port=50104-50105


Received 188 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
Server: Mango DSP RTSP Stack
CSeq: 4
Session: 7909094312184172343
Transport: RTP/AVP;unicast;server_port=6978-6979;client_port=64712-64713;ssrc=0
x-Dynamic-Rate: 1


Setup "video/MP4V-ES" subsession (client ports 50104-50105)
Created output file: "video-MP4V-ES-1"
It looks like RTSPClient.cpp partially scans the SETUP response for the 
client_port=%hu value, but it only sets a flag. I'm unsure whether VLC is 
parsing the client_port from the SETUP response or is falling back to TCP 
streaming. Would it be reasonable for LIVE555 to parse the client_port in the 
SETUP response and use that if the ports are different than requested?

Thank you for your attention and any insights,
Derrick N. Guerrero
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to