[SOLVED] [Config Support]: When clicking a camera in Live view, it just keeps loading forever #17151
-
Describe the problem you are havingHey everyone First of all, this is such a cool project, and I'm totally invested in learning to use it! I bought a Dahua camera and installed Frigate on an old Lenovo laptop with the following specs:
Frigate is running as a Docker container. I've really tried following the documentation to the letter, and I do get detection from the camera, where it records and stores snippets with a person moving around. But whenever I click on the camera feed in Live View, it just hangs with a loading icon. It doesn't switch to recording mode in the Live View menu either, when it detects motion. I really tried troubleshooting all around the internet, but I can't seem to figure out my issue. Probably because I don't understand the technology well enough yet ... sorry if it's something super obvious. I hope someone can help me resolve the issue - thanks! Version0.15.0-cea210d Frigate config filemqtt:
enabled: false
detectors:
coral:
type: edgetpu
device: usb
birdseye:
enabled: true
mode: continuous
go2rtc:
streams:
dahua-cam01:
- rtsp://yyyy:xxxx@[IP-ADDRESS]/cam/realmonitor?channel=1&subtype=0 # this is the main stream
dahua-cam01_sub:
- rtsp://yyyy:xxxx@[IP-ADDRESS]/cam/realmonitor?channel=1&subtype=2 # this is the sub stream, typically supporting low resolutions only
cameras:
dahua-cam01:
enabled: true
birdseye:
enabled: true
ffmpeg:
hwaccel_args: preset-vaapi
inputs:
- path: rtsp://127.0.0.1:8554/dahua-cam01_sub # this is the sub stream, typically supporting low resolutions only
input_args: preset-rtsp-restream
roles:
- detect
- path: rtsp://127.0.0.1:8554/dahua-cam01 # this is the main stream
input_args: preset-rtsp-restream
roles:
- record
live:
height: 720
detect:
enabled: true # <---- disable detection until you have a working camera feed
width: 1280
height: 720
record:
enabled: true
motion:
mask: 0.674,0.037,0.964,0.038,0.966,0.086,0.676,0.09
record:
enabled: true
retain:
days: 1
mode: motion
alerts:
retain:
days: 1
detections:
retain:
days: 1
version: 0.15-1
auth:
#enabled: false
#reset_admin_password: true
trusted_proxies:
- [IP-ADDRESS]/24
tls:
enabled: falseRelevant Frigate log output2025-03-14 15:50:00.539816222 Traceback (most recent call last):
2025-03-14 15:50:00.539867030 File "/usr/lib/python3.9/wsgiref/handlers.py", line 137, in run
2025-03-14 15:50:00.539874522 self.result = application(self.environ, self.start_response)
2025-03-14 15:50:00.539896327 File "/usr/local/lib/python3.9/dist-packages/ws4py/server/wsgiutils.py", line 101, in __call__
2025-03-14 15:50:00.539902792 raise HandshakeError('Header %s is not defined' % key)
2025-03-14 15:50:00.539946831 ws4py.exc.HandshakeError: Header HTTP_UPGRADE is not defined
2025-03-14 15:50:05.601856753 Traceback (most recent call last):
2025-03-14 15:50:05.601867041 File "/usr/lib/python3.9/wsgiref/handlers.py", line 137, in run
2025-03-14 15:50:05.601872383 self.result = application(self.environ, self.start_response)
2025-03-14 15:50:05.601877937 File "/usr/local/lib/python3.9/dist-packages/ws4py/server/wsgiutils.py", line 101, in __call__
2025-03-14 15:50:05.601882324 raise HandshakeError('Header %s is not defined' % key)
2025-03-14 15:50:05.601919257 ws4py.exc.HandshakeError: Header HTTP_UPGRADE is not defined
2025-03-14 15:50:10.662729241 Traceback (most recent call last):
2025-03-14 15:50:10.662739010 File "/usr/lib/python3.9/wsgiref/handlers.py", line 137, in run
2025-03-14 15:50:10.662744339 self.result = application(self.environ, self.start_response)
2025-03-14 15:50:10.663433576 File "/usr/local/lib/python3.9/dist-packages/ws4py/server/wsgiutils.py", line 101, in __call__
2025-03-14 15:50:10.663442286 raise HandshakeError('Header %s is not defined' % key)
2025-03-14 15:50:10.663447413 ws4py.exc.HandshakeError: Header HTTP_UPGRADE is not definedRelevant go2rtc log output2025-03-14 15:48:02.242039018 [INFO] Preparing new go2rtc config...
2025-03-14 15:48:02.631812166 [INFO] Starting go2rtc...
2025-03-14 15:48:02.726492794 15:48:02.726 INF go2rtc platform=linux/amd64 revision=b2399f3 version=1.9.2
2025-03-14 15:48:02.726495963 15:48:02.726 INF config path=/dev/shm/go2rtc.yaml
2025-03-14 15:48:02.726746559 15:48:02.726 INF [rtsp] listen addr=:8554
2025-03-14 15:48:02.726760158 15:48:02.726 INF [api] listen addr=:1984
2025-03-14 15:48:02.726842673 15:48:02.726 INF [webrtc] listen addr=:8555/tcp
2025-03-14 15:48:12.243888177 [INFO] Starting go2rtc healthcheck service...
2025-03-14 15:50:04.260802217 15:50:04.260 ERR github.com/AlexxIT/go2rtc/internal/api/ws/ws.go:105 > host=frigate.svinestien.party origin=https://frigate.svinestien.party error="websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade' header"
2025-03-14 15:50:04.299205794 15:50:04.299 INF [streams] can't add track error="wrong response on DESCRIBE"
2025-03-14 15:50:04.299281004 15:50:04.299 WRN github.com/AlexxIT/go2rtc/internal/streams/producer.go:171 > error="start from CONN state" url=rtsp://admin:ejmaneEjeNNoe1pq1423KJj491@10.0.80.101/cam/realmonitor?channel=1&subtype=0Frigate stats{
"cameras": {
"dahua-cam01": {
"camera_fps": 0,
"process_fps": 0,
"skipped_fps": 0,
"detection_fps": 0,
"detection_enabled": true,
"pid": 490,
"capture_pid": 496,
"ffmpeg_pid": 506,
"audio_rms": 0,
"audio_dBFS": 0
}
},
"detectors": {
"coral": {
"inference_speed": 10,
"detection_start": 0,
"pid": 458
}
},
"detection_fps": 0,
"gpu_usages": {
"intel-qsv": {
"gpu": "0.0%",
"mem": "-%",
"clients": {
"506": "0.0%"
}
}
},
"cpu_usages": {
"1": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "/package/admin/s6/command/s6-svscan -d4 -- /run/service"
},
"15": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise s6-linux-init-shutdownd"
},
"16": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "/package/admin/s6-linux-init/command/s6-linux-init-shutdownd -c /run/s6/basedir -g 3000 -C -B"
},
"24": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise nginx"
},
"25": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise s6rc-fdholder"
},
"26": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise s6rc-oneshot-runner"
},
"27": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise certsync-log"
},
"28": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise nginx-log"
},
"29": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise frigate"
},
"30": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise go2rtc"
},
"31": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise go2rtc-log"
},
"32": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise frigate-log"
},
"33": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise certsync"
},
"34": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-supervise go2rtc-healthcheck"
},
"45": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "/package/admin/s6-2.11.3.2/command/s6-fdholderd -1 -i data/rules"
},
"46": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "/package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcserver-access -v0 -E -l0 -i data/rules -- /package/admin/s6/command/s6-sudod -t 30000 -- /package/admin/s6-rc/command/s6-rc-oneshot-run -l ../.. --"
},
"87": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/nginx"
},
"88": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/go2rtc"
},
"89": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/frigate"
},
"90": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/certsync"
},
"98": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.2",
"cmdline": "/usr/local/go2rtc/bin/go2rtc -config=/dev/shm/go2rtc.yaml"
},
"106": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "bash ./run.user go2rtc-healthcheck"
},
"107": {
"cpu": "0.0",
"cpu_average": "42",
"mem": "1.7",
"cmdline": "python3 -u -m frigate"
},
"118": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1",
"cmdline": "nginx: master process nginx"
},
"133": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "sleep 10s"
},
"164": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "nginx: worker process"
},
"165": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "nginx: worker process"
},
"166": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "nginx: worker process"
},
"167": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "nginx: worker process"
},
"168": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "nginx: cache manager process"
},
"169": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "nginx: cache loader process"
},
"301": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "bash ./run.user certsync"
},
"319": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0",
"cmdline": "sleep 9999"
},
"442": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "1.0",
"cmdline": "frigate.recording_manager"
},
"451": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "1.0",
"cmdline": "frigate.review_segment_manager"
},
"458": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "1.1",
"cmdline": "frigate.detector.coral"
},
"476": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "1.1",
"cmdline": "frigate.output "
},
"490": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "1.1",
"cmdline": "frigate.process:dahua-cam01"
},
"496": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "1.1",
"cmdline": "frigate.capture:dahua-cam01"
},
"506": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.3",
"cmdline": "/usr/lib/ffmpeg/7.0/bin/ffmpeg -hide_banner -loglevel warning -threads 2 -hwaccel qsv -qsv_device /dev/dri/renderD128 -hwaccel_output_format qsv -c:v h264_qsv -bsf:v dump_extra -user_agent FFmpeg Frigate/0.15.0-cea210d -rtsp_transport tcp -timeout 5000000 -i rtsp://127.0.0.1:8554/dahua-cam01_sub -r 5 -vf vpp_qsv=framerate=5:w=1280:h=720:format=nv12,hwdownload,format=nv12,format=yuv420p -threads 2 -f rawvideo -pix_fmt yuv420p pipe:"
},
"509": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.2",
"cmdline": "/usr/lib/ffmpeg/7.0/bin/ffmpeg -hide_banner -loglevel warning -threads 2 -user_agent FFmpeg Frigate/0.15.0-cea210d -rtsp_transport tcp -timeout 5000000 -i rtsp://127.0.0.1:8554/dahua-cam01 -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an /tmp/cache/dahua-cam01@%Y%m%d%H%M%S%z.mp4"
},
"522": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1",
"cmdline": "/usr/lib/ffmpeg/7.0/bin/ffmpeg -threads 1 -f rawvideo -pix_fmt yuv420p -video_size 1280x720 -i pipe: -threads 1 -f mpegts -s 1280x720 -codec:v mpeg1video -q 8 -bf 0 pipe:"
},
"529": {
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1",
"cmdline": "/usr/lib/ffmpeg/7.0/bin/ffmpeg -threads 1 -f rawvideo -pix_fmt yuv420p -video_size 1280x720 -i pipe: -threads 1 -f mpegts -s 1280x720 -codec:v mpeg1video -q 8 -bf 0 pipe:"
},
"frigate.full_system": {
"cpu": "0.0",
"mem": "15.0"
}
},
"service": {
"uptime": 4,
"version": "0.15.0-cea210d",
"latest_version": "0.15.0",
"storage": {
"/media/frigate/recordings": {
"total": 237813.4,
"used": 11338.2,
"free": 214323.8,
"mount_type": "ext4"
},
"/media/frigate/clips": {
"total": 237813.4,
"used": 11338.2,
"free": 214323.8,
"mount_type": "ext4"
},
"/tmp/cache": {
"total": 953.7,
"used": 13.2,
"free": 940.4,
"mount_type": "tmpfs"
},
"/dev/shm": {
"total": 512,
"used": 0.5,
"free": 511.5,
"mount_type": "tmpfs"
}
},
"temperatures": {},
"last_updated": 1741963688
},
"processes": {
"recording": {
"pid": 442
},
"review_segment": {
"pid": 451
},
"go2rtc": {
"pid": 98
}
}
}Operating systemDebian Install methodDocker Compose docker-compose file or Docker CLI command#version: "3.9"
services:
frigate:
container_name: frigate
privileged: true # this may not be necessary for all setups
restart: unless-stopped
stop_grace_period: 30s # allow enough time to shut down the various services
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: "512mb" # update for your cameras based on calculation above
devices:
- /dev/bus/usb:/dev/bus/usb # Passes the USB Coral, needs to be modified for other versions
- /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, needs to be updated for your hardware
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/frigate/config:/config
- /opt/frigate/storage:/media/frigate
- type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "8971:8971"
# - "5000:5000" # Internal unauthenticated access. Expose carefully.
- "8554:8554" # RTSP feeds
- "8555:8555/tcp" # WebRTC over tcp
- "8555:8555/udp" # WebRTC over udp
- "1984:1984" # go2rtc
environment:
FRIGATE_RTSP_PASSWORD: "frigate_password"Object DetectorCoral Screenshots of the Frigate UI's System metrics pagesAny other information that may be helpfulCamera is a "Dahua Eyeball" - can't find any model information other than that. Main stream and substream on the camera are H.264, and the framerate and I-frames have been set according to the Frigate documentation. The links to the streams have been tested in VLC, and work just fine. Browsers used are Arc and Safari on MacOS. Haven't tried others yet. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 7 replies
-
|
You need to make sure your proxy is proxying websockets. |
Beta Was this translation helpful? Give feedback.

then you'll need to adjust NPM to ensure that websockets are enabled