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