Ok, so I did a quick run of the liveProxyServer. See 400 Bad Request below, this is when I connect my RTSPClient to rtsp://172.16.10.100/proxyStream (The client was gstreamer playbin2)
root@custom:~# live555ProxyServer -V rtsp://172.16.10.109/live.s dp LIVE555 Proxy Server (LIVE555 Streaming Media library version 2013.10.25) Opening connection to 172.16.10.109, port 554... RTSP stream, proxying the stream "rtsp://172.16.10.109/live.sdp"<rtsp://172.16.10.109/live.sdp> Play this stream using the URL: rtsp://172.16.10.100/proxyStream (We use port 80 for optional RTSP-over-HTTP tunneling.) ...remote connection opened Sending request: DESCRIBE rtsp://172.16.10.109/live.sdp RTSP/1.0 CSeq: 2 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25) Accept: application/sdp Received 509 new bytes of response data. Received a complete DESCRIBE response: RTSP/1.0 200 OK CSeq: 2 Date: Sun, 3 Nov 2013 1:43:44 GMT Content-Base: rtsp://172.16.10.109/live.sdp/ Content-Type: application/sdp Content-Length: 348 v=0 o=RTSP 1383443024 281 IN IP4 0.0.0.0 s=RTSP server c=IN IP4 0.0.0.0 t=0 0 a=charset:Shift_JIS a=range:npt=0- a=control:* a=etag:1234567890 m=video 0 RTP/AVP 98 b=AS:0 a=rtpmap:98 H264/90000 a=control:trackID=1 a=fmtp:98 packetization-mode=1; profile-level-id=64401f; sprop-parameter-sets=J2RAH6wsagFAFumoKDAqAAAH0gAB1MAo,KO4EYsA= ProxyServerMediaSession["rtsp://172.16.10.109/live.sdp/"<rtsp://172.16.10.109/live.sdp/>] added new "ProxyServerMediaSubsession" for RTP/video/H264 track Opening connection to 172.16.10.109, port 554... ...remote connection opened Sending request: OPTIONS rtsp://172.16.10.109/live.sdp/ RTSP/1.0 CSeq: 3 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25) Received 143 new bytes of response data. Received a complete OPTIONS response: RTSP/1.0 200 OK CSeq: 3 Date: Sun, 3 Nov 2013 1:44:32 GMT Public: OPTIONS, DESCRIBE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 0) Initiated: ProxyServerMediaSubsession["H264"] ProxyServerMediaSubsession["H264"]::createNewRTPSink() ProxyServerMediaSubsession["H264"]::closeStreamSource() ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 4232835661) Opening connection to 172.16.10.109, port 554... ProxyServerMediaSubsession["H264"]::createNewRTPSink() ...remote connection opened Sending request: SETUP rtsp://172.16.10.109/live.sdp/trackID=1 RTSP/1.0 CSeq: 4 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25) Transport: RTP/AVP;unicast;client_port=60278-60279 Received 37 new bytes of response data. Received a complete SETUP response: RTSP/1.0 400 Bad Request CSeq: 4 ProxyServerMediaSubsession["H264"]::closeStreamSource() ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 468786568) Opening connection to 172.16.10.109, port 554... ProxyServerMediaSubsession["H264"]::createNewRTPSink() ...remote connection opened Opening connection to 172.16.10.109, port 554... ...remote connection opened Sending request: OPTIONS rtsp://172.16.10.109/live.sdp/ RTSP/1.0 CSeq: 6 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.10.25) Received 143 new bytes of response data. Received a complete OPTIONS response: RTSP/1.0 200 OK CSeq: 6 Date: Sun, 3 Nov 2013 1:45:26 GMT Public: OPTIONS, DESCRIBE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN ----------- I was looking into the RTSPClient code and in the handleResponseBytes(), it does not a handle a 400 Bad request. Which maybe ideal when not a proxy server. However in the case of being a proxy server you would want to treat a failure such as a 400 as a disconnect (I would think) and reconnect as if the liveness responded with an error? As a test I modified handleResponseBytes() to call a virtual function that I can override in the ProxyRTSPClient to handle 400 like a disconnect. As if the continueAfterLivenessCommand() was called with a resultCode < 0. It sometimes recovers now, but it causes problems with my RTSP Client and fails too. So I wait for your guidence. Thanks, Craig On 11/03/2013 01:32 AM, Ross Finlayson wrote: Please post an example of the diagnostic output from the *unmodified* proxy server, when run with the back-end server that causes you a problem. I.e., run the server with the "-V" command-line option. (And, as always, make sure you're using the most up-to-date version of the code.) Ross Finlayson Live Networks, Inc. http://www.live555.com/
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel