[Live-devel] Live555 Proxy Server - Stuck in endless loop

Erik Montnemery erik at montnemery.com
Tue Mar 15 12:26:09 PDT 2016


2016-01-24 22:22 GMT+01:00 Ross Finlayson <finlayson at live555.com>:
>> On Jan 12, 2016, at 1:48 PM, Erik Montnemery <erik at montnemery.com> wrote:
>>
>> I'm using the live555ProxyServer to be able to reliably record and view streams from four cheap cameras concurrently.
>> Recording is done in 15 minute chunks with 15 seconds of overlap, meaning there will normally be between 4-8 active clients for the 4 proxied streams.
>> The live 555 version is 2015.12.22, compiled for linux-64bit.
>>
>> Today the live555ProxyServer got stuck in an endless loop, with this tail of the log:
>>
>> ProxyRTSPClient["rtsp://192.168.0.126/ch0_0.h264/"]::continueAfterSETUP(): head codec: H264; numSubsessions 2
>>       queue:  H264    MPEG4-GENERIC   MPEG4-GENERIC
>>
>> "MPEG4-GENERIC" is then endlessly repeated.
>
> I still don’t know how/why this can occur, but I’ve just released a new version (2016.01.24) of the code that adds some ‘INTERNAL ERROR’ messages if the queue gets into an inconsistent state.  Should you see any of these messages, please let us know.
>
I noticed one of the prints in the logs, a snippet is included below.
The full log can be uploaded if needed.

By the way, I have another problem where newly connected clients don't
receive any data for some of the streams served by the proxy server.
When the client connects, the proxy server sends a play request and
receives a response from the server but the client does not receive
any data from the proxy server.
In the most recent case, there is a mismatch between "Session" in the
"PLAY" sent to the server and "PLAY response" received by the proxy
server according to the log, I'm not sure if that is important though.
This mismatch seems to be introduced by the server, and correlates in
time with clients not receiving data from the proxy.
Would it make sense for the proxyserver to tear down the connection to
the server in this case?
I can provide log for this scenario if useful.

---- Log snippet with ‘INTERNAL ERROR’ message starts here ----
ProxyServerMediaSubsession["H264"]::closeStreamSource()
Sending request: PAUSE rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
CSeq: 3276
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 2AE8944A


ProxyServerMediaSubsession["MPEG4-GENERIC"]::closeStreamSource()
Opening connection to 192.168.0.126, port 554...
...remote connection opened
Sending request: OPTIONS rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
CSeq: 3277
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 2AE8944A


Received 155 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 3277
Date: Wed, Jan 28 1970 13:49:46 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::~ProxyServerMediaSubsession()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::~ProxyServerMediaSubsession()
Opening connection to 192.168.0.126, port 554...
...remote connection opened
Sending request: DESCRIBE rtsp://192.168.0.126/ch0_0.h264 RTSP/1.0
CSeq: 3278
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Accept: application/sdp


Received 1022 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 3278
Date: Wed, Jan 28 1970 13:49:46 GMT
Content-Base: rtsp://192.168.0.126/ch0_0.h264/
Content-Type: application/sdp
Content-Length: 854

v=0
o=- 2382586748152 1 IN IP4 192.168.1.128
s=H.264 Program Stream, streamed by the LIVE555 Media Server
i=ch0_0.h264
t=0 0
a=DevVer:pusher2
a=GroupName:IPCAM
a=NickName:CIF
a=CfgSection:PROG_CHN0
a=tool:LIVE555 Streaming Media v2011.08.13
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:H.264 Program Stream, streamed by the LIVE555 Media Server
a=x-qt-text-inf:ch0_0.h264
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:4000
a=rtpmap:96 H264/90000
a=control:trackID=1
a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z2QAH6wrUCgC3IA=,aO48MA==
a=framesize:96 1280-720
a=cliprect:0,0,1280,720
m=audio 0 RTP/AVP 97
a=rtpmap:97 mpeg4-generic/8000/2
a=fmtp:97 streamtype=5;profile-level-id=1;cpresent=0;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1590
a=control:trackID=2

ProxyServerMediaSession["rtsp://192.168.0.126/ch0_0.h264/"] added new
"ProxyServerMediaSubsession" for RTP/video/H264 track
ProxyServerMediaSession["rtsp://192.168.0.126/ch0_0.h264/"] added new
"ProxyServerMediaSubsession" for RTP/audio/MPEG4-GENERIC track
Sending request: OPTIONS rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
CSeq: 25787
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 66334873


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25787
Date: Sat, Feb 06 2016 14:19:31 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


Sending request: OPTIONS rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
CSeq: 25782
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 6B8B4567


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25782
Date: Sat, Feb 06 2016 14:19:31 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 0)
Initiated: ProxyServerMediaSubsession["H264"]
ProxyServerMediaSubsession["H264"]::createNewRTPSink()
ProxyServerMediaSubsession["H264"]::closeStreamSource()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewStreamSource(session id 0)
Initiated: ProxyServerMediaSubsession["MPEG4-GENERIC"]
ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewRTPSink()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::closeStreamSource()
ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 3526105992)
Sending request: SETUP rtsp://192.168.0.126/ch0_0.h264/trackID=1 RTSP/1.0
CSeq: 3279
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Transport: RTP/AVP;unicast;client_port=48130-48131


ProxyServerMediaSubsession["H264"]::createNewRTPSink()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewStreamSource(session
id 3526105992)
ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewRTPSink()
Sending request: OPTIONS rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
CSeq: 25772
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 354FE9F9


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25772
Date: Sat, Feb 06 2016 14:19:40 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::closeStreamSource()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::closeStreamSource()
Sending request: OPTIONS rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
CSeq: 3280
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)


Sending request: OPTIONS rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
CSeq: 25788
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 66334873


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25788
Date: Sat, Feb 06 2016 14:20:01 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


Sending request: OPTIONS rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
CSeq: 25783
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 6B8B4567


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25783
Date: Sat, Feb 06 2016 14:20:01 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 2928547232)
ProxyServerMediaSubsession["H264"]::createNewRTPSink()
Sending request: OPTIONS rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
CSeq: 3282
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)


ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewStreamSource(session
id 2928547232)
ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewRTPSink()
Sending request: OPTIONS rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
CSeq: 25773
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 354FE9F9


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25773
Date: Sat, Feb 06 2016 14:20:10 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::closeStreamSource()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::closeStreamSource()
Sending request: OPTIONS rtsp://192.168.0.123/ch0_0.h264/ RTSP/1.0
CSeq: 25789
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 66334873


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25789
Date: Sat, Feb 06 2016 14:20:31 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


Sending request: OPTIONS rtsp://192.168.0.124/ch0_0.h264/ RTSP/1.0
CSeq: 25784
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 6B8B4567


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25784
Date: Sat, Feb 06 2016 14:20:31 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::createNewStreamSource(session id 3404428162)
ProxyServerMediaSubsession["H264"]::createNewRTPSink()
Sending request: OPTIONS rtsp://192.168.0.126/ch0_0.h264/ RTSP/1.0
CSeq: 3285
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)


ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewStreamSource(session
id 3404428162)
ProxyServerMediaSubsession["MPEG4-GENERIC"]::createNewRTPSink()
Sending request: OPTIONS rtsp://192.168.0.125/ch0_0.h264/ RTSP/1.0
CSeq: 25774
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Session: 354FE9F9


Received 156 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 25774
Date: Sat, Feb 06 2016 14:20:40 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::closeStreamSource()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::closeStreamSource()
Received 222 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 3279
Date: Wed, Jan 28 1970 13:51:16 GMT
Transport: RTP/AVP;unicast;destination=192.168.0.105;source=192.168.0.126;client_port=48130-48131;server_port=6978-6979;ssrc=c1b71efb
Session: 2EB141F2


ProxyRTSPClient["rtsp://192.168.0.126/ch0_0.h264/"]::continueAfterSETUP():
head codec: H264; numSubsessions 2
queue: H264 MPEG4-GENERIC##### INTERNAL ERROR 1

Sending request: SETUP rtsp://192.168.0.126/ch0_0.h264/trackID=2 RTSP/1.0
CSeq: 3287
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Transport: RTP/AVP;unicast;client_port=46134-46135
Session: 2EB141F2


Received 155 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 3280
Date: Wed, Jan 28 1970 13:51:16 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,
GET_PARAMETER, SET_PARAMETER


ProxyServerMediaSubsession["H264"]::~ProxyServerMediaSubsession()
ProxyServerMediaSubsession["MPEG4-GENERIC"]::~ProxyServerMediaSubsession()
Opening connection to 192.168.0.126, port 554...
...remote connection opened
Sending request: DESCRIBE rtsp://192.168.0.126/ch0_0.h264 RTSP/1.0
CSeq: 3288
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2016.01.24)
Accept: application/sdp


Received 1022 new bytes of response data.
WARNING: The server did not respond to our "OPTIONS" request (CSeq:
3282).  The server appears to be buggy (perhaps not handling pipelined
requests properly).
WARNING: The server did not respond to our "OPTIONS" request (CSeq:
3285).  The server appears to be buggy (perhaps not handling pipelined
requests properly).
WARNING: The server did not respond to our "SETUP" request (CSeq:
3287).  The server appears to be buggy (perhaps not handling pipelined
requests properly).



More information about the live-devel mailing list