0
我使用Live555从远程连接上的IP摄像头提取数据。有时会有短暂的中断(这可能是网络QOS问题),但是,每次发生这种情况而不是成功地重新启动连接时,live555都会死亡。调试输出是这样的:停止Live555重新使用会话
Closing session, because we stopped receiving packets.itrate=N/A speed=1.37x
Created new TCP socket 3 for connection
Connecting to 10.8.1.14, port 10111 on socket 3...
...remote connection opened
Sending request: PLAY rtsp://mycamera.test/live/ch0/ RTSP/1.0
CSeq: 6
User-Agent: /bin/openRTSP (LIVE555 Streaming Media v2017.07.18)
Session: 1487641045855494467
Range: npt=0.000-
Received 199 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 500 Internal Server Error
Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development;)
Cseq: 6
Session: 1487641045855494467
Connection: Close
Failed to start playing session: 500 Internal Server Error
Created new TCP socket 3 for connection
Connecting to 10.8.1.14, port 10111 on socket 3...
...remote connection opened
Sending request: TEARDOWN rtsp://mycamera.test/live/ch0/ RTSP/1.0
CSeq: 7
User-Agent: /bin/openRTSP (LIVE555 Streaming Media v2017.07.18)
Session: 1487641045855494467
Received 180 new bytes of response data.
Received a complete TEARDOWN response:
RTSP/1.0 200 OK
Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development;)
Cseq: 7
Session: 1487641045855494467
Connection: Close
这似乎是live555是原因捞出是因为相机试图重新启动流为现有会话时抛出一个500错误。既然开始一个新的会话有效,有没有什么办法可以告诉live555放弃现有的会话并重新开始,而不是放弃?我有一个cron作业,可以检测live555何时停止并重新启动它,但是当我这样做时会出现问题,因此如果我能够说服live555来弥补相机固件中的错误,它会更加干净。
我很高兴修补live555代码,并在必要时重建!