AlexxIT / go2rtc

Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc.
https://github.com/AlexxIT/Blog
MIT License
4.15k stars 336 forks source link

Everyday stop working once!1.9.4 #1229

Open yuhuanfan opened 2 months ago

yuhuanfan commented 2 months ago

frigate(10.1) rtmp to go2rtc

exit with signal: terminated
02:15:09.830 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
02:15:10.036 INF config path=/config/go2rtc.yaml
02:15:10.098 INF [api] listen addr=:1984
02:15:10.104 INF [rtsp] listen addr=:8554
02:15:10.242 INF [webrtc] listen addr=:8555
exit with signal: terminated
05:30:15.687 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
05:30:15.780 INF config path=/config/go2rtc.yaml
05:30:15.847 INF [rtsp] listen addr=:8554
05:30:15.862 INF [api] listen addr=:1984
05:30:15.902 INF [webrtc] listen addr=:8555
20:28:01.201 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
20:28:01.226 INF config path=/config/go2rtc.yaml
20:28:01.313 INF [rtsp] listen addr=:8554
20:28:01.313 INF [api] listen addr=:1984
20:28:01.342 INF [webrtc] listen addr=:8555
21:37:56.680 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:170 > error="read tcp 127.0.0.1:8554->127.0.0.1:60410: i/o timeout" url=ffmpeg:rtmp://127.0.0.1/live/camera_1#video=copy#audio=copy#audio=opus#timeout=120
22:09:32.190 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:170 > error="read tcp 127.0.0.1:8554->127.0.0.1:54744: i/o timeout" url=ffmpeg:rtmp://127.0.0.1/live/camera_1#video=copy#audio=copy#audio=opus#timeout=120
exit with signal: terminated
02:15:10.215 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
02:15:10.350 INF config path=/config/go2rtc.yaml
02:15:10.452 INF [rtsp] listen addr=:8554
02:15:10.512 INF [webrtc] listen addr=:8555
02:15:10.498 INF [api] listen addr=:1984
04:28:56.656 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:230 > error="wrong request: \x03\x00\x00/*�\x00\x00\x00\x00\x00Cookie: mstshash=Administr"
exit with signal: terminated
05:30:16.522 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
05:30:16.673 INF config path=/config/go2rtc.yaml
05:30:16.701 INF [rtsp] listen addr=:8554
05:30:16.700 INF [api] listen addr=:1984
05:30:16.745 INF [webrtc] listen addr=:8555
07:19:13.705 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:230 > error="wrong request: \x03\x00\x00/*�\x00\x00\x00\x00\x00Cookie: mstshash=Administr"
11:56:16.849 WRN github.com/AlexxIT/go2rtc/internal/rtsp/rtsp.go:230 > error="read tcp 192.168.10.157:8554->39.105.112.126:59801: i/o timeout"
12:25:09.278 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
12:25:09.298 INF config path=/config/go2rtc.yaml
12:25:09.339 INF [api] listen addr=:1984
12:25:09.339 INF [rtsp] listen addr=:8554
12:25:09.427 INF [webrtc] listen addr=:8555
13:42:45.921 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
13:42:45.995 INF config path=/config/go2rtc.yaml
13:42:46.134 INF [api] listen addr=:1984
13:42:46.134 INF [rtsp] listen addr=:8554
13:42:46.188 INF [webrtc] listen addr=:8555
13:44:26.447 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
13:44:26.450 INF config path=/config/go2rtc.yaml
13:44:26.470 INF [api] listen addr=:1984
13:44:26.471 INF [rtsp] listen addr=:8554
13:44:26.481 INF [webrtc] listen addr=:8555
13:45:30.090 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
13:45:30.094 INF config path=/config/go2rtc.yaml
13:45:30.102 INF [api] listen addr=:1984
13:45:30.109 INF [rtsp] listen addr=:8554
13:45:30.124 INF [webrtc] listen addr=:8555
13:48:39.562 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
13:48:39.564 INF config path=/config/go2rtc.yaml
13:48:39.577 INF [api] listen addr=:1984
13:48:39.580 INF [rtsp] listen addr=:8554
13:48:39.610 INF [webrtc] listen addr=:8555
panic: close of closed channel

goroutine 1507 [running]:
github.com/AlexxIT/go2rtc/pkg/core.(*Sender).Close(0x3943900)
    github.com/AlexxIT/go2rtc/pkg/core/track.go:174 +0xb4
github.com/AlexxIT/go2rtc/pkg/core.(*Connection).Stop(0x20b6188)
    github.com/AlexxIT/go2rtc/pkg/core/connection.go:74 +0x88
github.com/AlexxIT/go2rtc/internal/streams.(*Stream).RemoveConsumer(0x214a6f0, {0x989be0, 0x20b6188})
    github.com/AlexxIT/go2rtc/internal/streams/stream.go:58 +0x24
github.com/AlexxIT/go2rtc/internal/webrtc.asyncHandler.func1({0x7de388, 0xd83c20})
    github.com/AlexxIT/go2rtc/internal/webrtc/webrtc.go:131 +0x9c
github.com/AlexxIT/go2rtc/pkg/core.(*Listener).Fire(...)
    github.com/AlexxIT/go2rtc/pkg/core/listener.go:16
github.com/AlexxIT/go2rtc/pkg/webrtc.NewConn.func5(0x6)
    github.com/AlexxIT/go2rtc/pkg/webrtc/conn.go:128 +0x68
created by github.com/pion/webrtc/v3.(*PeerConnection).onConnectionStateChange in goroutine 1472
    github.com/pion/webrtc/v3@v3.2.40/peerconnection.go:500 +0x158
19:01:44.771 INF go2rtc platform=linux/arm revision=a4885c2 version=1.9.4
19:01:44.925 INF config path=/config/go2rtc.yaml
19:01:44.994 INF [api] listen addr=:1984
19:01:44.998 INF [rtsp] listen addr=:8554
19:01:45.053 INF [webrtc] listen addr=:8555
benshabatnoam commented 1 month ago

This is happening for us as well, we have the exact same logs:

23:08:33.841 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
23:08:33.841 INF config path=/config/go2rtc.yaml
23:08:33.841 INF [rtsp] listen addr=192.168.34.80:554
23:08:33.841 INF [api] listen addr=:1984
23:08:33.841 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
02:08:37.616 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
02:08:37.617 INF config path=/config/go2rtc.yaml
02:08:37.618 INF [api] listen addr=:1984
02:08:37.618 INF [rtsp] listen addr=192.168.34.80:554
02:08:37.618 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
05:08:37.674 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
05:08:37.674 INF config path=/config/go2rtc.yaml
05:08:37.674 INF [rtsp] listen addr=192.168.34.80:554
05:08:37.674 INF [api] listen addr=:1984
05:08:37.674 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
08:08:37.590 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
08:08:37.590 INF config path=/config/go2rtc.yaml
08:08:37.590 INF [api] listen addr=:1984
08:08:37.591 INF [rtsp] listen addr=192.168.34.80:554
08:08:37.591 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
11:08:37.546 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
11:08:37.547 INF config path=/config/go2rtc.yaml
11:08:37.547 INF [rtsp] listen addr=192.168.34.80:554
11:08:37.547 INF [api] listen addr=:1984
11:08:37.547 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
13:00:49.108 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
13:00:49.109 INF config path=/config/go2rtc.yaml
13:00:49.111 INF [rtsp] listen addr=192.168.34.80:554
13:00:49.111 INF [api] listen addr=:1984
13:00:49.112 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
16:00:39.320 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
16:00:39.321 INF config path=/config/go2rtc.yaml
16:00:39.322 INF [rtsp] listen addr=192.168.34.80:554
16:00:39.322 INF [api] listen addr=:1984
16:00:39.322 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
19:00:39.248 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
19:00:39.249 INF config path=/config/go2rtc.yaml
19:00:39.250 INF [rtsp] listen addr=192.168.34.80:554
19:00:39.250 INF [api] listen addr=:1984
19:00:39.250 INF [webrtc] listen addr=:8555/tcp
19:10:19.145 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:170 > error=EOF url=rtsp://admin:ehhTc2A3m!6T@192.168.34.23/videoStreamId=2
19:30:50.271 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:170 > error=EOF url=rtsp://admin:ehhTc2A3m!6T@192.168.34.23/videoStreamId=2
19:35:47.396 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:170 > error=EOF url=rtsp://admin:ehhTc2A3m!6T@192.168.34.23/videoStreamId=2
20:39:04.942 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:170 > error=EOF url=rtsp://admin:ehhTc2A3m!6T@192.168.34.23/videoStreamId=2
exit with signal: terminated
22:00:39.405 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
22:00:39.405 INF config path=/config/go2rtc.yaml
22:00:39.406 INF [rtsp] listen addr=192.168.34.80:554
22:00:39.406 INF [api] listen addr=:1984
22:00:39.406 INF [webrtc] listen addr=:8555/tcp
22:58:51.142 INF [streams] can't get track error="wrong response on SETUP"
22:58:54.491 INF [streams] can't get track error="wrong response on SETUP"
22:59:14.122 INF [streams] can't get track error="wrong response on SETUP"
22:59:42.598 INF [streams] can't get track error="wrong response on SETUP"
22:59:57.762 INF [streams] can't get track error="wrong response on SETUP"
23:04:02.067 INF [streams] can't get track error="wrong response on SETUP"
23:05:05.342 INF [streams] can't get track error="wrong response on SETUP"
panic: close of closed channel

goroutine 7477 [running]:
github.com/AlexxIT/go2rtc/pkg/core.(*Sender).Close(0x0?)
        github.com/AlexxIT/go2rtc/pkg/core/track.go:174 +0x96
github.com/AlexxIT/go2rtc/pkg/core.(*Connection).Stop(0xc001c56f20)
        github.com/AlexxIT/go2rtc/pkg/core/connection.go:74 +0x90
github.com/AlexxIT/go2rtc/internal/streams.(*Stream).RemoveConsumer(0xc0001dcac0, {0xd90aa0, 0xc001c56f20})
        github.com/AlexxIT/go2rtc/internal/streams/stream.go:58 +0x30
github.com/AlexxIT/go2rtc/internal/webrtc.asyncHandler.func1({0xb6f6a0?, 0x1221950?})
        github.com/AlexxIT/go2rtc/internal/webrtc/webrtc.go:131 +0x9b
github.com/AlexxIT/go2rtc/pkg/core.(*Listener).Fire(...)
        github.com/AlexxIT/go2rtc/pkg/core/listener.go:16
github.com/AlexxIT/go2rtc/pkg/webrtc.NewConn.func5(0x6)
        github.com/AlexxIT/go2rtc/pkg/webrtc/conn.go:128 +0x68
created by github.com/pion/webrtc/v3.(*PeerConnection).onConnectionStateChange in goroutine 7476
        github.com/pion/webrtc/v3@v3.2.40/peerconnection.go:500 +0x16f
23:07:39.124 INF go2rtc platform=linux/amd64 revision=a4885c2 version=1.9.4
23:07:39.125 INF config path=/config/go2rtc.yaml
23:07:39.125 INF [rtsp] listen addr=192.168.34.80:554
23:07:39.125 INF [api] listen addr=:1984
23:07:39.126 INF [webrtc] listen addr=:8555/tcp
benshabatnoam commented 1 month ago

Downgraded to v1.9.3 and it's still happening

00:18:37.248 INF go2rtc platform=linux/amd64 revision=cd777ba version=1.9.3
00:18:37.249 INF config path=/config/go2rtc.yaml
00:18:37.249 INF [rtsp] listen addr=192.168.34.80:554
00:18:37.249 INF [api] listen addr=:1984
00:18:37.249 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
03:18:40.393 INF go2rtc platform=linux/amd64 revision=cd777ba version=1.9.3
03:18:40.395 INF config path=/config/go2rtc.yaml
03:18:40.396 INF [rtsp] listen addr=192.168.34.80:554
03:18:40.396 INF [api] listen addr=:1984
03:18:40.397 INF [webrtc] listen addr=:8555/tcp
benshabatnoam commented 1 month ago

Downgraded to v1.9.2 and it's still happening

04:08:49.811 INF go2rtc platform=linux/amd64 revision= version=1.9.2
04:08:49.813 INF config path=/config/go2rtc.yaml
04:08:49.813 INF [rtsp] listen addr=192.168.34.80:554
04:08:49.813 INF [api] listen addr=:1984
04:08:49.813 INF [webrtc] listen addr=:8555/tcp
exit with signal: terminated
06:48:53.353 INF go2rtc platform=linux/amd64 revision= version=1.9.2
06:48:53.360 INF config path=/config/go2rtc.yaml
06:48:53.361 INF [rtsp] listen addr=192.168.34.80:554
06:48:53.361 INF [api] listen addr=:1984
06:48:53.361 INF [webrtc] listen addr=:8555/tcp

BTW we're using your docker image

yuhuanfan commented 1 month ago

i found why if the connection idle,go2rtc will stop working. so i used frigate connect go2rtc 7*24. first start frigate then start go2rtc

benshabatnoam commented 1 month ago

Note that we're not using frigate at all, we're using go2rtc docker directly.

benshabatnoam commented 1 month ago

Still happening in 1.8.5

14:26:07.885 INF go2rtc version 1.8.5 linux/amd64
14:26:07.888 INF [api] listen addr=:1984
14:26:07.888 INF [rtsp] listen addr=192.168.34.80:554
14:26:07.888 INF [webrtc] listen addr=:8555
exit with signal: terminated
17:26:08.191 INF go2rtc version 1.8.5 linux/amd64
17:26:08.191 INF [api] listen addr=:1984
17:26:08.191 INF [rtsp] listen addr=192.168.34.80:554
17:26:08.191 INF [webrtc] listen addr=:8555
exit with signal: terminated
20:26:08.286 INF go2rtc version 1.8.5 linux/amd64
20:26:08.287 INF [rtsp] listen addr=192.168.34.80:554
20:26:08.287 INF [api] listen addr=:1984
20:26:08.288 INF [webrtc] listen addr=:8555

Any advice @AlexxIT ?

epicurean70 commented 1 month ago

I am having the same issue of go2rtc (1.9.4)stop when there is no movement detected in Frigate as well