Does the C220 work fluently? I have just bought a Tapo C220 and the image is not stable and frigate throws lot of errors from ffmpeg. I think I’m going to return this shit.
Do you have ONVIF configured in Frigate under that specific camera?
Here’s my tapo camera Frigate config for reference:
kitchen_tapo:
ffmpeg:
retry_interval: 60
inputs:
- path: rtsp://127.0.0.1:8554/kitchen_tapo?video=copy&audio=aac
input_args: preset-rtsp-restream
roles:
- record
- audio
- detect
audio:
enabled: true
listen:
- bark
- scream
- yell
- glass
- smash
- speech
- fire_alarm
- smoke_detector
filters:
speech:
threshold: 0.6
glass:
threshold: 0.5
fire_alarm:
threshold: 0.5
smoke_detector:
threshold: 0.5
snapshots:
enabled: false
timestamp: false
record:
enabled: true
retain:
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
days: 1
# Optional: Mode for retention. Available options are: all, motion, and active_objects
# all - save all recording segments regardless of activity
# motion - save all recordings segments with any detected motion
# active_objects - save all recording segments with active/moving objects
# NOTE: this mode only applies when the days setting above is greater than 0
mode: all
detect:
enabled: false
fps: 1
onvif:
# Required: host of the camera being connected to.
host: 192.168.0.14
# Optional: ONVIF port for device (default: shown below).
port: 2020
# Optional: username for login.
# NOTE: Some devices require admin to access ONVIF.
user: username
# Optional: password for login.
password: mypassword1
# Optional: PTZ camera object autotracking. Keeps a moving object in
# the center of the frame by automatically moving the PTZ camera.
autotracking:
# Optional: enable/disable object autotracking. (default: shown below)
enabled: false
# Optional: list of objects to track from labelmap.txt (default: shown below)
track:
- person
# Required: Begin automatically tracking an object when it enters any of the listed zones.
#required_zones:
# - all
# Required: Name of ONVIF preset in camera's firmware to return to when tracking is over. (default: shown below)
return_preset: '3'
# Optional: Seconds to delay before returning to preset. (default: shown below)
On the other hand, I have the camera set to 20fps. Sometimes the video runs smoothly, but other times the image becomes choppy or freezes and then suddenly speeds up to catch up to real-time.
This happens both in Frigate and in the Tapo app. The camera is located next to the router, and the RSSI is good (-24dB).
Additionally, Frigate keeps logging errors related to this camera, like the following:
[segment @ 0x62c0ebffcd40] Non-monotonous DTS in output stream 0:0; previous: 3446867, current: 304128; changing to 3446868. This may result in incorrect timestamps in the output file.
Here are my full Tapo related settings, have a look at my config and try to copy it to see if your camera works better.
I’ve put my rtsp feed through ffmpeg in go2rtc and specified video copy, audio copy and audio aac for full compatibility with Frigate and Home Assistant. I use ‘input_args: preset-rtsp-restream’ and ‘output_args: preset-record-generic-audio-copy’.
go2rtc:
streams:
kitchen_tapo:
- ffmpeg:rtsp://username:[email protected]/stream1#video=copy#audio=copy#audio=aac
- tapo://[email protected]
webrtc:
candidates:
- stun:8555
api:
origin: '*'
cameras:
kitchen_tapo:
ffmpeg:
retry_interval: 60
inputs:
- path: rtsp://127.0.0.1:8554/kitchen_tapo?video=copy&audio=aac
input_args: preset-rtsp-restream
roles:
- record
- audio
- detect
#Audio detection settings:
audio:
enabled: true
listen:
- bark
- scream
- yell
- glass
- smash
- speech
- fire_alarm
- smoke_detector
filters:
speech:
threshold: 0.6
glass:
threshold: 0.5
fire_alarm:
threshold: 0.5
smoke_detector:
threshold: 0.5
snapshots:
enabled: false
timestamp: false
record:
enabled: true
retain:
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
days: 1
# Optional: Mode for retention. Available options are: all, motion, and active_objects
# all - save all recording segments regardless of activity
# motion - save all recordings segments with any detected motion
# active_objects - save all recording segments with active/moving objects
# NOTE: this mode only applies when the days setting above is greater than 0
mode: all
detect:
enabled: false
fps: 1
onvif:
# Required: host of the camera being connected to.
host: 192.168.0.14
# Optional: ONVIF port for device (default: shown below).
port: 2020
# Optional: username for login.
# NOTE: Some devices require admin to access ONVIF.
user: username
# Optional: password for login.
password: password
# Optional: PTZ camera object autotracking. Keeps a moving object in
# the center of the frame by automatically moving the PTZ camera.
autotracking:
# Optional: enable/disable object autotracking. (default: shown below)
enabled: false
# Optional: list of objects to track from labelmap.txt (default: shown below)
track:
- person
# Required: Begin automatically tracking an object when it enters any of the listed zones.
#required_zones:
# - all
# Required: Name of ONVIF preset in camera's firmware to return to when tracking is over. (default: shown below)
return_preset: '3'
# Optional: Seconds to delay before returning to preset. (default: shown below)
ffmpeg:
hwaccel_args: preset-vaapi #or, depending on your CPU use preset-intel-qsv-h264 / preset-intel-qsv-h265
output_args:
record: preset-record-generic-audio-copy
yes, there seems to be a change for audio in the new beta
The go2rtc audio handling has been updated to accept any audio codec instead of only AAC. This makes it easier to get audio from cameras that use PCMA/U audio. However, if the recording ffmpeg preset preset-record-generic-audio-copy is currently used it likely will need to be changed to preset-record-generic-audio-aac to continue to support audio in recordings.
I just started using Frigate and started off the with the Tapo C320WS camera (HW2, FW 1.2.4), but im running into major issues here if I use anything other than stream 2, but I suspect its config related:
If somone can share their recent config, which works with beta 0.16.0x, that would be so helpful!
Also, have any of you been able to integrate this into the HA, either via the core or HACS ingtegration? I followed the FAQ but for the life of me, cannot get this integrated.
Yep, had to change that setting and then it worked. I don’t have that same model camera, but I use tapo in my go2rtc setting, not rtsp. Not sure if that helps you.
Hey everyone, I just bought a bunch on the TPlink Tapo C500 cameras, adn finally got HA and Frigate installed…adn just now got a camera viewable, pretty stoked! but I want to learn how to do the controls for the camera also, can someone show me how? here is my VERY basic config
mqtt:
enabled: false
cameras:
Driveway: # <------ Name the camera
enabled: true
ffmpeg:
inputs:
- path: rtsp://f4u5t1:[email protected]/stream1 # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: false # <---- disable detection until you have a working camera feed
width: 1280
height: 720
version: 0.15-1
For anyone arriving here now - I was finding this difficult and this thread among others helped me a lot. So, I’m posting my final working YAML for anyone it might help
# Obvs get rid of this if you don't need it
mqtt:
enabled: True
host: core-mosquitto
port: 1883
user: nope
password: nope
topic_prefix: frigate
client_id: frigate
# Because I didn't buy a Coral (yet)
ffmpeg:
hwaccel_args: preset-vaapi
# Tweak based on your preferences
record:
enabled: true
alerts:
retain:
days: 7
pre_capture: 3
post_capture: 3
detections:
retain:
days: 7
pre_capture: 3
post_capture: 3
snapshots:
enabled: true
timestamp: true
retain:
default: 7
# The #audio=aac bit is super important (well I guess it all is but that's the bit that caught me out)
go2rtc:
streams:
office_camera:
- rtsp://nope:[email protected]:554/stream1
- ffmpeg:office_camera#audio=aac
office_camera_sub:
- rtsp://nope:[email protected]:554/stream2
# The output_args are important
cameras:
office_camera:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/office_camera
input_args: preset-rtsp-restream
roles:
- record
- audio
- path: rtsp://127.0.0.1:8554/office_camera_sub
input_args: preset-rtsp-restream
roles:
- detect
output_args:
record: preset-record-generic-audio-copy
live:
stream_name: office_camera
detect:
enabled: true
width: 640
height: 360
# This gives you the arrow controls in the live stream
onvif:
host: 192.168.86.29
port: 2020
user: nope
password: nope
# Because I didn't buy a Coral (yet)
detectors:
ov:
type: openvino
device: AUTO
model:
width: 300
height: 300
input_tensor: nhwc
input_pixel_format: bgr
path: /openvino-model/ssdlite_mobilenet_v2.xml
labelmap_path: /openvino-model/coco_91cl_bkgr.txt
semantic_search:
enabled: true
reindex: true
model_size: small
version: 0.15-1
Something worth noting is I wasted a couple of hours trying to work out why I had no audio playback in the “Review” section of Frigate - but I did have it in my live stream and also in the video files when viewed in “Explore”
I fixed this by clearing my browser cache for home assistant and all started to work.
My setup:
Thing
Spec
HA Version
core-2025.6.0
Installation type
Home Assistant OS
Operating system version
6.12.23-haos
CPU architecture
x86_64
Physical Machine
HP EliteDesk 800 G2 Mini Core i5-6500T 2.5 - SSD 128 GB - 8GB
Hello all - I have my Frigate server running very well and most things work great. I’m having some trouble adding audio to my Tapo TC110 and TC60 devices although the video is perfect.
I have the Tapo Lab setting on and have rebooted all the cameras as previously suggested. I’m also access the Frigate server via https:ip:8971 with authentication.
I have audio on other devices, D-Link, REOlink, others, so I know the audio is working.
Running Frigate 0.15.2 on Portainer on a Debian bare metal box.
Hi,
I have got Tapo cam C220 working with Frigate with PTZ controls and Audio in Live Feed.
But I have a couple of issues that I am not able to resolve.
No audio in recorded footage
No audio in HomeAssistant (only works in Frigate Live Feed)
I am running HA in a docker container alongside Frigate. They are both running the latest stable version.
Here’s my Frigate config, can someone help please?
logger:
default: error
logs:
frigate.mqtt: debug
frigate.app: debug
frigate.object_detection: debug
frigate.zeroconf: debug
detector.cpu: debug
ffmpeg.tapo1_cam.detect: debug
ffmpeg.tapo1_cam.record: debug
ffmpeg.tapo1_cam.audio: debug
mqtt:
host: 127.0.0.1
user: *****
password: *****
record:
enabled: true
expire_interval: 120
retain:
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
days: 0
# Optional: Mode for retention. Available options are: all, motion, and active_objects
# all - save all recording segments regardless of activity
# motion - save all recordings segments with any detected motion
# active_objects - save all recording segments with active/moving objects
# NOTE: this mode only applies when the days setting above is greater than 0
mode: all
alerts:
retain:
days: 1
pre_capture: 5
post_capture: 5
detections:
retain:
days: 1
pre_capture: 5
post_capture: 5
snapshots:
enabled: true
timestamp: true
retain:
default: 7
go2rtc:
streams:
tapo1_camera:
- rtsp://xxxx:[email protected]:554/stream1
- ffmpeg:tapo1_camera#audio=aac
tapo1_camera_sub:
- rtsp://xxxx:[email protected]:554/stream2
cameras:
tapo1_camera:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/tapo1_camera
input_args: preset-rtsp-restream
roles:
- record
- path: rtsp://127.0.0.1:8554/tapo1_camera_sub
input_args: preset-rtsp-restream
roles:
- detect
output_args:
record: preset-record-generic-audio-aac
live:
stream_name: tapo1_camera
detect:
enabled: true
width: 640
height: 360
onvif:
host: 192.168.1.135
port: 2020
user: *****
password: *****