# Configuration

Fregata's configuration is upstream Frigate's `config.yml`, with a
small set of macOS-specific defaults and one new detector type.
This page is the **index** of the schema, calling out what's
different on macOS. The full key-by-key reference lives in the
[Frigate documentation](https://docs.frigate.video/configuration/),
which we mirror almost entirely.

For a complete, ready-to-edit starter config with detection,
recording, snapshots, and live view already enabled, see
[Add your first camera](/getting-started/first-camera/#your-config-file-explained).

## File location

```
~/Fregata/config/config.yml
```

The location is overridable in **Settings → Folders → Change Config
Location…**. The launcher writes the chosen path into UserDefaults
and exposes it as `FRIGATE_CONFIG_DIR` to the Python core.

## Detectors — `coreml` only

Fregata ships a single detector type. The fields below are the ones
specific to it; the model sub-block follows the standard Frigate
shape.

```yaml
detectors:
  coreml:
    type: coreml
    inference_backend: ane     # "ane" (default) | "gpu"

model:
  path: <optional>             # filesystem path or plus://<id>; default = bundled
  model_type: yolo-generic     # yolo-generic | yolox | yolonas | dfine | rfdetr
  width: 320
  height: 320
  input_tensor: nchw
  input_pixel_format: rgb
  input_dtype: float
  labelmap_path: <optional>    # default = COCO labels
```

`model:` is its own top-level block, peer to `detectors:` —
matches Frigate's documented convention. The model file path
goes inside this block as `model.path`. (The Pydantic schema
also accepts per-detector overrides under
`detectors.<name>.model` and `detectors.<name>.model_path`, but
those are only useful in multi-detector setups where each
detector runs a different model. For Fregata's single-detector
default, the top-level form is what you want.)

See [Detection tuning](/guides/detection-tuning/) for the practical
guide to swapping models, choosing a backend, and tuning
thresholds.

## FFmpeg defaults

Fregata's macOS ffmpeg presets use VideoToolbox out of the box:

| Pipeline | Default | Notes |
| --- | --- | --- |
| Input decode | `-hwaccel videotoolbox` | Applied to every stream input. |
| Recording encode | `h264_videotoolbox -allow_sw 1 -realtime 1 -g 50 -profile:v high` | `-allow_sw 1` is a software fallback safety net. |
| RTSP re-stream | `h264_videotoolbox -allow_sw 1 -profile:v high` | Used by go2rtc. |
| Preview snapshot | `h264_videotoolbox -allow_sw 1` | Used for hourly thumbnails. |

You can override any preset via `ffmpeg.output_args` in your
`config.yml` exactly as on Linux Frigate. The presets are macros;
the underlying Frigate ffmpeg command-line is unchanged.

## Adaptive transcoding — `adaptive_transcoding:`

A Fregata-exclusive top-level block — not read by upstream Frigate-on-Docker. All keys
default to off; no cameras are affected until you explicitly set `enabled: true`.

```yaml
# Global defaults (applied to every camera unless overridden)
adaptive_transcoding:
  enabled: false                  # recordings ABR, per-camera or global
  live: false                     # live view rungs (separate opt-in)
  lan_networks:                   # clients here receive the source stream, not the ladder
    - "127.0.0.0/8"
    - "10.0.0.0/8"
    - "172.16.0.0/12"
    - "192.168.0.0/16"
  rungs:
    - { height: 1080, bitrate: 4000, name: high }
    - { height: 720,  bitrate: 1500, name: medium }
    - { height: 360,  bitrate: 600,  name: low }

# Per-camera override
cameras:
  my_camera:
    adaptive_transcoding:
      enabled: true
      live: true
```

Resource fields (`lan_networks`) are honored only at the global level — not
per-camera — because a single Media Engine backs every transcode.

See [Adaptive transcoding](/reference/adaptive-transcoding/) for the full field-by-field
reference, hardware requirements, VPN/Tailscale notes, and debugging tips.

## Reloading config

If you modify `config.yml` restart Frigate after making changes:

Click **Restart Frigate** in the tray or **Save & Restart** in the Frigate Web UI Configuation Editor.

:::tip
If you're editing the file by hand a lot, use the Frigate Web UI Configuation Editor or consider a YAML-aware
editor — typos in keys at this level are flagged by Frigate at
startup, but indentation errors can produce confusing failures.
Most modern editors highlight indentation problems on the fly.
:::
