Closed steveax79 closed 2 years ago
camera -> recordings No recordings found. (Recordings enabled in config.yml) OS recordings directory empty
camera -> events Events in event list ok, event snapshot ok, event clip play not working. 502 Bad Gateway
Are these h265 cameras?
h264 cameras.
Video clip events in previous version 0.9.0-8fd12f0-amd64 works fine.
Config.yml it's ok ¿?
record: enabled: True retain_days: 0 events: enabled: true max_seconds: 300 pre_capture: 5 post_capture: 10 retain: default: 10
ffprobe version 4.3.1 Copyright (c) 2007-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04) configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libfreetype --enable-libvidstab --enable-libmfx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-vaapi --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 Input #0, rtsp, from 'rtsp://user:pass@192.168.10.103:554/Streaming/Channels/101': Metadata: title : Media Presentation Duration: N/A, start: 0.550000, bitrate: N/A Stream #0:0: Video: h264, yuvj420p(pc, bt709, progressive), 2560x1440, 10 fps, 10 tbr, 90k tbn, 20 tbc
1.- I've changed old deprecated role clips to record in config.yml. Partially resolved problem.
Events recordings now work Cameras -> Recordings button.
Event duration: 20 seconds.
Played video duration +15 minutes and up... It's right ? If retain_days = 1 Here we can have up to 24 hours of video?
Still not working from Event List -> Event XX. "Error: The media could not be loaded, either because the server or network failed or because the format is not supported."
cameras:
jardin:
ffmpeg:
inputs:
- path: rtsp://user:pass@192.168.10.103:554/Streaming/Channels/101
roles:
- detect
- clips <<<<<<<<<<<<<<<< Change this to record >>>>>>>>>>>
- rtmp
Are these h265 cameras? https://github.com/blakeblackshear/frigate/issues/1606#issuecomment-905951098
looks like newer hikvison cameras, in h264 but with "yuvj420p" (! J !) instead "yuv420p". (mine with yuvj420p also not working out-of-the-box )
rtsp://user:pass@192.168.10.103:554/Streaming/Channels/101': Metadata: title : Media Presentation Duration: N/A, start: 0.550000, bitrate: N/A Stream #0:0: Video: h264, yuvj420p(pc, bt709, progressive), 2560x1440, 10 fps, 10 tbr, 90k tbn, 20 https://github.com/blakeblackshear/frigate/issues/1606#issuecomment-906170418
1.- v0.9.0-rc1 tested. SOLVED!
New event list works like a charm!
2.- ¿?
I have pretty much the same problem. Is it really right now that I have to activate 24/7 recording for at least 1 day, otherwise it is not possible to only save object clips? For me it would be a step backwards. I just need the object clips. With Beta 1 it was still possible ...
UPDATE: Since yesterday with RC1. All events are not recorded, some are recorded, others are not.
"The media could not be loaded, either because the server or network failed or because the format is not supported."
config.yml
record:
enabled: yes
retain_days: 0
events:
enabled: true
max_seconds: 300
pre_capture: 15
post_capture: 15
objects:
- person
retain:
default: 10
UPDATE: Since yesterday with RC1. All events are not recorded, some are recorded, others are not.
my guess is, that failure has it cause in the config for the rtsp-format of the cam ( and ffmpeg-options in frigate.yml for output_args:. general or per camera)
if it is h264 and yuv420p, than all is ok. its not ok if the cam sends h265 or Video: h264, yuvj420p
may check of streams with ffprobe against this theory?
I have 8 cameras of different models connected, Foscam 1080, Foscam 720, Hikvision 1080, Hikvision 2k. All h264.
Is your theory applicable if the same camera sometimes works and sometimes not? In my case, same camera sometimes works and sometimes give error. "The media could not be loaded, either because the server or network failed or because the format is not supported."
ffprobes
Hikvision 2k
ffprobe version 4.3.1 Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libfreetype --enable-libvidstab --enable-libmfx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-vaapi --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, rtsp, from 'rtsp://user:pass@192.168.10.103:554/Streaming/Channels/101':
Metadata:
title : Media Presentation
Duration: N/A, start: 0.600000, bitrate: N/A
Stream #0:0: Video: h264, yuvj420p(pc, bt709, progressive), 2560x1440, 10 fps, 10 tbr, 90k tbn, 20 tbc
Foscam 720
ffprobe version 4.3.1 Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libfreetype --enable-libvidstab --enable-libmfx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-vaapi --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, rtsp, from 'rtsp://user:pass@192.168.10.101:554/videoMain':
Metadata:
title : videoMain
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264, yuvj420p(pc, bt709, progressive), 1280x720, 10 tbr, 90k tbn, 180k tbc
Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
Foscam 1080 - It seems that there are some errors, I don't know what they are ...
ffprobe version 4.3.1 Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libfreetype --enable-libvidstab --enable-libmfx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-vaapi --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65548
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65550
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65552
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65554
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65556
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65558
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65560
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65562
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65564
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65566
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65568
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65570
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65572
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65574
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65576
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65578
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65580
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65582
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65584
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65586
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65588
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65590
[h264 @ 0x561a05d5eb40] Missing reference picture, default is 65592
Input #0, rtsp, from 'rtsp://user:pass@192.168.10.100:88/videoMain':
Metadata:
title : IP Camera Video
comment : videoMain
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264, yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 tbr, 90k tbn, 2108081.20 tbc
Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
Hikvision 1080
ffprobe version 4.3.1 Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libfreetype --enable-libvidstab --enable-libmfx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-vaapi --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, rtsp, from 'rtsp://user:pass2018@192.168.10.104:554/Streaming/Channels/101':
Metadata:
title : Media Presentation
Duration: N/A, start: 0.120000, bitrate: N/A
Stream #0:0: Video: h264, yuvj420p(pc, bt709, progressive), 1920x1080, 25 tbr, 90k tbn, 180k tbc
@steveax79 thanks for the thorough analysis. I have two foscam and two hikvision. I have the same behaviour as you described. Being completely new to frigate, I started with 0.9.0-rc1-armv7 (running on odroid c2 with coral USB). Clips were not working (same error "The media could not be loaded...") and no mp4 in the clips folder. Switching to recording works, with the same caveats, I don't want 24/7 recordings... Downgrading to blakeblackshear/frigate:stable-armv7 (and adapting to conf accordingly), clips were working. All my cameras are H264. Happy to test further, if required. And, blakeblackshear thanks for the fantastic tool!
@steveax79 any cam has wlan? or all with cable?
i can spot only one obvious difference between your cams on the ffmpeg: as you marked the Foscam 1080 as mostly faulty. that is the only one with "yuv420p" that format in your cam-list.
i am too much unexperienced with ffmpeg to give any guess how to set suitable output-args for correct recordings...
@steveax79 thanks for the thorough analysis. I have two foscam and two hikvision. I have the same behaviour as you described. Being completely new to frigate, I started with 0.9.0-rc1-armv7 (running on odroid c2 with coral USB). Clips were not working (same error "The media could not be loaded...") and no mp4 in the clips folder. Switching to recording works, with the same caveats, I don't want 24/7 recordings... Downgrading to blakeblackshear/frigate:stable-armv7 (and adapting to conf accordingly), clips were working. All my cameras are H264. Happy to test further, if required. And, blakeblackshear thanks for the fantastic tool!
Same problem here. Clips are no longer recorded, unless 24/7 recording is enabled as well. Clips as a capability is now deprecated, it is using recordings instead and it makes many things better. However, better wait for documentation, as with older versions I have different parameters for clips and recordings and I am (was) using only clips for some use cases without 24/7 recording. I'd like to retain only clips, so will have to check if retain setting 0 would make it similar how it used to work for that use case.
The clips folder is no longer used in 0.9.0 as the concept of clips has been replaced by events. You won't see any new mp4 files in the clips folder after upgrading to 0.9.0. See https://github.com/blakeblackshear/frigate/discussions/1502#discussioncomment-1168133
You have to turn on record to save video from a camera. Set retain_days to 0 and configure event retention to only save recordings where events occur.
Thanks for the answer. Can you detail a bit more how to "You have to turn on record to save video from a camera. Set retain_days to 0 and configure event retention to only save recordings where events occur.". Any documentation available on that?
There is an example in this issue: https://github.com/blakeblackshear/frigate/issues/1606#issuecomment-907606473
Thanks. I saw that. However, I had "real" records in the recording folder.
What retain_days: 0
should do? Delete after 1 day or immediately?
It should retain up to the max_seconds
configured for events to make sure it doesn't delete video for events in progress. The default is 5 minutes of video.
Thanks for the explanations!! Again, great tool :) Now my "clips" are there.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I have a similar but different problem: my events are not always being recorded. I am running Supervised HA in a Virtualbox VM on an Ubuntu 20.04 host. I have Frigate version 0.9.1-800F33E running in a separate docker container. I have 10 cameras in my setup but to make it simpler I show below the config.yml file for just 1 camera. When an event occurs, I get a snapshot and the Frigate events menu thinks there is a video recording but when I try and play it I get a messasge saying "The media could not be loaded, either because the server or network failed or because the format is not supported.".
Any ideas as to what I am doing wrong? Also, how do I get the logs out of the Docker container? Also, how do I run ffprobe in the container?
Sorry about the questions. I am guessing I am doing something dumb but what???
My config.yml file is:
mqtt:
host: 10.0.0.251
user: mqtt_user
password: *****
ffmpeg:
hwaccel_args:
- -hwaccel
- vaapi
- -hwaccel_device
- /dev/dri/renderD128
- -hwaccel_output_format
- yuv420p
global_args: -hide_banner -loglevel debug
cameras:
# Name of your camera
Camera1:
ffmpeg:
inputs:
- path: rtsp://****:*****@10.0.0.120/img/video.sav
roles:
- detect
- rtmp
- record
detect:
width: 1280
height: 720
fps: 5
objects:
track:
- person
- car
filters:
person:
min_score: 0.6
threshold: 0.66
record:
enabled: true
retain_days: 0
events:
max_seconds: 60
retain:
default: 10
snapshots:
enabled: true
detectors:
coral:
type: edgetpu
device: pci
Same problem here
Same problem here
I started a separate thread on this: https://github.com/blakeblackshear/frigate/issues/2076#issuecomment-950312617
There is an example in this issue: #1606 (comment)
I'd like to just point out that the second enabled: true
line is not allowed and needs to be removed.
Thank you @jschwalbe for responding but I don't understand. The first enabled: true
is to enable recording and the 2nd enabled: true
is to enable snapshots?
still having this issue
Still the same issue on the latest version..
I have the same issue, 6 camera and happening on all of them by time to time (10% of the clips....more or less)
I have the same issue, 6 camera and happening on all of them by time to time (10% of the clips....more or less)
As I recall, the reason I had the problem was because I had record set to false by default. As soon as I changed the default for record to true it started working.
doesn't look to be my case, record is set to true and not set at camera level. Also record works most of the times but sometimes not, which is very strange
@HSB-collab - I'm here researching the "media could not be loaded..." error msg and saw your questions. You've probably figured out your questions by now. But in case not:
Q2: View docker log
You could use docker-compose logs -f <replace with your service/container name> or docker logs -f <replace with your service/container name>. I prefer to get the container's log file path/name and use tail. Docker's log is unreliable and I find myself having to always terminate the process with kill -9
~/DockerServices/frigate-nvr .................................................................................................................. INT 07:32:51 AM
> docker inspect <replace with your service/container name> | grep log
"LogPath": "/var/lib/docker/containers/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0-json.log",
$ sudo tail -f /var/lib/docker/containers/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0-json.log
Q3:
docker exec -it <replace with your service/container name> bash (depending on your arch [amd64, arm], you may need to use ash).. This will drop you into the container as user root
~/DockerServices/frigate-nvr ...................................................................................................................... 07:32:54 AM
> docker exec -it frigate-nvr bash
root@8111ad80ee76:/opt/frigate#
root@8111ad80ee76:/opt/frigate# ffprobe /media/frigate/recordings/2023-07-13/13/Frontgate_Cam1/19.24.mp4
ffprobe version n5.1-2-g915ef932a3-20220731 Copyright (c) 2007-2022 the FFmpeg developers
built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-mbedtls --enable-librist --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags=-pie --extra-libs='-ldl -lgomp' --extra-version=20220731
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/media/frigate/recordings/2023-07-13/13/Frontgate_Cam1/19.24.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : Media Presentation
encoder : Lavf59.27.100
Duration: 00:00:10.00, start: 0.000000, bitrate: 5043 kb/s
Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, progressive), 2688x1520 [SAR 1:1 DAR 168:95], 5041 kb/s, 15.01 fps, 50 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
root@8111ad80ee76:/opt/frigate#
I'm here trying to resolve the "The media could not be loaded, either because the server or network failed or because the format is not supported." issue.
I recently replaced most of my WyzeCam v3 cameras with Hikvision. A recent conversation with and suggestion from @NickM-27 (link here) recommended that I replace the WyzeCams. So I did.
All of the new cameras (Hikvision) are configured for h264. Following a delete of all Frigate data and a fresh start of Frigate, streams are consistent and reliable and "Event" recordings can be played/viewed. However, after the system has run for some time, the "Event" recordings are not playable and I get the The media could not be loaded, either because the server or network failed or because the format is not supported.
message. This includes Event Recordings that were initially able to be played/viewed but later are not. If Event recordings are able to be viewed initially and then can't be viewed later, I find it hard to believe it's a "format" issue. To me, this indicates a problem not with the camera and it's stream format setting, but with Frigate, the host, network, NAS, or a combination of all. If I delete the data dir and restart Frigate, Event recordings (new ones) can be viewed again.
I think I recall @blakeblackshear or @NickM-27 (sorry I can't remember which), said the error msg was vague. Is there room to improve the error message and/or provide some "key" in the log file to filter out and identify the source cause of the error? Reporting that it's either the server or network failed or the format is not supported leaves way too many places to look. Anyone with an IT background knows this leads to a wild goose chase. Is it really a "format" issue, a problem reading the data from the local drive or NAS, i.e. a block error on the local drive/out of disk space or the NAS isn't responding/reachable?
Are there specific config.yml settings to make things work correctly? There are so many setting options and after reviewing a many posts here and elsewhere on the net, it's unclear, to me, what settings, if any, would resolve this issue.
Thank you again! You're efforts and diligence in working to resolve issues and improve your project are greatly appreciated!
All of the new cameras (Hikvision) are configured for h264. Following a delete of all Frigate data and a fresh start of Frigate, streams are consistent and reliable and "Event" recordings can be played/viewed. However, after the system has run for some time, the "Event" recordings are not playable and I get the The media could not be loaded, either because the server or network failed or because the format is not supported. message. This includes Event Recordings that were initially able to be played/viewed but later are not. If Event recordings are able to be viewed initially and then can't be viewed later, I find it hard to believe it's a "format" issue.
yes that is very odd, I would expect errors in the frigate logs
I think I recall @blakeblackshear or @NickM-27 (sorry I can't remember which), said the error msg was vague. Is there room to improve the error message and/or provide some "key" in the log file to filter out and identify the source cause of the error? Reporting that it's either the server or network failed or the format is not supported leaves way too many places to look. Anyone with an IT background knows this leads to a wild goose chase. Is it really a "format" issue, a problem reading the data from the local drive or NAS, i.e. a block error on the local drive/out of disk space or the NAS isn't responding/reachable?
The error message / handling comes from the browser, there is nothing for us to do to improve that because it is the browser that is not specific about what is causing the failure to playback.
I agree. The question is, what error are we looking for? Regarding the error message coming from the Browser... I agree that the browser can display errors that are self generated. However, a request is made from the browser to the server/Frigate. That request on the server should be logged and the result of said request. I don't know if you are using a third party Javascript lib. If so, if it's not compressed, one could inject some debug code. If it is, then that's a no go.
I've included some Javascript console information below related directly to the error in question and the related code source line references. Between that and the server side request process, I would think we could narrow down the source. As it is now, what I'm getting is that we don't have a clue what is causing the error. I can't believe that to be the case. While I'm not familiar with this projects code, I've coded enough backend and frontend projects in my 50 years to believe that there's room to get closer to the issue. I don't want to just complain but try to offer some support from this end to find and resolve this issue. It's a big deal. There's little point in an NVR if we can't reliably view our recordings.
A Google search for "VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED)" returns a number of links to issues with the video.js library. I think that's what you are using but could be wrong. Here's one result on Stackoverflow for example: [VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED)] (Link here)
Error | Source |
---|---|
GET https:// |
videojs-seek-buttons-fa3a5bd5.js:10 |
VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) The media could not be loaded, either because the server or network failed or because the format is not supported. Ke {code: 4, message: 'The media could not be loaded, either because the …rk failed or because the format is not supported.'} | videojs-seek-buttons-fa3a5bd5.js:31 |
Uncaught (in promise) DOMException: Failed to load because no supported source was found. | events:1 |
GET https://MY_DOMAIN/api/sub_labels?split_joined=1 500 | index-40e1e50b.js:16 |
I agree. The question is, what error are we looking for? Regarding the error message coming from the Browser... I agree that the browser can display errors that are self generated. However, a request is made from the browser to the server/Frigate. That request on the server should be logged and the result of said request.
It is not that simple. The request is simply for an m3u8 playlist and frigate returns that to nginx. Nginx then does the preparations to generate the .ts files and then have videojs in the browser commence playback. Then the browser has to try to play it back or fail at that point.
Frigate backend has no way of knowing at which point the error occurred unless it occurred at the time of generating the m3u8 metadata (which it rarely is).
As it is now, what I'm getting is that we don't have a clue what is causing the error. I can't believe that to be the case. While I'm not familiar with this projects code, I've coded enough backend and frontend projects in my 50 years to believe that there's room to get closer to the issue.
again there is not really any "narrowing it down" in a general sense. The error can be caused by trying to play h265 recordings in a browser that only supports h264, it can be because the recordings files don't exist where they should, and many other issues. So in your specific case, sure it can be narrowed down. But there is no single cause for this error.
I don't want to just complain but try to offer some support from this end to find and resolve this issue. It's a big deal. There's little point in an NVR if we can't reliably view our recordings.
The majority of cases of this issue were due to browser codec support, camera, or configuration issues, once those were resolved users did not have this come up again. It has been months since I have seen this issue at all myself and that was back when I was using reolink cameras which are known to have many issues.
I would suggest checking the nginx logs for errors regarding the vod api, and checking frigate backend logs as well.
Thanks @NickM-27
I'm struggling a bit here... but let's take it one at a time.
again there is not really any "narrowing it down" in a general sense. The error can be caused by trying to play h265 recordings in a browser that only supports h264, it can be because the recordings files don't exist where they should, and many other issues. So in your specific case, sure it can be narrowed down. But there is no single cause for this error.
It seems that you are misunderstanding what I am saying. My points that you are quoting were in the general sense as to why it is so difficult for frigate to have a more specific error message. I was not referring to your setup specifically in what you quoted.
As for the goal of solving your specific issue, you have ignored my request twice now for frigate and nginx logs which is a clear way to narrow down where the issue is coming from
also like it suggests in the docs, chrome://media-internals/
is another good tool for understanding why playback is failing
@HSB-collab - I'm here researching the "media could not be loaded..." error msg and saw your questions. You've probably figured out your questions by now. But in case not:
Q2: View docker log You could use docker-compose logs -f <replace with your service/container name> or docker logs -f <replace with your service/container name>. I prefer to get the container's log file path/name and use tail. Docker's log is unreliable and I find myself having to always terminate the process with kill -9
~/DockerServices/frigate-nvr .................................................................................................................. INT 07:32:51 AM > docker inspect <replace with your service/container name> | grep log "LogPath": "/var/lib/docker/containers/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0-json.log", $ sudo tail -f /var/lib/docker/containers/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0/8111ad80ee7635248503e17cd1c9c2887511289f404a073fcec1f5d71398d6b0-json.log
Q3:
docker exec -it <replace with your service/container name> bash (depending on your arch [amd64, arm], you may need to use ash).. This will drop you into the container as user root ~/DockerServices/frigate-nvr ...................................................................................................................... 07:32:54 AM > docker exec -it frigate-nvr bash root@8111ad80ee76:/opt/frigate# root@8111ad80ee76:/opt/frigate# ffprobe /media/frigate/recordings/2023-07-13/13/Frontgate_Cam1/19.24.mp4 ffprobe version n5.1-2-g915ef932a3-20220731 Copyright (c) 2007-2022 the FFmpeg developers built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-mbedtls --enable-librist --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags=-pie --extra-libs='-ldl -lgomp' --extra-version=20220731 libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/media/frigate/recordings/2023-07-13/13/Frontgate_Cam1/19.24.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : Media Presentation encoder : Lavf59.27.100 Duration: 00:00:10.00, start: 0.000000, bitrate: 5043 kb/s Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, progressive), 2688x1520 [SAR 1:1 DAR 168:95], 5041 kb/s, 15.01 fps, 50 tbr, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] root@8111ad80ee76:/opt/frigate#
Hi @tonydm thanks for the advice on docker compose logs (very useful). However, my problem was fixed by setting the default for "record" to "true" and I have not seen the problem you are experiencing. With the latest version of Frigate (v0.12.1) I am not getting any playback issues using a number of different cameras (Wyze, Tapo and some old Sercomm). I did have issues with go2rtc and stopped using it.
Issue https://github.com/blakeblackshear/frigate/issues/8253 was related in my case. Clip playback works on all my devices except for my Google Pixel 8 Pro. The suggested workaround to install Chrome Beta on Android solved my playback problems. Hopefully this is a temporary workaround.
Thanks to @NickM-27 his suggestion I was able to use chrome://media-internals/
while remotely debugging Chrome on my phone to see the following playback logging:
[debug] Video rendering in low delay mode.
[info] Cannot select MediaCodecVideoDecoder for video decoding
[info] Cannot select VpxVideoDecoder for video decoding
[info] Cannot select Dav1dVideoDecoder for video decoding
[error] video decoder initialization failed
That helped me finding the other issue. Thanks!
edit: In my case the codecs used in clip playback (.ts files) are:
Video: H264 - MPEG-4 AVC (part 10) (h264)
Audio: ADTS
I think the problem on my phone has something to do with support for the pixel format of the video stream (yuvj420p)
1.- Clips worked fine previous version 0.9.0-8fd12f0-amd64, after updating 0.9.0-beta2-amd64, adapting settings for events recording (clips settings deprecated): https://github.com/blakeblackshear/frigate/blob/master/docs/docs/configuration/cameras.md
Clips display snapshot correctly but event recording does not play in browser.
Error : "The media could not be loaded, either because the server or network failed or because the format is not supported."
2.- Can I only activate event recording without activating 24/7 recording?
Thanks!
Version of frigate 0.9.0-3340952
Config file
Frigate container logs
Frigate stats
Computer Hardware