- Check the RTSP address in VLC or ffplay before modifying Frigate. If it doesn't work there either, the problem is with the camera, the credentials, or the network.
- Use the secondary stream for detection and reserve the higher resolution stream for recordings.
- Missing frames errors are usually caused by an incorrect URL, network outages, connection limits, or incompatible video acceleration.
- To save video you need a stream with the record role, activate recording and define a retention policy.
Setting up a video surveillance system with Frigate allows you to detect people, vehicles, and other objects without sending recordings to the cloud. However, during installation, it's quite common to encounter a camera that does not display an image, a live stream that cuts out or messages indicating that FFmpeg cannot receive frames.
These failures are not usually related to artificial intelligence. In most cases, the origin lies in a Incorrect RTSP URLInvalid credentials, an incompatible stream, a network problem, or an error within the Frigate configuration could be the cause. The quickest way to troubleshoot is to check each component separately: first the camera, then the stream, then Frigate, and finally additional services such as go2rtc, MQTT, or Home Assistant.
First, check the camera connection.

Before modifying the configuration file, verify that the camera is working independently. Frigate needs access to a compatible stream, usually via RTSPalthough some models use other formats such as HTTP-FLV.
Go to the camera's app or admin panel and check that local access, RTSP, or ONVIF is enabled. Some manufacturers also require you to create a specific account for external applications, different from the one used to access its cloud services.
It's also recommended to assign a static IP address to the camera from your router. If its address changes after a restart, Frigate will keep trying to connect to the old IP address, and the video will stop working.
The stream's direction usually has a structure similar to this:
rtsp://usuario:contraseñ[email protected]:554/ruta_del_stream
The exact path depends on the manufacturer and model. To check if it's correct, open the URL from VLC or ffplayIf it doesn't work on these players either, it's not worth messing with Frigate yet: you'll have to check the IP address, port, credentials, and path provided by the camera.
If the password contains characters like @, #, : o /These can break the URL. In that case, use environment variables compatible with Frigate or properly encode the special characters.
Add the camera using the Frigate wizard
In current versions, the recommended way to add a camera is to use the wizard included in the interface. Go to Settings > Global configuration > Camera management and select Add Camera.
The wizard allows you to enter the IP address and credentials, search for profiles using ONVIF, or manually enter the RTSP URL. It then tests each stream, displays a screenshot, and allows you to assign its functions.
- detect: stream used to detect movement and objects.
- record: stream whose segments will be saved as recordings.
- audio: stream used for sound detection.
The usual thing is to use the lower resolution substream to detect and the main stream for recording. This way, Frigate analyzes a lighter image, but preserves the recordings with the original quality.
The assistant also detects common problems, such as excessive resolution for detection, the absence of a stream with the role detect or an incompatible audio codec.
Review the YAML configuration and roles of each stream
You can also configure the cameras manually using YAML. This format uses indentation to represent the structure, so You should not use tabs nor mix different amounts of spaces.
A basic setup with two streams might look like this:
mqtt:
enabled: false
record:
enabled: true
continuous:
days: 3
cameras:
entrada:
ffmpeg:
inputs:
- path: rtsp://usuario:{FRIGATE_RTSP_PASSWORD}@192.168.1.50:554/substream
roles:
- detect
- path: rtsp://usuario:{FRIGATE_RTSP_PASSWORD}@192.168.1.50:554/mainstream
roles:
- record
detect:
width: 1280
height: 720
fps: 5
The paths are just examples and should be replaced with those corresponding to your camera. The password can be stored in a variable whose name begins with FRIGATE_avoiding leaving it directly exposed in the file.
Instead of relying solely on a generic YAML validator, use the Frigate configuration editorAn external validator can detect indentation errors, but it doesn't know if a specific key exists or is compatible with the installed version.
What to do if the error "no frames" appears

Messages like “Unable to read frames from ffmpeg process” o “No frames have been received” They indicate that the process responsible for capturing the video is not delivering images to Frigate.
Open the logs from the system section and locate the lines corresponding to the affected camera. The most common causes are:
- The camera's IP address has changed.
- The username or password is incorrect.
- The RTSP route belongs to another camera model.
- The firmware limits the number of simultaneous connections.
- The camera loses WiFi coverage or restarts the stream.
- An incompatible video acceleration has been configured.
- The codec or parameters emitted by the camera are not valid.
If you use go2rtc, also check the status of the streams from /api/go2rtc/streamsThis allows you to check if go2rtc can connect to the camera and what codecs it is receiving.
When a camera offers multiple transport protocols, testing RTSP over TCP can improve stability on networks where packet loss occurs. However, an Ethernet connection remains preferable to Wi-Fi for cameras that continuously transmit video.
The video works, but Frigate doesn't save recordings.
The fact that the image appears live does not mean that the recordings are correctly configured. To save video, three conditions must be met: a stream with the role must exist. record, recording must be activated and a retention policy must have been defined.
The ancient key retain_days This should not be used in current configurations. To save the entire video over three days, the correct structure is:
record:
enabled: true
continuous:
days: 3
If you prefer to reduce disk usage and only keep data from periods where there was movement, you can use:
record:
enabled: true
motion:
days: 3
alerts:
retain:
days: 10
mode: motion
detections:
retain:
days: 10
mode: motion
The recordings are stored within /media/frigate/recordingsVerify that the volume is mounted in the correct location, has write permissions, and has sufficient space. An incorrect mount can cause Frigate to accidentally write to the system disk and fill it up quickly.
You should also consider the codec. H.265 recordings don't work in all browsers, while H.264 offers much greater compatibility. If the files exist but won't play from the interface, the problem may be with the browser, not the camera.
Integration with Home Assistant and MQTT
To integrate Frigate with Home Assistant, you need to install the Frigate integration and configure the MQTT integration beforehand. Additionally, both systems must be connected to the same MQTT broker so that many of the entities, sensors, and counters function correctly.
A basic configuration would be:
mqtt:
enabled: true
host: 192.168.1.20
user: frigate
password: "{FRIGATE_MQTT_PASSWORD}"
When adding the Home Assistant integration, you must also specify the internal Frigate URL. The port can be used. 5000which does not incorporate authentication, or the 8971which offers authenticated access. Port 5000 should only be exposed within a trusted network.
For live video, it is useful to distinguish between two ports:
- 8554: RTSP restream provided by go2rtc.
- 8555 TCP and UDP: WebRTC connections.
The restream can be opened with an address like rtsp://IP_DEL_SERVIDOR:8554/nombre_streamIf Home Assistant is on a different network, a different VLAN, or behind certain proxies, WebRTC may need to be configured as a candidate. Frigate server's actual address that is accessible from the client device.
An HTTP reverse proxy like Traefik can be used to access the web interface, but it does not replace the exposure of the ports used directly by RTSP or WebRTC.
Reduce CPU usage correctly

Frigate performs several different tasks, and each one may use a different component. video decoding This corresponds to FFmpeg and can be accelerated with an integrated or dedicated GPU. object detectionInstead, it uses a detector such as Coral, Hailo, OpenVINO, ONNX or TensorRT.
A Coral USB can greatly reduce the work required to run the detection model, but it doesn't inherently speed up stream decoding. For that, you need to configure a preset of hwaccel_args compatible with server hardware.
For example, many compatible Intel and AMD systems can use:
ffmpeg:
hwaccel_args: preset-vaapi
You should not copy this value without verifying compatibility with your equipment. An incorrect configuration can cause FFmpeg to crash repeatedly, as there is not always an automatic software replacement when the selected acceleration fails.
Furthermore, avoid interpreting Frigate's CPU usage figures as representing the entire processor. In their statistics, a 100% process typically means it's using the entire processor. a single coreTo find out the total consumption, compare the data with docker stats or with the host system monitor.
To reduce the load without affecting the recordings:
- Use a substream to
detect. - Set the detection to around 5 FPS.
- Reserve the high-resolution stream for
record. - Enable compatible hardware decoding.
- Use a suitable detector instead of the test CPU detector.
- Avoid opening multiple unnecessary connections to the same camera.
Checklist if a camera still isn't working

- Check that the camera is responding at its IP address.
- Verify the exact URL using VLC or ffplay.
- Confirm that RTSP or ONVIF is enabled on the camera.
- Check the username, password, port, and special characters.
- Try streaming from the Frigate camera add wizard.
- Check the roles
detectyrecord. - Check the FFmpeg and capture logs.
- Temporarily disable
hwaccel_argsif FFmpeg restarts. - Check the go2rtc streams and the names used in the restream.
- Check the space, the setup, and the permits of
/media/frigate. - Verify that Frigate and Home Assistant use the same MQTT broker.
- Properly expose ports 8554 and 8555 if you need RTSP or WebRTC.
Following this order avoids changing multiple options at once and allows you to pinpoint where the stream is interrupted. If the camera works in VLC, the stream appears correctly in go2rtc, and FFmpeg shows no errors, the problem is usually related to roles, recording retention, or the integration used to display the video.
A stable configuration depends on properly separating each function: a lightweight stream for image analysis, a higher-quality stream for recording, dedicated acceleration for decoding, and a suitable detector for artificial intelligence. With this structure, Frigate can operate for extended periods without interruptions or excessive resource consumption.
I am a technology enthusiast who has turned his "geek" interests into a profession. I have spent more than 10 years of my life using cutting-edge technology and tinkering with all kinds of programs out of pure curiosity. Now I have specialized in computer technology and video games. This is because for more than 5 years I have been writing for various websites on technology and video games, creating articles that seek to give you the information you need in a language that is understandable to everyone.
If you have any questions, my knowledge ranges from everything related to the Windows operating system as well as Android for mobile phones. And my commitment is to you, I am always willing to spend a few minutes and help you resolve any questions you may have in this internet world.