Skip to content

0.12.0 Beta 4

Pre-release
Pre-release
Compare
Choose a tag to compare
@NickM-27 NickM-27 released this 17 Jan 12:50
· 1956 commits to dev since this release
19afb03

Major Changes for 0.12.0

❗❗Notice❗❗
I want to recognize @NickM-27 for all the contributions he made on this release and all the support he helps provide in the issues. If you have been considering sponsoring this project with either a one time contribution or a recurring contribution, I would request that you do so at his sponsors page.

Link to updated docs: https://deploy-preview-4055--frigate-docs.netlify.app/

Changes Since Beta 3

  • Restream config has been rewritten. There is no longer a restream role and instead the full go2rtc config is supported under the go2rtc config. We realized it didn't make sense to have restream under the ffmpeg config and the cross referencing between inputs was difficult to understand.

So your existing config which looks like:

cameras:
  test_cam:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      inputs:
        - path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect
        - path: rtsp://192.168.1.5:554/live0 # <--- 1 connection to camera stream
          roles:
            - restream

will now look like

go2rtc:
  streams:
    test_cam: ffmpeg:rtsp://192.168.1.5:554/live0#video=copy#audio=aac#audio=opus

cameras:
  test_cam:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      inputs:
        - path: rtsp://127.0.0.1:8554/test_cam?video=copy&audio=aac # <--- the name here must match the name of the camera in restream
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect

NOTE: The go2rtc config does not currently support env var substitution.

  • Ability to set which stream is used for live view live -> stream_name
  • preset-record-generic-audio has been renamed to preset-record-generic-audio-aac
  • restream -> jsmpeg has been moved back to live
  • New ui -> timezone and ui -> live_mode configurations
  • Show snapshot and reocrdings storage individually if not using the same drive
  • Storage page now shows storage sizes in relevant units
  • new presets and fixes for existing presets
  • update docs that 127.0.0.1 should be used instead of localhost for restream streams
  • tensorrt detector fixed with certain models
  • Events page now shows how long ago an event occurred on desktop

BREAKING CHANGES

  • If using the Frigate-HomeAssistant Integration it will need to be updated to 4.0.0 beta01 to avoid breaking changes with Frigate 0.12
  • Changes have been made to the database, a backup of the database will need to be made before updating if you want to roll-back.
  • Some deployment approaches are overwriting the PATH environment value to an old value. If you see errors like ./run: line 7: exec: nginx: not found, then you need to stop overriding your PATH. This happens with both Proxmox LXC and Portainer (#3223 the database will need to be deleted to roll-back successfully.
  • More config validation checks have been added, it is possible that Frigate will fail to start due to an error that has been caught, the error will need to be fixed before frigate can start.
  • RTMP is now disabled by default and the role is not automatically added. It is highly recommend to move to the new RTSP based restream.
  • Changes have been made to the way recordings segments are stored, external scripts which access the recordings file structure directly may be broken.

Retention limited by available storage

Frigate now limits its recordings to available storage, if the storage for recordings gets below 1 hour left then Frigate will delete the oldest recording segments to make room for newer ones. Frigate will also not fail if there is no space to save recordings.

RTSP restreaming

Due to many issues with RTMP based restream, RTMP is now deprecated in favor of a new RTSP restream. The restream of a camera can be accessed at rtsp://frigate_ip:8554/config_camera_name. The restream can also be used inside Frigate to reduce connections to the camera, see the restream docs for more info.

Birdseye restreaming is also now supported at rtsp://frigate_ip:8554/birdseye

NOTE: Port 8554 will need to be mapped in the docker run or docker compose file for the restream to be accessed outside the container.

New live stream options

The new RTSP restream also enables new MSE and WebRTC live view options in the frontend which enable low-latency full-framerate live views that support audio.

NOTES:

The live view options are set in the Frigate WebUI for each camera individually.

New detector types

Frigate now supports new detector types along with the Google Coral TPU.

OpenVINO

The OpenVINO detector type runs an OpenVINO IR model on Intel CPU, GPU and VPU hardware. OpenVINO is supported on 6th Gen Intel platforms (Skylake) and newer. A supported Intel platform is required to use the GPU device with OpenVINO. The MYRIAD device may be run on any platform, including Arm devices. For detailed system requirements, see OpenVINO System Requirements

TensorRT

NVidia GPUs may be used for object detection using the TensorRT libraries. Due to the size of the additional libraries, this detector is only provided in images with the -tensorrt tag suffix. The TensortRT detector is able to run on x86 hosts that have an Nvidia GPU which supports the 11.x series of CUDA libraries. The minimum driver version on the host system must be >=450.80.02. Also the GPU must support a Compute Capability of 5.0 or greater. This generally correlates to a Maxwell-era GPU or newer, check the TensorRT docs for more info.

NOTE: The link in the docs is for the final release location, for the beta the script is located at https://raw.githubusercontent.com/blakeblackshear/frigate/dev/docker/tensorrt_models.sh

New system page

The Debug page has been renamed to System. It now includes much more information and links to easily get vainfo and ffprobe data.

Screen Shot 2023-01-16 at 15 12 37 PM

The GPUs section will show each GPU based on the hwaccel args, depending on the type of GPU different information is supported. For example Nvidia GPUs will have the name while others will be generic, also intel does not support memory usage. There is also a VAINFO button which will make it easier to diagnose hwaccel issues and verify that the hwaccel driver is being used correctly.

Each camera will have their own process CPU & memory usage so it will be easier to see which process is using those resources. There is also an FFPROBE button which will be helpful to understand what each stream is presenting and make it easier to include that in support issues.

The debug config has also been removed, the config can be copied using the config page in the WebUI.

New storage page

Frigate WebUI now has a built in storage page which shows the general usage for both storage and memory. It also shows a per-camera storage usage and stream bandwidth. This should make it a lot easier to have a general idea how much storage is being used by each camera.

Screen Shot 2023-01-16 at 15 16 48 PM

New logs page

Frigate WebUI now has built in logs, this will make copying and viewing logs much easier. Currently the logs are static meaning the page must be refreshed to view new logs.

Screen Shot 2023-01-02 at 09 50 54 AM

New config editor

Frigate WebUI now has a built in config editor with syntax highlighting and schema validation. This means that the config will be validated before it can be saved which will make yaml config much easier to manage.

NOTE: The previous docker-compose or docker CLI may have had the /config.yml set to :ro or read-only. That will need to be removed for the config editor to be able to save the new file.

Screen Shot 2023-01-02 at 09 48 49 AM

MQTT is now optional

Frigate no longer requires MQTT to function, MQTT is also setup asynchronously so errors will be more clear and frigate won't stop when mqtt is enabled but not setup correctly.

NOTE: MQTT is still required for the Frigate-HomeAssistant Integration

No changes are needed for existing users.

FFMpeg presets

FFMPEG presets for common configurations are now added, making the config cleaner and allowing the underlying args to be changed between releases without being a breaking change. It is highly recommended to update the configuration to use these presets.

See https://deploy-preview-4055--frigate-docs.netlify.app/configuration/ffmpeg_presets for more info on how these should be used.

Example: Enabling Audio In Recordings

before:

output_args:
    record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v copy -c:a aac

after:

output_args:
  record: preset-record-generic-audio-aac

This also enables presets for hardware acceleration which will be used to further reduce CPU usage by using the GPU to optimize scaling and other workloads.

Improved events filters

Screen Shot 2023-01-02 at 09 21 31 AM

  • Multi Select Filters: Each filter now supports multi select so multiple cameras, labels, etc. can be viewed at the same time.
  • Favorited Event Filter: Events can now be filtered to only show favorited events along with the existing filters.

Recordings updates

Recording segments are now stored in UTC to avoid issues with DST. In order to avoid a breaking change, the path of the stored segments has changed from /media/frigate/recordings/%Y-%m/%d/%H-%s.mp4 to /media/frigate/recordings/%Y-%m-%d/%H-%s.mp4.

Recordings in the frontend are now shown in the timezone of the device viewing frigate, so the timezone set on the server running frigate is irrelevant.

No changes are needed for existing users.

What's Changed

New Contributors

Full Changelog: v0.11.1...v0.12.0-beta4

Images:

  • ghcr.io/blakeblackshear/frigate:0.12.0-beta4
  • ghcr.io/blakeblackshear/frigate:0.12.0-beta4-tensorrt