Skip to content

BUG: Unable to fully change ports running in host mode #1472

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
jeeftor opened this issue Apr 16, 2025 · 3 comments
Open

BUG: Unable to fully change ports running in host mode #1472

jeeftor opened this issue Apr 16, 2025 · 3 comments
Labels
bug Something isn't working

Comments

@jeeftor
Copy link

jeeftor commented Apr 16, 2025

Describe the bug

Based on the existing issue regarding the IOCTL stuff its recommended to run in networking_mode=host The issue I have is my frigate instance is on the same box and there are port-conflicts.

If I'm running solo and leaving things as-is with defaults I can get a successful hit with ffprobe

Following the directions here:
https://github.com/mrlt8/docker-wyze-bridge/wiki/Advanced-Option#mediamtx

I'm trying to rewrite all my ports.

Base case (no options)

Using this docker-compose.yaml with all the custom stuff commented out

wyze-bridge:
    container_name: wyze-bridge
    image: mrlt8/wyze-bridge
    network_mode: host
    env_file:
      - .env
    environment:
      FLASK_RUN_PORT: "5001"

      # --- MediaMTX (Streaming backend) ---
      # MTX_RTSPADDRESS: ":${MY_RTSP_PORT}"
      # MTX_RTMPADDRESS: ":${MY_RTMP_PORT}"
      # MTX_HLSADDRESS: ":${MY_HLS_PORT}"
      # MTX_WEBRTCADDRESS: ":${MY_WEBRTC_PORT}"
      # MTX_WEBRTCLOCALUDPADDRESS: ":${MY_WEBRTC_UDP_PORT}"
      # MTX_WEBRTCLOCALTCPADDRESS: ":${MY_WEBRTC_TCP_PORT}"

      # --- Wyze Bridge Stream URL Overrides ---
      # WB_RTSP_URL: "rtsp://${MY_IP}:${MY_RTSP_PORT}/"
      # WB_RTMP_URL: "rtmp://${MY_IP}:${MY_RTMP_PORT}/"
      # WB_HLS_URL: "http://${MY_IP}:${MY_HLS_PORT}/"
      # WB_WEBRTC_URL: "http://${MY_IP}:${MY_WEBRTC_PORT}/"

      WB_IP: "${MY_IP}"      
      SUBSTREAM: true


      ENABLE_AUDIO: true
      AUDIO_CODEC: "libopus"
      ON_DEMAND: false
      
      # Debug Options
      FRESH_DATA: true
      IGNORE_OFFLINE: true
      LOG_LEVEL: "debug"
      MTX_LOGLEVEL: "debug" 
      FPS_FIX: true

      CONNECT_TIMEOUT: "60"
      MTX_READTIMEOUT: "60s"
      
    restart: unless-stopped

First I startup then I can see the streams are up:

docker-compose logs | grep up

wyze-bridge  | Public: DESCRIBE, ANNOUNCE, SETUP, PLAY, RECORD, PAUSE, GET_PARAMETER, TEARDOWN
wyze-bridge  | 2025/04/16 17:33:57 DEB [RTSP] [conn 127.0.0.1:54392] [c->s] SETUP rtsp://0.0.0.0:8554/living-room-cam/streamid=0 RTSP/1.0
wyze-bridge  | 2025/04/16 17:33:57 DEB [RTSP] [conn 127.0.0.1:54392] [c->s] SETUP rtsp://0.0.0.0:8554/living-room-cam/streamid=1 RTSP/1.0
wyze-bridge  | 17:33:57 [INFO][WyzeBridge] ✅ '/living-room-cam stream is UP! (3/3)
wyze-bridge  | Public: DESCRIBE, ANNOUNCE, SETUP, PLAY, RECORD, PAUSE, GET_PARAMETER, TEARDOWN
wyze-bridge  | 2025/04/16 17:33:57 DEB [RTSP] [conn 127.0.0.1:54408] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam-sub/streamid=0 RTSP/1.0
wyze-bridge  | 2025/04/16 17:33:57 DEB [RTSP] [conn 127.0.0.1:54408] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam-sub/streamid=1 RTSP/1.0
wyze-bridge  | 17:33:57 [INFO][WyzeBridge] ✅ '/garage-cam-sub stream is UP! (3/3)
wyze-bridge  | Public: DESCRIBE, ANNOUNCE, SETUP, PLAY, RECORD, PAUSE, GET_PARAMETER, TEARDOWN
wyze-bridge  | 2025/04/16 17:33:58 DEB [RTSP] [conn 127.0.0.1:54410] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam/streamid=0 RTSP/1.0
wyze-bridge  | 2025/04/16 17:33:58 DEB [RTSP] [conn 127.0.0.1:54410] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam/streamid=1 RTSP/1.0
wyze-bridge  | 17:33:58 [INFO][WyzeBridge] ✅ '/garage-cam stream is UP! (3/3)

Next using ffprobe we can hit a stream which is great

ffprobe -rtsp_transport tcp rtsp://127.0.0.1:8554/garage-cam-sub
ffprobe version 4.3.8-0+deb11u3 Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u3 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, rtsp, from 'rtsp://127.0.0.1:8554/garage-cam-sub':
  Metadata:
    title           : No Name
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (Main), yuv420p(progressive), 640x360, 15 fps, 15 tbr, 90k tbn, 30 tbc
    Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp

Custom Ports

my .env file defines the following:

# --- Shared Port Variables ---
MY_RTSP_PORT=18554
MY_RTMP_PORT=1936
MY_HLS_PORT=18888
MY_WEBRTC_PORT=8889
MY_WEBRTC_UDP_PORT=8189
MY_WEBRTC_TCP_PORT=18555
MY_IP=192.168.1.120

And this time we uncomment stuff in our docker-compose

 wyze-bridge:
    container_name: wyze-bridge
    image: mrlt8/wyze-bridge
    network_mode: host
    env_file:
      - .env
    environment:
      FLASK_RUN_PORT: "5001"

      # --- MediaMTX (Streaming backend) ---
      MTX_RTSPADDRESS: ":${MY_RTSP_PORT}"
      MTX_RTMPADDRESS: ":${MY_RTMP_PORT}"
      MTX_HLSADDRESS: ":${MY_HLS_PORT}"
      MTX_WEBRTCADDRESS: ":${MY_WEBRTC_PORT}"
      MTX_WEBRTCLOCALUDPADDRESS: ":${MY_WEBRTC_UDP_PORT}"
      MTX_WEBRTCLOCALTCPADDRESS: ":${MY_WEBRTC_TCP_PORT}"

      # --- Wyze Bridge Stream URL Overrides ---
      WB_RTSP_URL: "rtsp://${MY_IP}:${MY_RTSP_PORT}/"
      WB_RTMP_URL: "rtmp://${MY_IP}:${MY_RTMP_PORT}/"
      WB_HLS_URL: "http://${MY_IP}:${MY_HLS_PORT}/"
      WB_WEBRTC_URL: "http://${MY_IP}:${MY_WEBRTC_PORT}/"

      WB_IP: "${MY_IP}"      
      SUBSTREAM: true


      ENABLE_AUDIO: true
      AUDIO_CODEC: "libopus"
      ON_DEMAND: false
      
      # Debug Options
      FRESH_DATA: true
      IGNORE_OFFLINE: true
      LOG_LEVEL: "debug"
      MTX_LOGLEVEL: "debug" 
      FPS_FIX: true

      CONNECT_TIMEOUT: "60"
      MTX_READTIMEOUT: "60s"
      
    restart: unless-stopped

First difference is that:

root@nvr ~# docker compose logs | grep UP
root@nvr ~# 

It doesnt seem like the cameras auto-start in this configuraiton. The full log is here:

root@nvr ~# docker compose logs
wyze-bridge  | 17:36:04 [WARNING][WyzeBridge] WARNING: invalid escape sequence '\:'
wyze-bridge  | 
wyze-bridge  | 🚀 DOCKER-WYZE-BRIDGE v2.10.3 X86_64
wyze-bridge  | 
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] ♻️ Clearing local cache...
wyze-bridge  | 17:36:04 [DEBUG][WyzeBridge] Using 192.168.1.120 for webrtc
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] 🔍 Could not find local cache for 'auth'
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] ☁️ Fetching 'auth' from the Wyze API...
wyze-bridge  |  * Serving Flask app 'frontend'
wyze-bridge  |  * Debug mode: off
wyze-bridge  | 17:36:04 [DEBUG][WyzeBridge] Starting new HTTPS connection (1): auth-prod.api.wyze.com:443
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
wyze-bridge  |  * Running on all addresses (0.0.0.0)
wyze-bridge  |  * Running on http://127.0.0.1:5001
wyze-bridge  |  * Running on http://192.168.1.120:5001
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] Press CTRL+C to quit
wyze-bridge  | 17:36:04 [DEBUG][WyzeBridge] https://auth-prod.api.wyze.com:443 "POST /api/user/login HTTP/11" 200 None
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] 💾 Saving 'auth' to local cache...
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] 🔍 Could not find local cache for 'user'
wyze-bridge  | 17:36:04 [INFO][WyzeBridge] ☁️ Fetching 'user' from the Wyze API...
wyze-bridge  | 17:36:04 [DEBUG][WyzeBridge] Starting new HTTPS connection (1): api.wyzecam.com:443
wyze-bridge  | 17:36:05 [DEBUG][WyzeBridge] https://api.wyzecam.com:443 "POST /app/user/get_user_info HTTP/11" 200 1076
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] 💾 Saving 'user' to local cache...
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [AUTH] WB_AUTH=True
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [AUTH] WB_USERNAME=wbadmin
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [AUTH] WB_PASSWORD=j********
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [AUTH] WB_API=Qojl2lx0vYjtG8AHFnkQkt5JUjK2m0YxzXn5CtwQ
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] 🔍 Could not find local cache for 'cameras'
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
wyze-bridge  | 17:36:05 [DEBUG][WyzeBridge] Starting new HTTPS connection (1): api.wyzecam.com:443
wyze-bridge  | 17:36:05 [DEBUG][WyzeBridge] https://api.wyzecam.com:443 "POST /app/v2/home_page/get_object_list HTTP/11" 200 1936
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [API] Fetched [2] cameras
wyze-bridge  | 17:36:05 [DEBUG][WyzeBridge] [API] cameras=['Garage Cam', 'Living Room Cam']
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] 💾 Saving 'cameras' to local cache...
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [+] Adding Garage Cam [WYZEC1-JZ]
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [+] Adding Living Room Cam [WYZECP1_JEF]
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] [MTX] starting MediaMTX 1.9.0
wyze-bridge  | 17:36:05 [INFO][WyzeBridge] 🎬 3 streams enabled
wyze-bridge  | 2025/04/16 17:36:05 INF MediaMTX v1.9.0
wyze-bridge  | 2025/04/16 17:36:05 INF configuration loaded from /app/mediamtx.yml
wyze-bridge  | 2025/04/16 17:36:05 DEB [path living-room-cam] created
wyze-bridge  | 2025/04/16 17:36:05 DEB [path garage-cam] created
wyze-bridge  | 2025/04/16 17:36:05 DEB [path garage-cam-sub] created
wyze-bridge  | 2025/04/16 17:36:05 DEB path manager created
wyze-bridge  | 2025/04/16 17:36:05 INF [RTSP] listener opened on :18554 (TCP)
wyze-bridge  | 2025/04/16 17:36:05 INF [RTMP] listener opened on :1936
wyze-bridge  | 2025/04/16 17:36:05 INF [HLS] listener opened on :18888
wyze-bridge  | 2025/04/16 17:36:05 INF [WebRTC] listener opened on :8889 (HTTP), :8189 (ICE/UDP), :18555 (ICE/TCP)
wyze-bridge  | 2025/04/16 17:36:05 INF [SRT] listener opened on :8890 (UDP)
wyze-bridge  | 17:36:06 [INFO][WyzeBridge] 🎉 Connecting to WyzeCam V2 - Garage Cam on 192.168.1.220
wyze-bridge  | 17:36:06 [WARNING][WyzeBridge] WARNING: This process (pid=1) is multi-threaded, use of fork() may lead to deadlocks in the child.
wyze-bridge  | 17:36:06 [INFO][WyzeBridge] 🎉 Connecting to WyzeCam V2 - Garage Cam on 192.168.1.220
wyze-bridge  | 17:36:06 [WARNING][WyzeBridge] WARNING: This process (pid=1) is multi-threaded, use of fork() may lead to deadlocks in the child.
wyze-bridge  | 17:36:06 [INFO][WyzeBridge] 🎉 Connecting to WyzeCam Pan - Living Room Cam on 192.168.1.219
wyze-bridge  | 17:36:06 [WARNING][WyzeBridge] WARNING: This process (pid=1) is multi-threaded, use of fork() may lead to deadlocks in the child.
wyze-bridge  | 17:36:06 [DEBUG][garage-cam-sub] Connect via IOTC_Connect_ByUIDEx
wyze-bridge  | 17:36:06 [DEBUG][garage-cam] Connect via IOTC_Connect_ByUIDEx
wyze-bridge  | 17:36:06 [DEBUG][living-room-cam] Connect via IOTC_Connect_ByUIDEx
wyze-bridge  | 17:36:07 [INFO][garage-cam-sub] AV Client Start: chan_id=0 expected_chan=0
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] Now listening on channel id 0
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] SEND <K10000ConnectRequest code=10000 resp_code=10001> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10000 txt_len=0> b''
wyze-bridge  | 17:36:07 [INFO][garage-cam] AV Client Start: chan_id=0 expected_chan=0
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] SEND <K10000ConnectRequest code=10000 resp_code=10001> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10000 txt_len=0> b''
wyze-bridge  | 17:36:07 [INFO][living-room-cam] AV Client Start: chan_id=0 expected_chan=0
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] SEND <K10000ConnectRequest code=10000 resp_code=10001> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10000 txt_len=0> b''
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10001 txt_len=17>: b'\x03\xbb\xb89\xff\x10\xdd\xec\xbd\xf9\xff7\x93\x8c\x12g|'
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] Sending response: <K10008ConnectUserAuth code=10008 resp_code=10009>
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] SEND <K10008ConnectUserAuth code=10008 resp_code=10009> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10008 txt_len=29> b'6\xd6 &-\xe3/\xb9\xa4v\xb7\x8b\xcdq0\xb9de2a\x01\x01\x06517375'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10001 txt_len=17>: b'\x03ZjG\xe5C\xec\x15,\xe1\x01\xee\x06Z\xb0\xdb\xb2'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] Sending response: <K10008ConnectUserAuth code=10008 resp_code=10009>
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] SEND <K10008ConnectUserAuth code=10008 resp_code=10009> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10008 txt_len=29> b'%\xa9\xcb2"*\xd6J\xa5W\xe1\x06\x1f\xe0\x97|2aad\x01\x01\x06517375'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10001 txt_len=17>: b'\x03\xf5D\xd6\xcd\x1d\xa1W~)\xc3\xc3-\xa0I\x00|'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] Sending response: <K10008ConnectUserAuth code=10008 resp_code=10009>
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] SEND <K10008ConnectUserAuth code=10008 resp_code=10009> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10008 txt_len=29> b'\x93_+\xd8Q\x90\x18\xb9\xad\xa8\x10\xa0R@\x17\x91de2a\x01\x01\x06517375'
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10009 txt_len=728>: b'{"connectionRes":"1","cameraInfo":{"audioParm":{"sampleRate":"8000"},"videoParm":{"type":"H264","bitRate":"180","resolution":"1","fps":"15","horizontalFlip":"1","verticalFlip":"1","logo":"2","time":"2"},"settingParm":{"stateVision":"2","nightVision":"3","osd":"2","logSd":"1","logUdisk":"1", "telnet":"2","tz":"-6"},"basicInfo":{"firmware":"4.10.9.3006","type":"camera","hardware":"0.0.0.0","model":"WYZECP1_JEF","mac":"A4DA222E5DE7","wifidb":"97"},"channelResquestResult":{"video":"1","audio":"1"},"recordType":{"type":"1"},"sdParm":{"status":"2","capacity":"0","free":"0","detail":"0"},"uDiskParm":{"status":"2","capacity":"0","free":"0"},"apartalarmParm":{"type":"0","startX":"50","longX":"37","startY":"22","heightY":"66"}}}'
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] SEND <K10056SetResolvingBit code=10056 resp_code=10057> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10056 txt_len=3> b'\x01\xb4\x00'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10009 txt_len=725>: b'{"connectionRes":"1","cameraInfo":{"audioParm":{"sampleRate":"8000"},"videoParm":{"type":"H264","bitRate":"180","resolution":"1","fps":"15","horizontalFlip":"1","verticalFlip":"1","logo":"2","time":"1"},"settingParm":{"stateVision":"1","nightVision":"3","osd":"1","logSd":"1","logUdisk":"1", "telnet":"2","tz":"-6"},"basicInfo":{"firmware":"4.9.9.3006","type":"camera","hardware":"0.0.0.0","model":"WYZEC1-JZ","mac":"A4DA222F53C3","wifidb":"97"},"channelResquestResult":{"video":"1","audio":"1"},"recordType":{"type":"3"},"sdParm":{"status":"2","capacity":"0","free":"0","detail":"0"},"uDiskParm":{"status":"2","capacity":"0","free":"0"},"apartalarmParm":{"type":"0","startX":"66","longX":"30","startY":"18","heightY":"61"}}}'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] SEND <K10056SetResolvingBit code=10056 resp_code=10057> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10056 txt_len=3> b'\x01\xb4\x00'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10009 txt_len=725>: b'{"connectionRes":"1","cameraInfo":{"audioParm":{"sampleRate":"8000"},"videoParm":{"type":"H264","bitRate":"180","resolution":"1","fps":"15","horizontalFlip":"1","verticalFlip":"1","logo":"2","time":"1"},"settingParm":{"stateVision":"1","nightVision":"3","osd":"1","logSd":"1","logUdisk":"1", "telnet":"2","tz":"-6"},"basicInfo":{"firmware":"4.9.9.3006","type":"camera","hardware":"0.0.0.0","model":"WYZEC1-JZ","mac":"A4DA222F53C3","wifidb":"97"},"channelResquestResult":{"video":"1","audio":"1"},"recordType":{"type":"3"},"sdParm":{"status":"2","capacity":"0","free":"0","detail":"0"},"uDiskParm":{"status":"2","capacity":"0","free":"0"},"apartalarmParm":{"type":"0","startX":"66","longX":"30","startY":"18","heightY":"61"}}}'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] SEND <K10056SetResolvingBit code=10056 resp_code=10057> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10056 txt_len=3> b'\x02\x1e\x00'
wyze-bridge  | 17:36:07 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10057 txt_len=1>: b'\x01'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10057 txt_len=1>: b'\x01'
wyze-bridge  | 17:36:07 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10057 txt_len=1>: b'\x01'
wyze-bridge  | 17:36:08 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][living-room-cam] [videoParm] {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '2'}
wyze-bridge  | 17:36:08 [DEBUG][living-room-cam] [cameraInfo] {'audioParm': {'sampleRate': '8000'}, 'videoParm': {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '2'}, 'settingParm': {'stateVision': '2', 'nightVision': '3', 'osd': '2', 'logSd': '1', 'logUdisk': '1', 'telnet': '2', 'tz': '-6'}, 'basicInfo': {'firmware': '4.10.9.3006', 'type': 'camera', 'hardware': '0.0.0.0', 'model': 'WYZECP1_JEF', 'mac': 'A4DA222E5DE7', 'wifidb': '97'}, 'channelResquestResult': {'video': '1', 'audio': '1'}, 'recordType': {'type': '1'}, 'sdParm': {'status': '2', 'capacity': '0', 'free': '0', 'detail': '0'}, 'uDiskParm': {'status': '2', 'capacity': '0', 'free': '0'}, 'apartalarmParm': {'type': '0', 'startX': '50', 'longX': '37', 'startY': '22', 'heightY': '66'}}
wyze-bridge  | 17:36:08 [INFO][living-room-cam] 📡 Getting 180kb/s HD stream (H264/15fps) via LAN mode (WiFi: 97%) FW: 4.10.9.3006 🔒
wyze-bridge  | 17:36:08 [INFO][living-room-cam] [AUDIO] codec='mulaw' sample_rate=8000 codec_id=137
wyze-bridge  | 17:36:08 [INFO][living-room-cam] 🔊 Audio Enabled [Source=MULAW/8,000Hz]
wyze-bridge  | 17:36:08 [INFO][living-room-cam] [AUDIO] Re-Encode Enabled [AUDIO_CODEC=libopus]
wyze-bridge  | 17:36:08 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][living-room-cam] SEND <K10092SetCameraTime code=10092 resp_code=10093> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10092 txt_len=4> b'\x88\xea\xffg'
wyze-bridge  | 17:36:08 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][garage-cam] [videoParm] {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}
wyze-bridge  | 17:36:08 [DEBUG][garage-cam] [cameraInfo] {'audioParm': {'sampleRate': '8000'}, 'videoParm': {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}, 'settingParm': {'stateVision': '1', 'nightVision': '3', 'osd': '1', 'logSd': '1', 'logUdisk': '1', 'telnet': '2', 'tz': '-6'}, 'basicInfo': {'firmware': '4.9.9.3006', 'type': 'camera', 'hardware': '0.0.0.0', 'model': 'WYZEC1-JZ', 'mac': 'A4DA222F53C3', 'wifidb': '97'}, 'channelResquestResult': {'video': '1', 'audio': '1'}, 'recordType': {'type': '3'}, 'sdParm': {'status': '2', 'capacity': '0', 'free': '0', 'detail': '0'}, 'uDiskParm': {'status': '2', 'capacity': '0', 'free': '0'}, 'apartalarmParm': {'type': '0', 'startX': '66', 'longX': '30', 'startY': '18', 'heightY': '61'}}
wyze-bridge  | 17:36:08 [INFO][garage-cam] 📡 Getting 180kb/s HD stream (H264/15fps) via LAN mode (WiFi: 97%) FW: 4.9.9.3006 🔒
wyze-bridge  | 17:36:08 [INFO][garage-cam] [AUDIO] codec='mulaw' sample_rate=8000 codec_id=137
wyze-bridge  | 17:36:08 [INFO][garage-cam] 🔊 Audio Enabled [Source=MULAW/8,000Hz]
wyze-bridge  | 17:36:08 [INFO][garage-cam] [AUDIO] Re-Encode Enabled [AUDIO_CODEC=libopus]
wyze-bridge  | 17:36:08 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][garage-cam] SEND <K10092SetCameraTime code=10092 resp_code=10093> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10092 txt_len=4> b'\x88\xea\xffg'
wyze-bridge  | 17:36:08 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10093 txt_len=1>: b'\x01'
wyze-bridge  | 17:36:08 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][garage-cam-sub] No longer listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][garage-cam-sub] [videoParm] {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}
wyze-bridge  | 17:36:08 [DEBUG][garage-cam-sub] [cameraInfo] {'audioParm': {'sampleRate': '8000'}, 'videoParm': {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}, 'settingParm': {'stateVision': '1', 'nightVision': '3', 'osd': '1', 'logSd': '1', 'logUdisk': '1', 'telnet': '2', 'tz': '-6'}, 'basicInfo': {'firmware': '4.9.9.3006', 'type': 'camera', 'hardware': '0.0.0.0', 'model': 'WYZEC1-JZ', 'mac': 'A4DA222F53C3', 'wifidb': '97'}, 'channelResquestResult': {'video': '1', 'audio': '1'}, 'recordType': {'type': '3'}, 'sdParm': {'status': '2', 'capacity': '0', 'free': '0', 'detail': '0'}, 'uDiskParm': {'status': '2', 'capacity': '0', 'free': '0'}, 'apartalarmParm': {'type': '0', 'startX': '66', 'longX': '30', 'startY': '18', 'heightY': '61'}}
wyze-bridge  | 17:36:08 [INFO][garage-cam-sub] 📡 Getting 30kb/s SD stream (H264/15fps) via LAN mode (WiFi: 97%) FW: 4.9.9.3006 🔒
wyze-bridge  | 17:36:08 [INFO][garage-cam-sub] [AUDIO] codec='mulaw' sample_rate=8000 codec_id=137
wyze-bridge  | 17:36:08 [INFO][garage-cam-sub] 🔊 Audio Enabled [Source=MULAW/8,000Hz]
wyze-bridge  | 17:36:08 [INFO][garage-cam-sub] [AUDIO] Re-Encode Enabled [AUDIO_CODEC=libopus]
wyze-bridge  | 17:36:08 [DEBUG][garage-cam-sub] Now listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][garage-cam-sub] SEND <K10092SetCameraTime code=10092 resp_code=10093> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10092 txt_len=4> b'\x88\xea\xffg'
wyze-bridge  | 17:36:08 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10093 txt_len=1>: b'\x01'
wyze-bridge  | 17:36:08 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:36:08 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10093 txt_len=1>: b'\x01'
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] No longer listening on channel id 0
wyze-bridge  | 17:36:09 [WARNING][garage-cam-sub] WARNING: Skipping wrong frame_size at start of stream [frame_size=0]
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.621183156967163
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.5811610221862793
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6077260971069336
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.5674750804901123
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.963057041168213
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6210880279541016
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.581028938293457
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6078698635101318
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6323001384735107
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.5944020748138428
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6209430694580078
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6476428508758545
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6077558994293213
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6345510482788086
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6611089706420898
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.6210930347442627
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.5809781551361084
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.5384321212768555
wyze-bridge  | 17:36:09 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1073639392852783
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.4472930431365967
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.407728910446167
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3671598434448242
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3276679515838623
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3541769981384277
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.314056158065796
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2741451263427734
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2340590953826904
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1940600872039795
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1540391445159912
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1795780658721924
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.140855073928833
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1008169651031494
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0608189105987549
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0207889080047607
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0072669982910156
wyze-bridge  | 17:36:10 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:36:28 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0322160720825195
wyze-bridge  | 17:36:28 [DEBUG][living-room-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:36:28 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:36:28 [DEBUG][living-room-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:36:28 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":2,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":1,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:36:28 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:36:28 [DEBUG][living-room-cam] [CONTROL] response={'1': 2, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 1, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:36:28 [DEBUG][garage-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:36:28 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:36:28 [DEBUG][garage-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:36:28 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":1,"2":3,"3":180,"4":2,"5":15,"6":1,"7":1,"13":1,"21":2,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:36:28 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:36:28 [DEBUG][garage-cam] [CONTROL] response={'1': 1, '2': 3, '3': 180, '4': 2, '5': 15, '6': 1, '7': 1, '13': 1, '21': 2, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:36:29 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0839600563049316
wyze-bridge  | 17:36:29 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0439369678497314
wyze-bridge  | 17:36:30 [DEBUG][garage-cam] [audio] behind video.. gap=-1.1313109397888184
wyze-bridge  | 17:36:30 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0911598205566406
wyze-bridge  | 17:36:30 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0512909889221191
wyze-bridge  | 17:36:30 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0213079452514648
wyze-bridge  | 17:36:42 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0357720851898193
wyze-bridge  | 17:36:43 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0387511253356934
wyze-bridge  | 17:36:44 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0446410179138184
wyze-bridge  | 17:36:44 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.00472092628479

And rightfully so I think the RTSP failes:

ffprobe -rtsp_transport tcp rtsp://127.0.0.1:18554/garage-cam-sub
ffprobe version 4.3.8-0+deb11u3 Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u3 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[rtsp @ 0x59064e31ba40] method DESCRIBE failed: 404 Not Found
rtsp://127.0.0.1:18554/garage-cam-sub: Server returned 404 Not Found

Am I missing an ENV_VAR or something?

Affected Bridge Version

v2.10.3

Bridge type

Docker Run/Compose

Affected Camera(s)

No response

Affected Camera Firmware

No response

docker-compose or config (if applicable)

wyze-bridge:
    container_name: wyze-bridge
    image: mrlt8/wyze-bridge
    network_mode: host
    env_file:
      - .env
    environment:
      FLASK_RUN_PORT: "5001"

      # --- MediaMTX (Streaming backend) ---
      MTX_RTSPADDRESS: ":${MY_RTSP_PORT}"
      MTX_RTMPADDRESS: ":${MY_RTMP_PORT}"
      MTX_HLSADDRESS: ":${MY_HLS_PORT}"
      MTX_WEBRTCADDRESS: ":${MY_WEBRTC_PORT}"
      MTX_WEBRTCLOCALUDPADDRESS: ":${MY_WEBRTC_UDP_PORT}"
      MTX_WEBRTCLOCALTCPADDRESS: ":${MY_WEBRTC_TCP_PORT}"

      # --- Wyze Bridge Stream URL Overrides ---
      WB_RTSP_URL: "rtsp://${MY_IP}:${MY_RTSP_PORT}/"
      WB_RTMP_URL: "rtmp://${MY_IP}:${MY_RTMP_PORT}/"
      WB_HLS_URL: "http://${MY_IP}:${MY_HLS_PORT}/"
      WB_WEBRTC_URL: "http://${MY_IP}:${MY_WEBRTC_PORT}/"

      WB_IP: "${MY_IP}"      
      SUBSTREAM: true


      ENABLE_AUDIO: true
      AUDIO_CODEC: "libopus"
      ON_DEMAND: false
      
      # Debug Options
      FRESH_DATA: true
      IGNORE_OFFLINE: true
      LOG_LEVEL: "debug"
      MTX_LOGLEVEL: "debug" 
      FPS_FIX: true

      CONNECT_TIMEOUT: "60"
      MTX_READTIMEOUT: "60s"
      
    restart: unless-stopped
@jeeftor jeeftor added the bug Something isn't working label Apr 16, 2025
@jeeftor
Copy link
Author

jeeftor commented Apr 16, 2025

Full logs for default case:

root@nvr ~# docker compose logs
wyze-bridge  | 17:39:42 [WARNING][WyzeBridge] WARNING: invalid escape sequence '\:'
wyze-bridge  | 
wyze-bridge  | 🚀 DOCKER-WYZE-BRIDGE v2.10.3 X86_64
wyze-bridge  | 
wyze-bridge  | 17:39:42 [INFO][WyzeBridge] ♻️ Clearing local cache...
wyze-bridge  | 17:39:42 [DEBUG][WyzeBridge] Using 192.168.1.120 for webrtc
wyze-bridge  | 17:39:42 [INFO][WyzeBridge] 🔍 Could not find local cache for 'auth'
wyze-bridge  | 17:39:42 [INFO][WyzeBridge] ☁️ Fetching 'auth' from the Wyze API...
wyze-bridge  |  * Serving Flask app 'frontend'
wyze-bridge  |  * Debug mode: off
wyze-bridge  | 17:39:42 [DEBUG][WyzeBridge] Starting new HTTPS connection (1): auth-prod.api.wyze.com:443
wyze-bridge  | 17:39:42 [INFO][WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
wyze-bridge  |  * Running on all addresses (0.0.0.0)
wyze-bridge  |  * Running on http://127.0.0.1:5001
wyze-bridge  |  * Running on http://192.168.1.120:5001
wyze-bridge  | 17:39:42 [INFO][WyzeBridge] Press CTRL+C to quit
wyze-bridge  | 17:39:43 [DEBUG][WyzeBridge] https://auth-prod.api.wyze.com:443 "POST /api/user/login HTTP/11" 200 None
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] 💾 Saving 'auth' to local cache...
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] 🔍 Could not find local cache for 'user'
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] ☁️ Fetching 'user' from the Wyze API...
wyze-bridge  | 17:39:43 [DEBUG][WyzeBridge] Starting new HTTPS connection (1): api.wyzecam.com:443
wyze-bridge  | 17:39:43 [DEBUG][WyzeBridge] https://api.wyzecam.com:443 "POST /app/user/get_user_info HTTP/11" 200 1069
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] 💾 Saving 'user' to local cache...
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [AUTH] WB_AUTH=True
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [AUTH] WB_USERNAME=wbadmin
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [AUTH] WB_PASSWORD=j********
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [AUTH] WB_API=Qojl2lx0vYjtG8AHFnkQkt5JUjK2m0YxzXn5CtwQ
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] 🔍 Could not find local cache for 'cameras'
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
wyze-bridge  | 17:39:43 [DEBUG][WyzeBridge] Starting new HTTPS connection (1): api.wyzecam.com:443
wyze-bridge  | 17:39:43 [DEBUG][WyzeBridge] https://api.wyzecam.com:443 "POST /app/v2/home_page/get_object_list HTTP/11" 200 1937
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [API] Fetched [2] cameras
wyze-bridge  | 17:39:43 [DEBUG][WyzeBridge] [API] cameras=['Garage Cam', 'Living Room Cam']
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] 💾 Saving 'cameras' to local cache...
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [+] Adding Garage Cam [WYZEC1-JZ]
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [+] Adding Living Room Cam [WYZECP1_JEF]
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] [MTX] starting MediaMTX 1.9.0
wyze-bridge  | 17:39:43 [INFO][WyzeBridge] 🎬 3 streams enabled
wyze-bridge  | 2025/04/16 17:39:43 INF MediaMTX v1.9.0
wyze-bridge  | 2025/04/16 17:39:43 INF configuration loaded from /app/mediamtx.yml
wyze-bridge  | 2025/04/16 17:39:43 DEB [path garage-cam] created
wyze-bridge  | 2025/04/16 17:39:43 DEB [path garage-cam-sub] created
wyze-bridge  | 2025/04/16 17:39:43 DEB [path living-room-cam] created
wyze-bridge  | 2025/04/16 17:39:43 DEB path manager created
wyze-bridge  | 2025/04/16 17:39:43 INF [RTSP] listener opened on :8554 (TCP)
wyze-bridge  | 2025/04/16 17:39:43 INF [RTMP] listener opened on :1935
wyze-bridge  | 2025/04/16 17:39:43 INF [HLS] listener opened on :8888
wyze-bridge  | 2025/04/16 17:39:43 INF [WebRTC] listener opened on :8889 (HTTP), :8189 (ICE/UDP)
wyze-bridge  | 2025/04/16 17:39:43 INF [SRT] listener opened on :8890 (UDP)
wyze-bridge  | 17:39:44 [INFO][WyzeBridge] 🎉 Connecting to WyzeCam V2 - Garage Cam on 192.168.1.220
wyze-bridge  | 17:39:44 [WARNING][WyzeBridge] WARNING: This process (pid=1) is multi-threaded, use of fork() may lead to deadlocks in the child.
wyze-bridge  | 17:39:44 [INFO][WyzeBridge] 🎉 Connecting to WyzeCam V2 - Garage Cam on 192.168.1.220
wyze-bridge  | 17:39:44 [WARNING][WyzeBridge] WARNING: This process (pid=1) is multi-threaded, use of fork() may lead to deadlocks in the child.
wyze-bridge  | 17:39:44 [INFO][WyzeBridge] 🎉 Connecting to WyzeCam Pan - Living Room Cam on 192.168.1.219
wyze-bridge  | 17:39:44 [WARNING][WyzeBridge] WARNING: This process (pid=1) is multi-threaded, use of fork() may lead to deadlocks in the child.
wyze-bridge  | 17:39:44 [DEBUG][garage-cam-sub] Connect via IOTC_Connect_ByUIDEx
wyze-bridge  | 17:39:44 [DEBUG][garage-cam] Connect via IOTC_Connect_ByUIDEx
wyze-bridge  | 17:39:44 [DEBUG][living-room-cam] Connect via IOTC_Connect_ByUIDEx
wyze-bridge  | 17:39:45 [INFO][living-room-cam] AV Client Start: chan_id=0 expected_chan=0
wyze-bridge  | 17:39:45 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:39:45 [DEBUG][living-room-cam] SEND <K10000ConnectRequest code=10000 resp_code=10001> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10000 txt_len=0> b''
wyze-bridge  | 17:39:45 [INFO][garage-cam-sub] AV Client Start: chan_id=0 expected_chan=0
wyze-bridge  | 17:39:45 [DEBUG][garage-cam-sub] Now listening on channel id 0
wyze-bridge  | 17:39:45 [DEBUG][garage-cam-sub] SEND <K10000ConnectRequest code=10000 resp_code=10001> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10000 txt_len=0> b''
wyze-bridge  | 17:39:45 [INFO][garage-cam] AV Client Start: chan_id=0 expected_chan=0
wyze-bridge  | 17:39:45 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:39:45 [DEBUG][garage-cam] SEND <K10000ConnectRequest code=10000 resp_code=10001> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10000 txt_len=0> b''
wyze-bridge  | 17:39:45 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10001 txt_len=17>: b'\x033\xd0\xd6mq^*\xd7\x9d\x19\xcc_j\x18t!'
wyze-bridge  | 17:39:45 [DEBUG][garage-cam] Sending response: <K10008ConnectUserAuth code=10008 resp_code=10009>
wyze-bridge  | 17:39:45 [DEBUG][garage-cam] SEND <K10008ConnectUserAuth code=10008 resp_code=10009> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10008 txt_len=29> b'\xd8\xb3Z\xfd\xe0\xf1he\x10\xc3\xccC=\x92\xbf\x8c94f1\x01\x01\x06517375'
wyze-bridge  | 17:39:45 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10001 txt_len=17>: b'\x03*\xe9s\xdeS\x1c\xe7\xf0\xd3\\o\xa2=\xcf\x13g'
wyze-bridge  | 17:39:45 [DEBUG][garage-cam-sub] Sending response: <K10008ConnectUserAuth code=10008 resp_code=10009>
wyze-bridge  | 17:39:45 [DEBUG][garage-cam-sub] SEND <K10008ConnectUserAuth code=10008 resp_code=10009> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10008 txt_len=29> b'\xfc\xa9Q\xb2u]%<\x80`\xb4\xe6bmI\x1df19b\x01\x01\x06517375'
wyze-bridge  | 17:39:46 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10001 txt_len=17>: b'\x03&\xfa\xde\xee{\x81\x1b\x01\x11\xab@:\xcd\x1fY\x1f'
wyze-bridge  | 17:39:46 [DEBUG][living-room-cam] Sending response: <K10008ConnectUserAuth code=10008 resp_code=10009>
wyze-bridge  | 17:39:46 [DEBUG][living-room-cam] SEND <K10008ConnectUserAuth code=10008 resp_code=10009> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10008 txt_len=29> b'q\x940\xa01S\x17Tb\xe8\xc5Q\xcfk\r\xeb94f1\x01\x01\x06517375'
wyze-bridge  | 17:39:46 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10009 txt_len=725>: b'{"connectionRes":"1","cameraInfo":{"audioParm":{"sampleRate":"8000"},"videoParm":{"type":"H264","bitRate":"180","resolution":"2","fps":"15","horizontalFlip":"1","verticalFlip":"1","logo":"2","time":"1"},"settingParm":{"stateVision":"1","nightVision":"3","osd":"1","logSd":"1","logUdisk":"1", "telnet":"2","tz":"-6"},"basicInfo":{"firmware":"4.9.9.3006","type":"camera","hardware":"0.0.0.0","model":"WYZEC1-JZ","mac":"A4DA222F53C3","wifidb":"98"},"channelResquestResult":{"video":"1","audio":"1"},"recordType":{"type":"3"},"sdParm":{"status":"2","capacity":"0","free":"0","detail":"0"},"uDiskParm":{"status":"2","capacity":"0","free":"0"},"apartalarmParm":{"type":"0","startX":"66","longX":"30","startY":"18","heightY":"61"}}}'
wyze-bridge  | 17:39:46 [DEBUG][garage-cam-sub] SEND <K10056SetResolvingBit code=10056 resp_code=10057> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10056 txt_len=3> b'\x02\x1e\x00'
wyze-bridge  | 17:39:46 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10009 txt_len=725>: b'{"connectionRes":"1","cameraInfo":{"audioParm":{"sampleRate":"8000"},"videoParm":{"type":"H264","bitRate":"180","resolution":"2","fps":"15","horizontalFlip":"1","verticalFlip":"1","logo":"2","time":"1"},"settingParm":{"stateVision":"1","nightVision":"3","osd":"1","logSd":"1","logUdisk":"1", "telnet":"2","tz":"-6"},"basicInfo":{"firmware":"4.9.9.3006","type":"camera","hardware":"0.0.0.0","model":"WYZEC1-JZ","mac":"A4DA222F53C3","wifidb":"98"},"channelResquestResult":{"video":"1","audio":"1"},"recordType":{"type":"3"},"sdParm":{"status":"2","capacity":"0","free":"0","detail":"0"},"uDiskParm":{"status":"2","capacity":"0","free":"0"},"apartalarmParm":{"type":"0","startX":"66","longX":"30","startY":"18","heightY":"61"}}}'
wyze-bridge  | 17:39:46 [DEBUG][garage-cam] SEND <K10056SetResolvingBit code=10056 resp_code=10057> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10056 txt_len=3> b'\x01\xb4\x00'
wyze-bridge  | 17:39:46 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10009 txt_len=728>: b'{"connectionRes":"1","cameraInfo":{"audioParm":{"sampleRate":"8000"},"videoParm":{"type":"H264","bitRate":"180","resolution":"1","fps":"15","horizontalFlip":"1","verticalFlip":"1","logo":"2","time":"2"},"settingParm":{"stateVision":"2","nightVision":"3","osd":"2","logSd":"1","logUdisk":"1", "telnet":"2","tz":"-6"},"basicInfo":{"firmware":"4.10.9.3006","type":"camera","hardware":"0.0.0.0","model":"WYZECP1_JEF","mac":"A4DA222E5DE7","wifidb":"94"},"channelResquestResult":{"video":"1","audio":"1"},"recordType":{"type":"1"},"sdParm":{"status":"2","capacity":"0","free":"0","detail":"0"},"uDiskParm":{"status":"2","capacity":"0","free":"0"},"apartalarmParm":{"type":"0","startX":"50","longX":"37","startY":"22","heightY":"66"}}}'
wyze-bridge  | 17:39:46 [DEBUG][living-room-cam] SEND <K10056SetResolvingBit code=10056 resp_code=10057> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10056 txt_len=3> b'\x01\xb4\x00'
wyze-bridge  | 17:39:46 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10057 txt_len=1>: b'\x01'
wyze-bridge  | 17:39:46 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10057 txt_len=1>: b'\x01'
wyze-bridge  | 17:39:46 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10057 txt_len=1>: b'\x01'
wyze-bridge  | 17:39:47 [DEBUG][garage-cam-sub] No longer listening on channel id 0
wyze-bridge  | 17:39:47 [DEBUG][garage-cam-sub] [videoParm] {'type': 'H264', 'bitRate': '180', 'resolution': '2', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}
wyze-bridge  | 17:39:47 [DEBUG][garage-cam-sub] [cameraInfo] {'audioParm': {'sampleRate': '8000'}, 'videoParm': {'type': 'H264', 'bitRate': '180', 'resolution': '2', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}, 'settingParm': {'stateVision': '1', 'nightVision': '3', 'osd': '1', 'logSd': '1', 'logUdisk': '1', 'telnet': '2', 'tz': '-6'}, 'basicInfo': {'firmware': '4.9.9.3006', 'type': 'camera', 'hardware': '0.0.0.0', 'model': 'WYZEC1-JZ', 'mac': 'A4DA222F53C3', 'wifidb': '98'}, 'channelResquestResult': {'video': '1', 'audio': '1'}, 'recordType': {'type': '3'}, 'sdParm': {'status': '2', 'capacity': '0', 'free': '0', 'detail': '0'}, 'uDiskParm': {'status': '2', 'capacity': '0', 'free': '0'}, 'apartalarmParm': {'type': '0', 'startX': '66', 'longX': '30', 'startY': '18', 'heightY': '61'}}
wyze-bridge  | 17:39:47 [INFO][garage-cam-sub] 📡 Getting 30kb/s SD stream (H264/15fps) via LAN mode (WiFi: 98%) FW: 4.9.9.3006 🔒
wyze-bridge  | 17:39:47 [INFO][garage-cam-sub] [AUDIO] codec='mulaw' sample_rate=8000 codec_id=137
wyze-bridge  | 17:39:47 [INFO][garage-cam-sub] 🔊 Audio Enabled [Source=MULAW/8,000Hz]
wyze-bridge  | 17:39:47 [INFO][garage-cam-sub] [AUDIO] Re-Encode Enabled [AUDIO_CODEC=libopus]
wyze-bridge  | 17:39:47 [DEBUG][garage-cam-sub] Now listening on channel id 0
wyze-bridge  | 17:39:47 [DEBUG][garage-cam-sub] SEND <K10092SetCameraTime code=10092 resp_code=10093> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10092 txt_len=4> b'c\xeb\xffg'
wyze-bridge  | 17:39:47 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:39:47 [DEBUG][garage-cam] [videoParm] {'type': 'H264', 'bitRate': '180', 'resolution': '2', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}
wyze-bridge  | 17:39:47 [DEBUG][garage-cam] [cameraInfo] {'audioParm': {'sampleRate': '8000'}, 'videoParm': {'type': 'H264', 'bitRate': '180', 'resolution': '2', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '1'}, 'settingParm': {'stateVision': '1', 'nightVision': '3', 'osd': '1', 'logSd': '1', 'logUdisk': '1', 'telnet': '2', 'tz': '-6'}, 'basicInfo': {'firmware': '4.9.9.3006', 'type': 'camera', 'hardware': '0.0.0.0', 'model': 'WYZEC1-JZ', 'mac': 'A4DA222F53C3', 'wifidb': '98'}, 'channelResquestResult': {'video': '1', 'audio': '1'}, 'recordType': {'type': '3'}, 'sdParm': {'status': '2', 'capacity': '0', 'free': '0', 'detail': '0'}, 'uDiskParm': {'status': '2', 'capacity': '0', 'free': '0'}, 'apartalarmParm': {'type': '0', 'startX': '66', 'longX': '30', 'startY': '18', 'heightY': '61'}}
wyze-bridge  | 17:39:47 [INFO][garage-cam] 📡 Getting 180kb/s HD stream (H264/15fps) via LAN mode (WiFi: 98%) FW: 4.9.9.3006 🔒
wyze-bridge  | 17:39:47 [INFO][garage-cam] [AUDIO] codec='mulaw' sample_rate=8000 codec_id=137
wyze-bridge  | 17:39:47 [INFO][garage-cam] 🔊 Audio Enabled [Source=MULAW/8,000Hz]
wyze-bridge  | 17:39:47 [INFO][garage-cam] [AUDIO] Re-Encode Enabled [AUDIO_CODEC=libopus]
wyze-bridge  | 17:39:47 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:39:47 [DEBUG][garage-cam] SEND <K10092SetCameraTime code=10092 resp_code=10093> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10092 txt_len=4> b'c\xeb\xffg'
wyze-bridge  | 17:39:47 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10093 txt_len=1>: b'\x01'
wyze-bridge  | 17:39:47 [DEBUG][garage-cam-sub] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10093 txt_len=1>: b'\x01'
wyze-bridge  | 17:39:47 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:39:47 [DEBUG][living-room-cam] [videoParm] {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '2'}
wyze-bridge  | 17:39:47 [DEBUG][living-room-cam] [cameraInfo] {'audioParm': {'sampleRate': '8000'}, 'videoParm': {'type': 'H264', 'bitRate': '180', 'resolution': '1', 'fps': '15', 'horizontalFlip': '1', 'verticalFlip': '1', 'logo': '2', 'time': '2'}, 'settingParm': {'stateVision': '2', 'nightVision': '3', 'osd': '2', 'logSd': '1', 'logUdisk': '1', 'telnet': '2', 'tz': '-6'}, 'basicInfo': {'firmware': '4.10.9.3006', 'type': 'camera', 'hardware': '0.0.0.0', 'model': 'WYZECP1_JEF', 'mac': 'A4DA222E5DE7', 'wifidb': '94'}, 'channelResquestResult': {'video': '1', 'audio': '1'}, 'recordType': {'type': '1'}, 'sdParm': {'status': '2', 'capacity': '0', 'free': '0', 'detail': '0'}, 'uDiskParm': {'status': '2', 'capacity': '0', 'free': '0'}, 'apartalarmParm': {'type': '0', 'startX': '50', 'longX': '37', 'startY': '22', 'heightY': '66'}}
wyze-bridge  | 17:39:47 [INFO][living-room-cam] 📡 Getting 180kb/s HD stream (H264/15fps) via LAN mode (WiFi: 94%) FW: 4.10.9.3006 🔒
wyze-bridge  | 17:39:47 [INFO][living-room-cam] [AUDIO] codec='mulaw' sample_rate=8000 codec_id=137
wyze-bridge  | 17:39:47 [INFO][living-room-cam] 🔊 Audio Enabled [Source=MULAW/8,000Hz]
wyze-bridge  | 17:39:47 [INFO][living-room-cam] [AUDIO] Re-Encode Enabled [AUDIO_CODEC=libopus]
wyze-bridge  | 17:39:47 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:39:47 [DEBUG][living-room-cam] SEND <K10092SetCameraTime code=10092 resp_code=10093> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10092 txt_len=4> b'c\xeb\xffg'
wyze-bridge  | 17:39:47 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10093 txt_len=1>: b'\x01'
wyze-bridge  | 17:39:47 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 2025/04/16 17:39:47 INF [RTSP] [conn 127.0.0.1:34548] opened
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [c->s] OPTIONS rtsp://0.0.0.0:8554/living-room-cam RTSP/1.0
wyze-bridge  | CSeq: 1
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 1
wyze-bridge  | Public: DESCRIBE, ANNOUNCE, SETUP, PLAY, RECORD, PAUSE, GET_PARAMETER, TEARDOWN
wyze-bridge  | Server: gortsplib
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [c->s] ANNOUNCE rtsp://0.0.0.0:8554/living-room-cam RTSP/1.0
wyze-bridge  | CSeq: 2
wyze-bridge  | Content-Length: 366
wyze-bridge  | Content-Type: application/sdp
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | v=0
wyze-bridge  | o=- 0 0 IN IP4 127.0.0.1
wyze-bridge  | s=No Name
wyze-bridge  | c=IN IP4 127.0.0.1
wyze-bridge  | t=0 0
wyze-bridge  | a=tool:libavformat 60.3.100
wyze-bridge  | m=video 0 RTP/AVP 96
wyze-bridge  | a=rtpmap:96 H264/90000
wyze-bridge  | a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AKJ2oHgCJ+WEAAAMAAQAAAwAehA==,aO48gAA=; profile-level-id=4D4028
wyze-bridge  | a=control:streamid=0
wyze-bridge  | m=audio 0 RTP/AVP 97
wyze-bridge  | b=AS:64
wyze-bridge  | a=rtpmap:97 opus/48000/2
wyze-bridge  | a=control:streamid=1
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 INF [RTSP] [session d719fb4e] created by 127.0.0.1:34548
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 2
wyze-bridge  | Server: gortsplib
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [c->s] SETUP rtsp://0.0.0.0:8554/living-room-cam/streamid=0 RTSP/1.0
wyze-bridge  | CSeq: 3
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 3
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: facc4c18939d4d4a906a27d6f63a4163
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=0-1
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [c->s] SETUP rtsp://0.0.0.0:8554/living-room-cam/streamid=1 RTSP/1.0
wyze-bridge  | CSeq: 4
wyze-bridge  | Session: facc4c18939d4d4a906a27d6f63a4163
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=2-3;mode=record
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 4
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: facc4c18939d4d4a906a27d6f63a4163
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=2-3
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [c->s] RECORD rtsp://0.0.0.0:8554/living-room-cam RTSP/1.0
wyze-bridge  | CSeq: 5
wyze-bridge  | Range: npt=0.000-
wyze-bridge  | Session: facc4c18939d4d4a906a27d6f63a4163
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:47 INF [path living-room-cam] runOnReady command started
wyze-bridge  | 2025/04/16 17:39:47 INF [RTSP] [session d719fb4e] is publishing to path 'living-room-cam', 2 tracks (H264, Opus)
wyze-bridge  | 2025/04/16 17:39:47 DEB [RTSP] [conn 127.0.0.1:34548] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 5
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: facc4c18939d4d4a906a27d6f63a4163
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 17:39:47 [INFO][WyzeBridge] ✅ '/living-room-cam stream is UP! (3/3)
wyze-bridge  | 17:39:48 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] No longer listening on channel id 0
wyze-bridge  | 17:39:48 [WARNING][garage-cam] WARNING: Skipping wrong frame_size at start of stream [frame_size=1]
wyze-bridge  | 17:39:48 [WARNING][garage-cam] WARNING: Skipping wrong frame_size at start of stream [frame_size=1]
wyze-bridge  | 17:39:48 [WARNING][garage-cam] WARNING: Skipping wrong frame_size at start of stream [frame_size=1]
wyze-bridge  | 2025/04/16 17:39:48 INF [RTSP] [conn 127.0.0.1:34556] opened
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [c->s] OPTIONS rtsp://0.0.0.0:8554/garage-cam RTSP/1.0
wyze-bridge  | CSeq: 1
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 1
wyze-bridge  | Public: DESCRIBE, ANNOUNCE, SETUP, PLAY, RECORD, PAUSE, GET_PARAMETER, TEARDOWN
wyze-bridge  | Server: gortsplib
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 INF [RTSP] [conn 127.0.0.1:34570] opened
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [c->s] OPTIONS rtsp://0.0.0.0:8554/garage-cam-sub RTSP/1.0
wyze-bridge  | CSeq: 1
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 1
wyze-bridge  | Public: DESCRIBE, ANNOUNCE, SETUP, PLAY, RECORD, PAUSE, GET_PARAMETER, TEARDOWN
wyze-bridge  | Server: gortsplib
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [c->s] ANNOUNCE rtsp://0.0.0.0:8554/garage-cam RTSP/1.0
wyze-bridge  | CSeq: 2
wyze-bridge  | Content-Length: 366
wyze-bridge  | Content-Type: application/sdp
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | v=0
wyze-bridge  | o=- 0 0 IN IP4 127.0.0.1
wyze-bridge  | s=No Name
wyze-bridge  | c=IN IP4 127.0.0.1
wyze-bridge  | t=0 0
wyze-bridge  | a=tool:libavformat 60.3.100
wyze-bridge  | m=video 0 RTP/AVP 96
wyze-bridge  | a=rtpmap:96 H264/90000
wyze-bridge  | a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AKJ2oHgCJ+WEAAAMAAQAAAwAehA==,aO48gAA=; profile-level-id=4D4028
wyze-bridge  | a=control:streamid=0
wyze-bridge  | m=audio 0 RTP/AVP 97
wyze-bridge  | b=AS:64
wyze-bridge  | a=rtpmap:97 opus/48000/2
wyze-bridge  | a=control:streamid=1
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 INF [RTSP] [session 47ba8f57] created by 127.0.0.1:34556
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 2
wyze-bridge  | Server: gortsplib
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam/streamid=0 RTSP/1.0
wyze-bridge  | CSeq: 3
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 3
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: 27104705011345ac9150308e285cbb0c
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=0-1
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam/streamid=1 RTSP/1.0
wyze-bridge  | CSeq: 4
wyze-bridge  | Session: 27104705011345ac9150308e285cbb0c
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=2-3;mode=record
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 4
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: 27104705011345ac9150308e285cbb0c
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=2-3
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [c->s] RECORD rtsp://0.0.0.0:8554/garage-cam RTSP/1.0
wyze-bridge  | CSeq: 5
wyze-bridge  | Range: npt=0.000-
wyze-bridge  | Session: 27104705011345ac9150308e285cbb0c
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 INF [path garage-cam] runOnReady command started
wyze-bridge  | 2025/04/16 17:39:48 INF [RTSP] [session 47ba8f57] is publishing to path 'garage-cam', 2 tracks (H264, Opus)
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34556] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 5
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: 27104705011345ac9150308e285cbb0c
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 17:39:48 [INFO][WyzeBridge] ✅ '/garage-cam stream is UP! (3/3)
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.596116065979004
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [c->s] ANNOUNCE rtsp://0.0.0.0:8554/garage-cam-sub RTSP/1.0
wyze-bridge  | CSeq: 2
wyze-bridge  | Content-Length: 362
wyze-bridge  | Content-Type: application/sdp
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | v=0
wyze-bridge  | o=- 0 0 IN IP4 127.0.0.1
wyze-bridge  | s=No Name
wyze-bridge  | c=IN IP4 127.0.0.1
wyze-bridge  | t=0 0
wyze-bridge  | a=tool:libavformat 60.3.100
wyze-bridge  | m=video 0 RTP/AVP 96
wyze-bridge  | a=rtpmap:96 H264/90000
wyze-bridge  | a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z01AFp2oKAv+WEAAAAMAQAAAB6E=,aO48gAA=; profile-level-id=4D4016
wyze-bridge  | a=control:streamid=0
wyze-bridge  | m=audio 0 RTP/AVP 97
wyze-bridge  | b=AS:64
wyze-bridge  | a=rtpmap:97 opus/48000/2
wyze-bridge  | a=control:streamid=1
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 INF [RTSP] [session cdf75747] created by 127.0.0.1:34570
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 2
wyze-bridge  | Server: gortsplib
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam-sub/streamid=0 RTSP/1.0
wyze-bridge  | CSeq: 3
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 3
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: dca58ae41adf452d843dc80d2e1dcd81
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=0-1
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [c->s] SETUP rtsp://0.0.0.0:8554/garage-cam-sub/streamid=1 RTSP/1.0
wyze-bridge  | CSeq: 4
wyze-bridge  | Session: dca58ae41adf452d843dc80d2e1dcd81
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=2-3;mode=record
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 4
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: dca58ae41adf452d843dc80d2e1dcd81
wyze-bridge  | Transport: RTP/AVP/TCP;unicast;interleaved=2-3
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [c->s] RECORD rtsp://0.0.0.0:8554/garage-cam-sub RTSP/1.0
wyze-bridge  | CSeq: 5
wyze-bridge  | Range: npt=0.000-
wyze-bridge  | Session: dca58ae41adf452d843dc80d2e1dcd81
wyze-bridge  | User-Agent: Lavf60.3.100
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 2025/04/16 17:39:48 INF [path garage-cam-sub] runOnReady command started
wyze-bridge  | 2025/04/16 17:39:48 INF [RTSP] [session cdf75747] is publishing to path 'garage-cam-sub', 2 tracks (H264, Opus)
wyze-bridge  | 2025/04/16 17:39:48 DEB [RTSP] [conn 127.0.0.1:34570] [s->c] RTSP/1.0 200 OK
wyze-bridge  | CSeq: 5
wyze-bridge  | Server: gortsplib
wyze-bridge  | Session: dca58ae41adf452d843dc80d2e1dcd81
wyze-bridge  | 
wyze-bridge  | 
wyze-bridge  | 17:39:48 [INFO][WyzeBridge] ✅ '/garage-cam-sub stream is UP! (3/3)
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.5560579299926758
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0536539554595947
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0134389400482178
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.64198899269104
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] Flushed 640 from audio pipe
wyze-bridge  | 17:39:48 [DEBUG][garage-cam] [audio] behind video.. gap=-1.022697925567627
wyze-bridge  | 17:39:48 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.7250549793243408
wyze-bridge  | 17:39:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.685046911239624
wyze-bridge  | 17:39:49 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3308701515197754
wyze-bridge  | 17:39:49 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.290865182876587
wyze-bridge  | 17:39:49 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.250838041305542
wyze-bridge  | 17:39:50 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2937829494476318
wyze-bridge  | 17:39:51 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2598958015441895
wyze-bridge  | 17:39:52 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1831650733947754
wyze-bridge  | 17:39:52 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1431260108947754
wyze-bridge  | 17:39:53 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3086769580841064
wyze-bridge  | 17:39:53 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.26898193359375
wyze-bridge  | 17:39:54 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.272080898284912
wyze-bridge  | 17:39:54 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2319860458374023
wyze-bridge  | 17:39:55 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.237767219543457
wyze-bridge  | 17:39:56 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.240973949432373
wyze-bridge  | 17:39:57 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.287086009979248
wyze-bridge  | 17:39:57 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2470641136169434
wyze-bridge  | 17:39:58 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2900409698486328
wyze-bridge  | 17:39:58 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2497038841247559
wyze-bridge  | 17:39:59 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3760170936584473
wyze-bridge  | 17:39:59 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3359870910644531
wyze-bridge  | 17:39:59 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.29597806930542
wyze-bridge  | 17:40:00 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.21937894821167
wyze-bridge  | 17:40:01 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3448801040649414
wyze-bridge  | 17:40:01 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.304945945739746
wyze-bridge  | 17:40:02 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2680490016937256
wyze-bridge  | 17:40:03 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3139560222625732
wyze-bridge  | 17:40:04 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2370219230651855
wyze-bridge  | 17:40:05 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.322991132736206
wyze-bridge  | 17:40:06 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3261101245880127
wyze-bridge  | 17:40:06 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2859470844268799
wyze-bridge  | 17:40:07 [DEBUG][garage-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:40:07 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:40:07 [DEBUG][garage-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:40:07 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":1,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":2,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:40:07 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:40:07 [DEBUG][garage-cam] [CONTROL] response={'1': 1, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 2, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:40:07 [DEBUG][living-room-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:40:07 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:40:07 [DEBUG][living-room-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:40:07 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":2,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":1,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:40:07 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:40:07 [DEBUG][living-room-cam] [CONTROL] response={'1': 2, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 1, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:40:07 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.33201003074646
wyze-bridge  | 17:40:09 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3410170078277588
wyze-bridge  | 17:40:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.304210901260376
wyze-bridge  | 17:40:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2642238140106201
wyze-bridge  | 17:40:11 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3901450634002686
wyze-bridge  | 17:40:11 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3501200675964355
wyze-bridge  | 17:40:12 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3532240390777588
wyze-bridge  | 17:40:12 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3131439685821533
wyze-bridge  | 17:40:13 [DEBUG][living-room-cam] [audio] ahead of video.. gap=1.0603389739990234
wyze-bridge  | 17:40:13 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3594138622283936
wyze-bridge  | 17:40:13 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3193550109863281
wyze-bridge  | 17:40:15 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.368255853652954
wyze-bridge  | 17:40:15 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3282389640808105
wyze-bridge  | 17:40:16 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2913320064544678
wyze-bridge  | 17:40:17 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.41727614402771
wyze-bridge  | 17:40:18 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.4204261302947998
wyze-bridge  | 17:40:18 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3803930282592773
wyze-bridge  | 17:40:19 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3863048553466797
wyze-bridge  | 17:40:19 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3462140560150146
wyze-bridge  | 17:40:27 [DEBUG][garage-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:40:27 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:40:27 [DEBUG][garage-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:40:27 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":1,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":2,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:40:27 [DEBUG][living-room-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:40:27 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:40:27 [DEBUG][living-room-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:40:27 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":2,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":1,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:40:28 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:40:28 [DEBUG][garage-cam] [CONTROL] response={'1': 1, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 2, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:40:28 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:40:28 [DEBUG][living-room-cam] [CONTROL] response={'1': 2, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 1, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:40:48 [DEBUG][garage-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:40:48 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:40:48 [DEBUG][garage-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:40:48 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":1,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":2,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:40:48 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:40:48 [DEBUG][garage-cam] [CONTROL] response={'1': 1, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 2, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:40:48 [DEBUG][living-room-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:40:48 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:40:48 [DEBUG][living-room-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:40:48 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":2,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":1,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:40:48 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:40:48 [DEBUG][living-room-cam] [CONTROL] response={'1': 2, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 1, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:40:55 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0048089027404785
wyze-bridge  | 17:40:55 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:40:56 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0912470817565918
wyze-bridge  | 17:40:56 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:40:56 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0511078834533691
wyze-bridge  | 17:40:56 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:40:57 [DEBUG][garage-cam] [audio] behind video.. gap=-1.104550838470459
wyze-bridge  | 17:40:57 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:40:57 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0647048950195312
wyze-bridge  | 17:40:57 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:02 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0329558849334717
wyze-bridge  | 17:41:04 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0019350051879883
wyze-bridge  | 17:41:05 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0050790309906006
wyze-bridge  | 17:41:06 [INFO][WyzeBridge] 192.168.1.217 - - [16/Apr/2025 17:41:06] "GET / HTTP/1.1" 401 -
wyze-bridge  | 17:41:06 [INFO][WyzeBridge] 192.168.1.217 - - [16/Apr/2025 17:41:06] "GET / HTTP/1.1" 401 -
wyze-bridge  | 17:41:06 [INFO][WyzeBridge] 192.168.1.217 - - [16/Apr/2025 17:41:06] "GET / HTTP/1.1" 401 -
wyze-bridge  | 17:41:08 [DEBUG][garage-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:41:08 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:41:08 [DEBUG][garage-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:41:08 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":1,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":2,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:41:08 [DEBUG][living-room-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:41:08 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:41:08 [DEBUG][living-room-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:41:08 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":2,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":1,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:41:08 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:41:08 [DEBUG][living-room-cam] [CONTROL] response={'1': 2, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 1, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:41:08 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0198609828948975
wyze-bridge  | 17:41:09 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:41:09 [DEBUG][garage-cam] [CONTROL] response={'1': 1, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 2, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:41:10 [INFO][WyzeBridge] 192.168.1.217 - - [16/Apr/2025 17:41:10] "GET / HTTP/1.1" 401 -
wyze-bridge  | 17:41:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.068962812423706
wyze-bridge  | 17:41:10 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.028986930847168
wyze-bridge  | 17:41:12 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0379998683929443
wyze-bridge  | 17:41:13 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0011439323425293
wyze-bridge  | 17:41:14 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.007073163986206
wyze-bridge  | 17:41:16 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0160770416259766
wyze-bridge  | 17:41:17 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.019191026687622
wyze-bridge  | 17:41:18 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1051151752471924
wyze-bridge  | 17:41:19 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.028136968612671
wyze-bridge  | 17:41:20 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.074031114578247
wyze-bridge  | 17:41:22 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0827720165252686
wyze-bridge  | 17:41:22 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:41:22 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0429530143737793
wyze-bridge  | 17:41:23 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0060579776763916
wyze-bridge  | 17:41:23 [DEBUG][garage-cam-sub] Flushed 320 from audio pipe
wyze-bridge  | 17:41:24 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0918619632720947
wyze-bridge  | 17:41:24 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0519218444824219
wyze-bridge  | 17:41:25 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0149719715118408
wyze-bridge  | 17:41:26 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0607938766479492
wyze-bridge  | 17:41:27 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0239791870117188
wyze-bridge  | 17:41:28 [DEBUG][living-room-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:41:28 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:41:28 [DEBUG][living-room-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:41:28 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":2,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":1,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:41:28 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:41:28 [DEBUG][living-room-cam] [CONTROL] response={'1': 2, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 1, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:41:28 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3779361248016357
wyze-bridge  | 17:41:28 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3378899097442627
wyze-bridge  | 17:41:28 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1099472045898438
wyze-bridge  | 17:41:29 [DEBUG][garage-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:41:29 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:41:29 [DEBUG][garage-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:41:29 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":1,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":2,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:41:29 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.11301589012146
wyze-bridge  | 17:41:29 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0729968547821045
wyze-bridge  | 17:41:29 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0329868793487549
wyze-bridge  | 17:41:30 [DEBUG][garage-cam] [audio] behind video.. gap=-1.041733980178833
wyze-bridge  | 17:41:30 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:30 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0018880367279053
wyze-bridge  | 17:41:30 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:30 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:41:30 [DEBUG][garage-cam] [CONTROL] response={'1': 1, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 2, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:41:30 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1189942359924316
wyze-bridge  | 17:41:30 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0789601802825928
wyze-bridge  | 17:41:31 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0461139678955078
wyze-bridge  | 17:41:31 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:31 [DEBUG][garage-cam] [audio] behind video.. gap=-1.005964994430542
wyze-bridge  | 17:41:31 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:31 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.122140884399414
wyze-bridge  | 17:41:31 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0820889472961426
wyze-bridge  | 17:41:32 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1281299591064453
wyze-bridge  | 17:41:33 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0153131484985352
wyze-bridge  | 17:41:33 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:33 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0912718772888184
wyze-bridge  | 17:41:34 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.137221097946167
wyze-bridge  | 17:41:35 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0241360664367676
wyze-bridge  | 17:41:35 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:35 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.140362024307251
wyze-bridge  | 17:41:35 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1003479957580566
wyze-bridge  | 17:41:36 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1062297821044922
wyze-bridge  | 17:41:37 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0334720611572266
wyze-bridge  | 17:41:37 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0692811012268066
wyze-bridge  | 17:41:37 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0292229652404785
wyze-bridge  | 17:41:38 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0553522109985352
wyze-bridge  | 17:41:38 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.015632152557373
wyze-bridge  | 17:41:38 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1151680946350098
wyze-bridge  | 17:41:39 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0424392223358154
wyze-bridge  | 17:41:39 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:39 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0024220943450928
wyze-bridge  | 17:41:39 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:39 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1192607879638672
wyze-bridge  | 17:41:39 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0792579650878906
wyze-bridge  | 17:41:39 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.118238925933838
wyze-bridge  | 17:41:40 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0072309970855713
wyze-bridge  | 17:41:40 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:40 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1542038917541504
wyze-bridge  | 17:41:40 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1642842292785645
wyze-bridge  | 17:41:40 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.123866081237793
wyze-bridge  | 17:41:41 [DEBUG][garage-cam] [audio] behind video.. gap=-1.051285982131958
wyze-bridge  | 17:41:41 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:41 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.137666940689087
wyze-bridge  | 17:41:41 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0874171257019043
wyze-bridge  | 17:41:41 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.047199010848999
wyze-bridge  | 17:41:42 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0567638874053955
wyze-bridge  | 17:41:42 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:42 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0167598724365234
wyze-bridge  | 17:41:42 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:42 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2554759979248047
wyze-bridge  | 17:41:42 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2154219150543213
wyze-bridge  | 17:41:42 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1333510875701904
wyze-bridge  | 17:41:42 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0933339595794678
wyze-bridge  | 17:41:43 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0594902038574219
wyze-bridge  | 17:41:43 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:43 [DEBUG][garage-cam] [audio] behind video.. gap=-1.020409107208252
wyze-bridge  | 17:41:43 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:43 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3168909549713135
wyze-bridge  | 17:41:43 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2768709659576416
wyze-bridge  | 17:41:43 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1362760066986084
wyze-bridge  | 17:41:43 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.0962841510772705
wyze-bridge  | 17:41:44 [DEBUG][garage-cam] [audio] behind video.. gap=-1.0251290798187256
wyze-bridge  | 17:41:44 [DEBUG][garage-cam] Flushed 320 from audio pipe
wyze-bridge  | 17:41:44 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.4326069355010986
wyze-bridge  | 17:41:44 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3925659656524658
wyze-bridge  | 17:41:44 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2224011421203613
wyze-bridge  | 17:41:44 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1823811531066895
wyze-bridge  | 17:41:45 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.3765101432800293
wyze-bridge  | 17:41:45 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.336076021194458
wyze-bridge  | 17:41:45 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1055190563201904
wyze-bridge  | 17:41:46 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.451030969619751
wyze-bridge  | 17:41:46 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.4117751121520996
wyze-bridge  | 17:41:46 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1512889862060547
wyze-bridge  | 17:41:47 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.154358148574829
wyze-bridge  | 17:41:47 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1143090724945068
wyze-bridge  | 17:41:48 [DEBUG][living-room-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:41:48 [DEBUG][living-room-cam] Now listening on channel id 0
wyze-bridge  | 17:41:48 [DEBUG][living-room-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:41:48 [DEBUG][living-room-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":2,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":1,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:41:48 [DEBUG][living-room-cam] No longer listening on channel id 0
wyze-bridge  | 17:41:48 [DEBUG][living-room-cam] [CONTROL] response={'1': 2, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 1, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:41:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2400951385498047
wyze-bridge  | 17:41:48 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2002320289611816
wyze-bridge  | 17:41:49 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1632680892944336
wyze-bridge  | 17:41:49 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1232900619506836
wyze-bridge  | 17:41:50 [DEBUG][garage-cam] [CONTROL] Attempting to GET: param_info
wyze-bridge  | 17:41:50 [DEBUG][garage-cam] Now listening on channel id 0
wyze-bridge  | 17:41:50 [DEBUG][garage-cam] SEND <K10020CheckCameraParams code=10020 resp_code=10021> <TutkWyzeProtocolHeader prefix=b'HL' protocol=5 code=10020 txt_len=13> b'\x0c\x01\x02\x03\x04\x05\x06\x07\r\x15\x16\x1b2'
wyze-bridge  | 17:41:50 [DEBUG][garage-cam] RECV <TutkWyzeProtocolHeader prefix=b'HL' protocol=32 code=10021 txt_len=82>: b'{"1":1,"2":3,"3":180,"4":1,"5":15,"6":1,"7":1,"13":1,"21":2,"22":-6,"27":2,"50":1}'
wyze-bridge  | 17:41:50 [DEBUG][garage-cam] No longer listening on channel id 0
wyze-bridge  | 17:41:50 [DEBUG][garage-cam] [CONTROL] response={'1': 1, '2': 3, '3': 180, '4': 1, '5': 15, '6': 1, '7': 1, '13': 1, '21': 2, '22': -6, '27': 2, '50': 1}
wyze-bridge  | 17:41:50 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.209031105041504
wyze-bridge  | 17:41:51 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1722848415374756
wyze-bridge  | 17:41:51 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1323659420013428
wyze-bridge  | 17:41:52 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2183990478515625
wyze-bridge  | 17:41:53 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.141390085220337
wyze-bridge  | 17:41:53 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1013100147247314
wyze-bridge  | 17:41:54 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2674329280853271
wyze-bridge  | 17:41:54 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2274219989776611
wyze-bridge  | 17:41:55 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1504511833190918
wyze-bridge  | 17:41:56 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.236332893371582
wyze-bridge  | 17:41:56 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1962997913360596
wyze-bridge  | 17:41:57 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1594810485839844
wyze-bridge  | 17:41:58 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2445390224456787
wyze-bridge  | 17:41:58 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2054479122161865
wyze-bridge  | 17:41:59 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1685330867767334
wyze-bridge  | 17:41:59 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.1284561157226562
wyze-bridge  | 17:42:00 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2544488906860352
wyze-bridge  | 17:42:01 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.257538080215454
wyze-bridge  | 17:42:01 [DEBUG][garage-cam-sub] [audio] behind video.. gap=-1.2174899578094482
root@nvr ~# 

@jeeftor
Copy link
Author

jeeftor commented Apr 16, 2025

When I run the docker container I hav been pulling the environment out of the mediamtx task and it seems like stuff is getting across correctly.

With my custom run this command yields:

tr '\0' '\n' < /proc/$(pgrep -f mediamtx)/environ | sort

MTX_HLSADDRESS=:18888
MTX_HLSVARIANT=mpegts
MTX_LOGLEVEL=debug
MTX_PROTOCOLS=tcp
MTX_READTIMEOUT=60s
MTX_RTMPADDRESS=:1936
MTX_RTSPADDRESS=:18554
MTX_TAG=1.9.0
MTX_WEBRTCADDRESS=:8889
MTX_WEBRTCICEUDPMUXADDRESS=:8189
MTX_WEBRTCLOCALTCPADDRESS=:18555
MTX_WEBRTCLOCALUDPADDRESS=:8189
MTX_WRITEQUEUESIZE=1024

So I would think MTX is correctly setup

@vipergts450
Copy link

vipergts450 commented Apr 26, 2025

It looks like ffmpeg.py in /app/wyzebridge/ hardcodes the port for FFMPEG to connect to rather than follow the MTX_RTSPADDRESS environment variable.

In ffmpeg.py on line 52:
rss_cmd = f"[{fio_cmd}{{}}f=rtsp:{rtsp_transport=:}]rtsp://0.0.0.0:8554/{uri}"

I tested a fix by copying ffmpeg.py out of the running container to the same folder the docker-compose.yml file is in:
docker compose cp wyze-bridge:/app/wyzebridge/ffmpeg.py .

Then, shut down the stack with docker compose down

Next, edit ffmpeg.py and change the port on line 52 to your custom port, 18554 according to your post above.

In docker-compose.yml, map a volume to the modified file:

volumes:
    - ./ffmpeg.py:/app/wyzebridge/ffmpeg.py

Bring the stack back up with docker compose up -d

Watch the logs with docker compose logs -ft

[WyzeBridge] [MTX] starting MediaMTX 1.9.0
[WyzeBridge] 🎬 1 stream enabled
[WyzeBridge] 🎉 Connecting to _WYZECAMTYPE_ - _CAMNAME_ on _CAMERAIP_
[_CAMNAME_] 📡 Getting 180kb/s HD stream (H264/20fps) via LAN mode (WiFi: 98%) FW: _FWVERSION_🔒
[_CAMNAME_] 🔊 Audio Enabled [Source=ALAW/16,000Hz]
[_CAMNAME_] [AUDIO] Re-Encode for RTSP compatibility [codec_out='pcm_mulaw']
[_CAMNAME_t] WARNING: Skipping wrong frame_size at start of stream [frame_size=1]
[WyzeBridge] ✅ '/_CAMNAME_ stream is UP! (3/3)

I think modifying ffmpeg.py to track the MTX_RTSPADDRESS environment variable should be a simple fix, but I'm not good enough in Python to make the pull request myself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants