> On Oct 4, 2020, at 8:16 PM, Alexander Tumarov <alex...@servision.net> > wrote: > > > > You are receiving an additional response to Describe command that was > previously received completely ( CSeq: 4). > > Your setup sent with CSeq: 5 but response came to CSeq: 4 - Handler for > this was already completed. > > Yes, this seems to be a bug in the RTSP server (network camera?). You > should contact the manufacturer of this device (which, remember, is likely > something that you paid for), asking them to fix this. >
I actually also think there is a bug in the camera. I'm using hundreds of cameras without problem, but this happen only with a Samsung camera. In fact, i found maybe the problem is before the SETUP command. My application start an RTSP to get the video stream. I also send an OPTIONS command every 10 seconds to notify we are still alive (some cameras need it otherwise they close the stream). If we receive no video data within 30 seconds, we close the stream and we try to restart it. The SETUP command fails, but some OPTIONS commands don't receive any answer. The camera seems to be in a state where not able to send any data. I just need a workaround to get livemedia not blocked, even if the camera is buggy. Is it a bad practice to send the OPTIONS commands like i do ? Maybe i have a bug in my application, i'm doing something wrong. I tried the openrtsp command, and this seems to work, but it's not sending OPTIONS commands like me, i guess. I will try to write a sample program to reproduce the problem. Here an extract my code : void continueAfterSETUP(RTSPClient* rtspClient, int resultCode, char* resultString) { .... somethings ... m_pMediaSubsession->sink->startPlaying(*(m_pMediaSubsession->readSource()), CustomRTSPClient::subsessionAfterPlaying, m_pMediaSubsession); .... somethings ... m_streamCheckAliveTask = m_env->taskScheduler().scheduleDelayedTask(TIMEOUT_CHECKALIVE, (TaskFunc*)CustomRTSPClient::streamCheckAliveHandler, rtspClient); .... somethings ... } void streamCheckAliveHandler(CustomRTSPClient* rtspClient) { TkCore::TimevalNow tvNow; if(tvNow.diffMs(m_tvLastPacket) > 30000) { m_bError = true; // Timeout is an error TkCore::Logger::debug("[Access::livemedia] No data received in the last %d ms", 30000); m_streamCheckAliveTask = NULL; // Shutdown the stream shutdownStream(rtspClient); }else{ // Some stream have a session timeout, so we need to send a command to tell we are alive // Axis camera with firmware >= 5.60 m_pRtspClient->sendOptionsCommand(CustomRTSPClient::handlePingWithOPTIONS); m_streamCheckAliveTask = m_env->taskScheduler().scheduleDelayedTask(TIMEOUT_CHECKALIVE, (TaskFunc*)CustomRTSPClient::streamCheckAliveHandler, rtspClient); } } Here the logs : 12:02:15,269502 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:15,269542 [LibLiveMedia] CSeq: 22365 12:02:15,269557 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:15,269568 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:15,269580 [LibLiveMedia] Session: 27543 12:02:15,269593 [LibLiveMedia] 12:02:15,269666 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:15,269692 [LibLiveMedia] CSeq: 22366 12:02:15,269706 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:15,269721 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:15,269747 [LibLiveMedia] Session: 27543 12:02:15,269759 [LibLiveMedia] 12:02:15,269822 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:15,269833 [LibLiveMedia] CSeq: 22367 12:02:15,269845 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:15,269856 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:15,269882 [LibLiveMedia] Session: 27543 12:02:15,269894 [LibLiveMedia] 12:02:15,270739 [LibLiveMedia] Received a complete OPTIONS response: 12:02:15,270777 [LibLiveMedia] RTSP/1.0 200 OK 12:02:15,270790 [LibLiveMedia] CSeq: 22365 12:02:15,270801 [LibLiveMedia] Date: Sun, 04 Oct 2020 09:57:32 GMT 12:02:15,270813 [LibLiveMedia] Expires: Sun, 04 Oct 2020 09:57:32 GMT 12:02:15,270839 [LibLiveMedia] Cache-Control: must-revalidate 12:02:15,270852 [LibLiveMedia] Session: 27543;timeout=60 12:02:15,270878 [LibLiveMedia] Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, GET_PARAMETER, SET_PARAMETER 12:02:15,270891 [LibLiveMedia] 12:02:15,271304 [LibLiveMedia] Received a complete OPTIONS response: 12:02:15,271363 [LibLiveMedia] RTSP/1.0 200 OK 12:02:15,271374 [LibLiveMedia] CSeq: 22366 12:02:15,271385 [LibLiveMedia] Date: Sun, 04 Oct 2020 09:57:32 GMT 12:02:15,271397 [LibLiveMedia] Expires: Sun, 04 Oct 2020 09:57:32 GMT 12:02:15,271408 [LibLiveMedia] Cache-Control: must-revalidate 12:02:15,271419 [LibLiveMedia] Session: 27543;timeout=60 12:02:15,271431 [LibLiveMedia] Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, GET_PARAMETER, SET_PARAMETER 12:02:15,271442 [LibLiveMedia] 12:02:15,312308 [LibLiveMedia] Received a complete OPTIONS response: 12:02:15,312342 [LibLiveMedia] RTSP/1.0 200 OK 12:02:15,312353 [LibLiveMedia] CSeq: 22367 12:02:15,312364 [LibLiveMedia] Date: Sun, 04 Oct 2020 09:57:32 GMT 12:02:15,312376 [LibLiveMedia] Expires: Sun, 04 Oct 2020 09:57:32 GMT 12:02:15,312387 [LibLiveMedia] Cache-Control: must-revalidate 12:02:15,312398 [LibLiveMedia] Session: 27543;timeout=60 12:02:15,312409 [LibLiveMedia] Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, GET_PARAMETER, SET_PARAMETER 12:02:15,312421 [LibLiveMedia] 12:02:25,269835 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:25,269882 [LibLiveMedia] CSeq: 22368 12:02:25,269905 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:25,269928 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:25,269939 [LibLiveMedia] Session: 27543 12:02:25,269950 [LibLiveMedia] 12:02:25,270088 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:25,270110 [LibLiveMedia] CSeq: 22369 12:02:25,270122 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:25,270144 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:25,270156 [LibLiveMedia] Session: 27543 12:02:25,270167 [LibLiveMedia] 12:02:25,270235 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:25,270258 [LibLiveMedia] CSeq: 22370 12:02:25,270269 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:25,270292 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:25,270303 [LibLiveMedia] Session: 27543 12:02:25,270314 [LibLiveMedia] 12:02:35,270303 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:35,270353 [LibLiveMedia] CSeq: 22371 12:02:35,270377 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:35,270400 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:35,270424 [LibLiveMedia] Session: 27543 12:02:35,270449 [LibLiveMedia] 12:02:35,270541 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:35,270563 [LibLiveMedia] CSeq: 22372 12:02:35,270576 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:35,270602 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:35,270615 [LibLiveMedia] Session: 27543 12:02:35,270640 [LibLiveMedia] 12:02:35,270700 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:35,270734 [LibLiveMedia] CSeq: 22373 12:02:35,270757 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:35,270781 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:35,270804 [LibLiveMedia] Session: 27543 12:02:35,270826 [LibLiveMedia] 12:02:45,270793 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:45,270835 [LibLiveMedia] CSeq: 22374 12:02:45,270860 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:45,270871 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:45,270882 [LibLiveMedia] Session: 27543 12:02:45,270894 [LibLiveMedia] 12:02:45,270975 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:45,270998 [LibLiveMedia] CSeq: 22375 12:02:45,271012 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:45,271025 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:45,271036 [LibLiveMedia] Session: 27543 12:02:45,271049 [LibLiveMedia] 12:02:45,271114 [LibLiveMedia] Sending request: OPTIONS rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:45,271125 [LibLiveMedia] CSeq: 22376 12:02:45,271137 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="76d96766be1ff27aa5f7875520a013d9" 12:02:45,271150 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:45,271174 [LibLiveMedia] Session: 27543 12:02:45,271187 [LibLiveMedia] 12:02:55,271131 [Access::livemedia] No data received in the last 30000 ms 12:02:55,271167 [Access::livemedia] Stream shutdown 12:02:55,271202 [LibLiveMedia] Sending request: TEARDOWN rtsp:// 192.168.1.3/onvif/profile2/media.smp RTSP/1.0 12:02:55,271227 [LibLiveMedia] CSeq: 22377 12:02:55,271240 [LibLiveMedia] Authorization: Digest username="admin", realm="iPOLiS", nonce="A57B7EF43799CBE77D46CEDD7D5703A2", uri="rtsp:// 192.168.1.3/onvif/profile2/media.smp", response="438cef6b16a7839417c834cfd22de050" 12:02:55,271253 [LibLiveMedia] User-Agent: LIVE555 Streaming Media v2018.11.26 12:02:55,271266 [LibLiveMedia] Session: 27543 12:02:55,271278 [LibLiveMedia] 12:02:55,271305 [Access::livemedia] End of event loop 12:02:55,271350 [Access::livemedia] Stream shutdown 12:02:55,271361 [Access::livemedia] Closing the stream. 12:02:55,271418 [Access::livemedia] Stream shutdown done
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel