go2rtc icon indicating copy to clipboard operation
go2rtc copied to clipboard

Tapo 2-way audio - button appears (on some devices) but when i click it, constantly loading sign

Open brendongl opened this issue 4 months ago • 2 comments

Hi

Running Frigate (0.15.2-3bda638) on unraid I left all the default settings from the community app store other than these extra params

"--shm-size=298m --mount type=tmpfs,target=/tmp/cache,tmpfs-size=1000000000 --restart unless-stopped"

I am running nginx and enabled websockets, and view my frigate via https I have 2 Tapo c220 cameras the two-way audio button appears on my firefox on browser (sometimes) but when i click it and allow microphone, it just shows a loading sign and the video goes away.

I have port forwarded 8555

Im at a loss on how to fix this, ive been using Claude AI to research and help but i seem to be stuck. Ive tested all the different tapo:// configs and since im using the latest c220, it seems the SHA256 version worked best. But i believe the loading issue may be due to some port forwarding or connectivity issue.

Any help and further troubleshooting would be appreciated. My logs within frigate have no errors.

auth:
  enabled: true
  session_length: 86400

cameras:
  tapo_cam1:
    detect:
      enabled: false
    ffmpeg:
      inputs:
      - path: rtsp://127.0.0.1:8554/tapo_cam1
        roles:
        - record
        - audio
    live:
      stream_name: tapo_cam1
    motion:
      enabled: true
      mask: []
      threshold: 35
    record:
      enabled: true
      retain:
        days: 5
        mode: motion
    # PTZ Configuration for Tapo camera
    onvif:
      host: 192.168.50.171
      port: 2020  # Tapo cameras typically use port 2020 for ONVIF
      user: administrator
      password: d1g1t4ltapo

  tapo_cam2:
    detect:
      enabled: false
    ffmpeg:
      inputs:
      - path: rtsp://127.0.0.1:8554/tapo_cam2
        roles:
        - record
        - audio
    live:
      stream_name: tapo_cam2
    motion:
      enabled: true
      mask: []
      threshold: 35
    record:
      enabled: true
      retain:
        days: 5
        mode: motion
    # PTZ Configuration for Tapo camera
    onvif:
      host: 192.168.50.179
      port: 2020  # Tapo cameras typically use port 2020 for ONVIF
      user: administrator
      password: d1g1t4ltapo

ffmpeg:
  input_args: -rtsp_transport tcp -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt
    -flags low_delay -timeout 5000000 -use_wallclock_as_timestamps 1
  output_args:
    record: preset-record-generic-audio-aac  # This ensures AAC audio encoding for recordings

go2rtc:
  # CRITICAL: WebRTC configuration for 2-way audio through reverse proxy
  webrtc:
    candidates:
      - home.ganle.xyz:8555    # Your external domain (MOST IMPORTANT)
      - 192.168.50.101:8555    # Internal LAN access
      - stun:8555              # STUN server for NAT traversal
    
    # External STUN servers for better connectivity
    ice_servers:
      - urls: [stun:stun.l.google.com:19302]
      - urls: [stun:stun1.l.google.com:19302]
  
  streams:
    tapo_cam1:
    - ffmpeg:rtsp://administrator:[email protected]:554/stream1#audio=aac#video=copy
    - tapo://admin:*password [email protected]
    tapo_cam2:
    - ffmpeg:rtsp://administrator:[email protected]:554/stream1#audio=aac#video=copy
    - tapo://admin:password [email protected]

mqtt:
  enabled: false
  host: <MQTT_BROKER_IP_ADDRESS_HERE>

record:
  enabled: true
  retain:
    days: 5
    mode: motion

version: 0.15-1

brendongl avatar Aug 09 '25 04:08 brendongl

It's best to start by testing a standalone go2rtc. You can install it on any PC.

AlexxIT avatar Aug 09 '25 14:08 AlexxIT

I had the same issue. Solution seems to be to only use the tapo:// address, not both rtsp and tapo. If you need rtsp, set it up as a separate stream and use that stream for further processing in frigate or elsewhere (i.e. the tapo:// camera for live and rtsp for record and detect...for example). In your case, that would look something like:

cameras:
  tapo_cam1:
    detect:
      enabled: false
    ffmpeg:
      inputs:
      - path: rtsp://127.0.0.1:8554/tapo_cam1
        roles:
        - record
        - audio
    live:
      stream_name: tapo_cam1_live
    motion:
      enabled: true
      mask: []
      threshold: 35
    record:
      enabled: true
      retain:
        days: 5
        mode: motion
    # PTZ Configuration for Tapo camera
    onvif:
      host: 192.168.50.171
      port: 2020  # Tapo cameras typically use port 2020 for ONVIF
      user: administrator
      password: d1g1t4ltapo

  tapo_cam2:
    detect:
      enabled: false
    ffmpeg:
      inputs:
      - path: rtsp://127.0.0.1:8554/tapo_cam2
        roles:
        - record
        - audio
    live:
      stream_name: tapo_cam2_live
    motion:
      enabled: true
      mask: []
      threshold: 35
    record:
      enabled: true
      retain:
        days: 5
        mode: motion
    # PTZ Configuration for Tapo camera
    onvif:
      host: 192.168.50.179
      port: 2020  # Tapo cameras typically use port 2020 for ONVIF
      user: administrator
      password: d1g1t4ltapo

ffmpeg:
  input_args: -rtsp_transport tcp -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt
    -flags low_delay -timeout 5000000 -use_wallclock_as_timestamps 1
  output_args:
    record: preset-record-generic-audio-aac  # This ensures AAC audio encoding for recordings

go2rtc:
  # CRITICAL: WebRTC configuration for 2-way audio through reverse proxy
  webrtc:
    candidates:
      - home.ganle.xyz:8555    # Your external domain (MOST IMPORTANT)
      - 192.168.50.101:8555    # Internal LAN access
      - stun:8555              # STUN server for NAT traversal
    
    # External STUN servers for better connectivity
    ice_servers:
      - urls: [stun:stun.l.google.com:19302]
      - urls: [stun:stun1.l.google.com:19302]
  
  streams:
    tapo_cam1:
    - ffmpeg:rtsp://administrator:[email protected]:554/stream1#audio=aac#video=copy
   tapo_cam1_live:
    - tapo://admin:*password [email protected]
    tapo_cam2:
    - ffmpeg:rtsp://administrator:[email protected]:554/stream1#audio=aac#video=copy
   tapo_cam2_live
    - tapo://admin:password [email protected]

Also, there are a lot of very crappy tapo firmware versions. For example, for the C120 cam, firmware version 1.3.2 completely breaks sound over webrtc. If you're on firmware that works, I highly suggest turning off automatic updates. You can downgrade later if you get a bad update, but it's a real chore and who knows what else you can break.

cad1231 avatar Aug 10 '25 18:08 cad1231