Troubleshooting and camera setup on Frigate

Last update: 15/09/2026

  • 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.
Camera connection error on Frigate

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.

Checking the connection of an IP camera

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.

PC security camera software
Related article:
Best programs for security cameras on PC

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.

Exclusive content - Click Here  Complete guide to changing your voice live with Voice.AI

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

Frame reception error in Frigate

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.

Exclusive content - Click Here  How to send a fax online for free from your mobile phone and computer

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.

How to use Frigate with Home Assistant
Related article:
Complete Guide to Integrating Frigate into Home Assistant

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

Server rack representing video acceleration and object detection in Frigate.

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.

Exclusive content - Click Here  Complete Guide to Reviewing Contracts with Artificial Intelligence

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

Modern security camera installed on a wall, representing video surveillance connection via RTSP.

  1. Check that the camera is responding at its IP address.
  2. Verify the exact URL using VLC or ffplay.
  3. Confirm that RTSP or ONVIF is enabled on the camera.
  4. Check the username, password, port, and special characters.
  5. Try streaming from the Frigate camera add wizard.
  6. Check the roles detect y record.
  7. Check the FFmpeg and capture logs.
  8. Temporarily disable hwaccel_args if FFmpeg restarts.
  9. Check the go2rtc streams and the names used in the restream.
  10. Check the space, the setup, and the permits of /media/frigate.
  11. Verify that Frigate and Home Assistant use the same MQTT broker.
  12. 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.