[GH-ISSUE #661] [Bug Report] I have an A1 and a P2S. When I click the camera icon on the A1, it works the sa #435

Closed
opened 2026-05-06 12:29:27 +02:00 by BreizhHardware · 32 comments

Originally created by @maziggy on GitHub (Mar 10, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/661

Originally assigned to: @maziggy on GitHub.

I have an A1 and a P2S. When I click the camera icon on the A1, it works the same as Bambu Handy did. But when I click the camera icon on the P2S, it either just times out and says Reconnect Faile or briefler shows a still image then fails. I have Developer mode enabled on both. Let me know what you need.

Reporter Contact

Email: dean@detton.me

System Information
{
  "generated_at": "2026-03-10T01:17:07.706368",
  "app": {
    "version": "0.2.2b1",
    "debug_mode": false
  },
  "system": {
    "platform": "Linux",
    "platform_release": "4.4.302+",
    "platform_version": "#64570 SMP Thu Jul 20 00:07:29 CST 2023",
    "architecture": "x86_64",
    "python_version": "3.13.12"
  },
  "environment": {
    "docker": true,
    "data_dir": "/app/data",
    "log_dir": "/app/logs",
    "timezone": "America/Los_Angeles"
  },
  "database": {
    "archives_total": 15,
    "archives_completed": 12,
    "printers_total": 2,
    "filaments_total": 0,
    "projects_total": 0,
    "smart_plugs_total": 0
  },
  "printers": [
    {
      "index": 1,
      "model": "P2S",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "RUNNING",
      "firmware_version": "01.01.03.00",
      "wifi_signal": -42,
      "reachable": true,
      "ams_unit_count": 1,
      "ams_tray_count": 3,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": true,
      "nozzle_rack_count": 1
    },
    {
      "index": 2,
      "model": "A1",
      "nozzle_count": 1,
      "is_active": true,
      "mqtt_connected": true,
      "state": "RUNNING",
      "firmware_version": "01.07.02.00",
      "wifi_signal": -38,
      "reachable": true,
      "ams_unit_count": 0,
      "ams_tray_count": 0,
      "has_vt_tray": true,
      "external_camera_configured": false,
      "plate_detection_enabled": false,
      "hms_error_count": 0,
      "developer_mode": null,
      "nozzle_rack_count": 0
    }
  ],
  "settings": {
    "auth_enabled": "true",
    "setup_completed": "true",
    "auto_archive": "true",
    "save_thumbnails": "true",
    "capture_finish_photo": "true",
    "default_filament_cost": "25.0",
    "currency": "USD",
    "energy_cost_per_kwh": "0.15",
    "energy_tracking_mode": "total",
    "check_updates": "true",
    "check_printer_firmware": "true",
    "include_beta_updates": "false",
    "notification_language": "en",
    "bed_cooled_threshold": "35.0",
    "ams_humidity_good": "40",
    "ams_humidity_fair": "60",
    "ams_temp_good": "28.0",
    "ams_temp_fair": "35.0",
    "ams_history_retention_days": "30",
    "per_printer_mapping_expanded": "false",
    "date_format": "iso",
    "time_format": "24h",
    "default_printer_id": "None",
    "ftp_retry_enabled": "true",
    "ftp_retry_count": "3",
    "ftp_retry_delay": "2",
    "ftp_timeout": "30",
    "mqtt_enabled": "false",
    "mqtt_broker": "",
    "mqtt_port": "1883",
    "mqtt_topic_prefix": "bambuddy",
    "mqtt_use_tls": "false",
    "ha_enabled": "true",
    "library_archive_mode": "ask",
    "library_disk_warning_gb": "5.0",
    "camera_view_mode": "window",
    "preferred_slicer": "bambu_studio",
    "prometheus_enabled": "false",
    "dark_background": "neutral",
    "dark_accent": "purple",
    "dark_style": "classic",
    "spoolman_enabled": "true",
    "spoolman_sync_mode": "auto",
    "spoolman_disable_weight_sync": "false",
    "spoolman_report_partial_usage": "true"
  },
  "docker": {
    "container_memory_limit_bytes": null,
    "container_memory_limit_formatted": null,
    "network_mode_hint": "host"
  },
  "virtual_printers": [],
  "integrations": {
    "notification_providers": [],
    "spoolman": {
      "enabled": true,
      "reachable": true
    },
    "mqtt_relay": {
      "enabled": false,
      "connected": false,
      "broker": "",
      "port": 0,
      "topic_prefix": "bambuddy"
    },
    "homeassistant": {
      "enabled": true
    }
  },
  "database_health": {
    "journal_mode": "wal",
    "quick_check": "ok",
    "db_size_bytes": 487424,
    "wal_size_bytes": 4144752
  },
  "dependencies": {
    "fastapi": "0.135.1",
    "uvicorn": "0.41.0",
    "pydantic": "2.12.5",
    "sqlalchemy": "2.0.48",
    "paho-mqtt": "2.1.0",
    "psutil": "7.2.2",
    "httpx": "0.28.1",
    "aiofiles": "25.1.0",
    "cryptography": "46.0.5",
    "opencv-python-headless": "4.13.0.92",
    "numpy": "2.4.2"
  },
  "log_file": {
    "size_bytes": 431010,
    "size_formatted": "420.9 KB"
  },
  "network": {
    "interface_count": 1,
    "interfaces": [
      {
        "name": "ovs_bond0",
        "subnet": "x.x.101.0/24"
      }
    ]
  },
  "websockets": {
    "active_connections": 1
  }
}

Logs (sanitized): bambuddy.log


Submitted via BamBuddy Bug Report

Originally created by @maziggy on GitHub (Mar 10, 2026). Original GitHub issue: https://github.com/maziggy/bambuddy/issues/661 Originally assigned to: @maziggy on GitHub. I have an A1 and a P2S. When I click the camera icon on the A1, it works the same as Bambu Handy did. But when I click the camera icon on the P2S, it either just times out and says Reconnect Faile or briefler shows a still image then fails. I have Developer mode enabled on both. Let me know what you need. <details> <summary>Reporter Contact</summary> Email: dean@detton.me </details> <details> <summary>System Information</summary> ```json { "generated_at": "2026-03-10T01:17:07.706368", "app": { "version": "0.2.2b1", "debug_mode": false }, "system": { "platform": "Linux", "platform_release": "4.4.302+", "platform_version": "#64570 SMP Thu Jul 20 00:07:29 CST 2023", "architecture": "x86_64", "python_version": "3.13.12" }, "environment": { "docker": true, "data_dir": "/app/data", "log_dir": "/app/logs", "timezone": "America/Los_Angeles" }, "database": { "archives_total": 15, "archives_completed": 12, "printers_total": 2, "filaments_total": 0, "projects_total": 0, "smart_plugs_total": 0 }, "printers": [ { "index": 1, "model": "P2S", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "RUNNING", "firmware_version": "01.01.03.00", "wifi_signal": -42, "reachable": true, "ams_unit_count": 1, "ams_tray_count": 3, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": true, "nozzle_rack_count": 1 }, { "index": 2, "model": "A1", "nozzle_count": 1, "is_active": true, "mqtt_connected": true, "state": "RUNNING", "firmware_version": "01.07.02.00", "wifi_signal": -38, "reachable": true, "ams_unit_count": 0, "ams_tray_count": 0, "has_vt_tray": true, "external_camera_configured": false, "plate_detection_enabled": false, "hms_error_count": 0, "developer_mode": null, "nozzle_rack_count": 0 } ], "settings": { "auth_enabled": "true", "setup_completed": "true", "auto_archive": "true", "save_thumbnails": "true", "capture_finish_photo": "true", "default_filament_cost": "25.0", "currency": "USD", "energy_cost_per_kwh": "0.15", "energy_tracking_mode": "total", "check_updates": "true", "check_printer_firmware": "true", "include_beta_updates": "false", "notification_language": "en", "bed_cooled_threshold": "35.0", "ams_humidity_good": "40", "ams_humidity_fair": "60", "ams_temp_good": "28.0", "ams_temp_fair": "35.0", "ams_history_retention_days": "30", "per_printer_mapping_expanded": "false", "date_format": "iso", "time_format": "24h", "default_printer_id": "None", "ftp_retry_enabled": "true", "ftp_retry_count": "3", "ftp_retry_delay": "2", "ftp_timeout": "30", "mqtt_enabled": "false", "mqtt_broker": "", "mqtt_port": "1883", "mqtt_topic_prefix": "bambuddy", "mqtt_use_tls": "false", "ha_enabled": "true", "library_archive_mode": "ask", "library_disk_warning_gb": "5.0", "camera_view_mode": "window", "preferred_slicer": "bambu_studio", "prometheus_enabled": "false", "dark_background": "neutral", "dark_accent": "purple", "dark_style": "classic", "spoolman_enabled": "true", "spoolman_sync_mode": "auto", "spoolman_disable_weight_sync": "false", "spoolman_report_partial_usage": "true" }, "docker": { "container_memory_limit_bytes": null, "container_memory_limit_formatted": null, "network_mode_hint": "host" }, "virtual_printers": [], "integrations": { "notification_providers": [], "spoolman": { "enabled": true, "reachable": true }, "mqtt_relay": { "enabled": false, "connected": false, "broker": "", "port": 0, "topic_prefix": "bambuddy" }, "homeassistant": { "enabled": true } }, "database_health": { "journal_mode": "wal", "quick_check": "ok", "db_size_bytes": 487424, "wal_size_bytes": 4144752 }, "dependencies": { "fastapi": "0.135.1", "uvicorn": "0.41.0", "pydantic": "2.12.5", "sqlalchemy": "2.0.48", "paho-mqtt": "2.1.0", "psutil": "7.2.2", "httpx": "0.28.1", "aiofiles": "25.1.0", "cryptography": "46.0.5", "opencv-python-headless": "4.13.0.92", "numpy": "2.4.2" }, "log_file": { "size_bytes": 431010, "size_formatted": "420.9 KB" }, "network": { "interface_count": 1, "interfaces": [ { "name": "ovs_bond0", "subnet": "x.x.101.0/24" } ] }, "websockets": { "active_connections": 1 } } ``` </details> **Logs (sanitized):** [bambuddy.log](https://raw.githubusercontent.com/maziggy/bambuddy/bug-report-assets/logs/81622f61099f4b798f627921a65bc2b8.log) --- *Submitted via BamBuddy Bug Report*
Author
Owner

@maziggy commented on GitHub (Mar 10, 2026):

The log was captured before you tried streaming, so it doesn't contain the camera-specific diagnostics we need.

Could you try this:

  1. https://wiki.bambuddy.cool/features/system-info/?h=debug#enable-debug-logging
  2. Open the P2S camera stream (click the camera icon)
  3. Wait for it to fail/timeout
  4. Upload support package to this issue

We need to see the ffmpeg output — it will show exactly why the RTSP connection to your P2S is failing.

Also — you're on v0.2.2b1. The latest is 0.2.2b2 which includes several fixes. Could you update and try again? If the issue persists on 0.2.2b2, the new log will help us pinpoint the cause.

<!-- gh-comment-id:4030035908 --> @maziggy commented on GitHub (Mar 10, 2026): The log was captured before you tried streaming, so it doesn't contain the camera-specific diagnostics we need. Could you try this: 1. https://wiki.bambuddy.cool/features/system-info/?h=debug#enable-debug-logging 2. Open the P2S camera stream (click the camera icon) 3. Wait for it to fail/timeout 3. Upload support package to this issue We need to see the ffmpeg output — it will show exactly why the RTSP connection to your P2S is failing. Also — you're on v0.2.2b1. The latest is 0.2.2b2 which includes several fixes. Could you update and try again? If the issue persists on 0.2.2b2, the new log will help us pinpoint the cause.
Author
Owner

@ddetton commented on GitHub (Mar 10, 2026):

Ok, updated to 0.2.2b2. Enabled debug. Reproduced error. Attaching file.

bambuddy-support-20260310-090529.zip

<!-- gh-comment-id:4032660483 --> @ddetton commented on GitHub (Mar 10, 2026): Ok, updated to 0.2.2b2. Enabled debug. Reproduced error. Attaching file. [bambuddy-support-20260310-090529.zip](https://github.com/user-attachments/files/25876104/bambuddy-support-20260310-090529.zip)
Author
Owner

@maziggy commented on GitHub (Mar 11, 2026):

I can see 5 RTSP stream attempts to your P2S, all failing within seconds — ffmpeg starts but produces zero frames before exiting. Unfortunately, the current build doesn't capture ffmpeg's error output in this scenario, so we can't see why it's failing.

I've just added diagnostic logging that will capture the actual ffmpeg error message.

Please pull branch 0.2.2b3, rebuild your container and generate a new support package when trying to connect to the camera.

git checkout 0.2.2b3 && git pull && docker compose down && docker compose up --build -d

The ffmpeg error will tell us exactly what's going wrong — likely a TLS negotiation issue or RTSP auth rejection.

A couple of things that look fine in your logs, just to confirm:

  • Developer mode is enabled on the P2S ✓
  • MQTT is connected and printer is reachable ✓
  • Camera is on (ipcam_dev: '1') and RTSP URL is present ✓
  • Network mode is host ✓

So the printer-side config looks correct. We just need the ffmpeg error to pinpoint the failure.

<!-- gh-comment-id:4037418513 --> @maziggy commented on GitHub (Mar 11, 2026): I can see 5 RTSP stream attempts to your P2S, all failing within seconds — ffmpeg starts but produces zero frames before exiting. Unfortunately, the current build doesn't capture ffmpeg's error output in this scenario, so we can't see why it's failing. I've just added diagnostic logging that will capture the actual ffmpeg error message. Please pull branch 0.2.2b3, rebuild your container and generate a new support package when trying to connect to the camera. git checkout 0.2.2b3 && git pull && docker compose down && docker compose up --build -d The ffmpeg error will tell us exactly what's going wrong — likely a TLS negotiation issue or RTSP auth rejection. A couple of things that look fine in your logs, just to confirm: - Developer mode is enabled on the P2S ✓ - MQTT is connected and printer is reachable ✓ - Camera is on (ipcam_dev: '1') and RTSP URL is present ✓ - Network mode is host ✓ So the printer-side config looks correct. We just need the ffmpeg error to pinpoint the failure.
Author
Owner

@ddetton commented on GitHub (Mar 11, 2026):

Ok, with the help of Google Gemini, I was able to configure my synology for git and build the container you requested. Here is the new support package. Thanks!

bambuddy-support-20260311-133957.zip

<!-- gh-comment-id:4042086067 --> @ddetton commented on GitHub (Mar 11, 2026): Ok, with the help of Google Gemini, I was able to configure my synology for git and build the container you requested. Here is the new support package. Thanks! [bambuddy-support-20260311-133957.zip](https://github.com/user-attachments/files/25918955/bambuddy-support-20260311-133957.zip)
Author
Owner

@DMoenning commented on GitHub (Mar 11, 2026):

Ok, with the help of Google Gemini, I was able to configure my synology for git and build the container you requested. Here is the new support package. Thanks!

bambuddy-support-20260311-133957.zip

i firstly run in the same issue with git. you could just enable beta updates and then use docker compose pull && docker compose up -d

@maziggy ive got the same issue as @ddetton and heres my debug-log aswell

bambuddy-support-20260311-220324.zip

im on 0.2.2b3

<!-- gh-comment-id:4042228446 --> @DMoenning commented on GitHub (Mar 11, 2026): > Ok, with the help of Google Gemini, I was able to configure my synology for git and build the container you requested. Here is the new support package. Thanks! > > [bambuddy-support-20260311-133957.zip](https://github.com/user-attachments/files/25918955/bambuddy-support-20260311-133957.zip) i firstly run in the same issue with git. you could just enable beta updates and then use `docker compose pull && docker compose up -d` @maziggy ive got the same issue as @ddetton and heres my debug-log aswell [bambuddy-support-20260311-220324.zip](https://github.com/user-attachments/files/25919298/bambuddy-support-20260311-220324.zip) im on 0.2.2b3
Author
Owner

@maziggy commented on GitHub (Mar 12, 2026):

The logs show the P2S firmware is actively dropping the RTSP session after a few seconds — ffmpeg connects, receives video, then gets Error during demuxing: Input/output error. This happens consistently on both your printers.

I've added transparent auto-reconnection in the next build: when ffmpeg's RTSP session dies, it respawns immediately and continues streaming MJPEG frames to the browser without interruption. You'll see a brief frame freeze (~1s) each time the P2S drops the connection, but the stream stays alive instead of failing.

Will be available in next daily release or by using branch dev.

please let me know if it works now.

<!-- gh-comment-id:4045669404 --> @maziggy commented on GitHub (Mar 12, 2026): The logs show the P2S firmware is actively dropping the RTSP session after a few seconds — ffmpeg connects, receives video, then gets Error during demuxing: Input/output error. This happens consistently on both your printers. I've added transparent auto-reconnection in the next build: when ffmpeg's RTSP session dies, it respawns immediately and continues streaming MJPEG frames to the browser without interruption. You'll see a brief frame freeze (~1s) each time the P2S drops the connection, but the stream stays alive instead of failing. Will be available in next daily release or by using branch dev. please let me know if it works now.
Author
Owner

@ddetton commented on GitHub (Mar 12, 2026):

Thanks! I did a checkout and build on the dev branch. What it is doing now is flash a still image every 3-4 seconds. Before I set LAN only and Dev mode, Bambu Handy would stream live video. Not having live video is a dealbreaker for me. I don't think it is your problem. It appears that the p2s has a really finicky video stream service. Could this have anything to do with it being a 1080p video feed? One thing I tried was turning off LAN Liveview and it totally broke it. Turning it back on restored the still image cycle. Can other people running bambuddy view live video streams from the P2S? Is there any other setting that could affect this? Here is my current log.

bambuddy-support-20260312-135349.zip

<!-- gh-comment-id:4050044160 --> @ddetton commented on GitHub (Mar 12, 2026): Thanks! I did a checkout and build on the dev branch. What it is doing now is flash a still image every 3-4 seconds. Before I set LAN only and Dev mode, Bambu Handy would stream live video. Not having live video is a dealbreaker for me. I don't think it is your problem. It appears that the p2s has a really finicky video stream service. Could this have anything to do with it being a 1080p video feed? One thing I tried was turning off LAN Liveview and it totally broke it. Turning it back on restored the still image cycle. Can other people running bambuddy view live video streams from the P2S? Is there any other setting that could affect this? Here is my current log. [bambuddy-support-20260312-135349.zip](https://github.com/user-attachments/files/25950702/bambuddy-support-20260312-135349.zip)
Author
Owner

@ddetton commented on GitHub (Mar 12, 2026):

I installed an instance of octoeverywhere to see if I could get the video stream to show up there. That one gets an error too. Here is the message posted to the docker log for that container:

2026-03-12 23:10:17,049 - WARNING -
Exception in QuickCam capture thread. [SSL:
SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure
(_ssl.c:1010)

I asked Google Gemini about this and here is what it said:
That error message is the "smoking gun." SSLV3_ALERT_HANDSHAKE_FAILURE confirms that the P2S is using an older or specific security protocol that modern, "secure" Linux environments (like your Synology's Docker containers) are now programmed to reject by default.

Is there any way that you could use a less secure TLS handshake to make this work?

<!-- gh-comment-id:4051029555 --> @ddetton commented on GitHub (Mar 12, 2026): I installed an instance of octoeverywhere to see if I could get the video stream to show up there. That one gets an error too. Here is the message posted to the docker log for that container: 2026-03-12 23:10:17,049 - WARNING - Exception in QuickCam capture thread. [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1010) I asked Google Gemini about this and here is what it said: That error message is the "smoking gun." SSLV3_ALERT_HANDSHAKE_FAILURE confirms that the P2S is using an older or specific security protocol that modern, "secure" Linux environments (like your Synology's Docker containers) are now programmed to reject by default. Is there any way that you could use a less secure TLS handshake to make this work?
Author
Owner

@ddetton commented on GitHub (Mar 13, 2026):

This is interesting.

https://github.com/greghesp/ha-bambulab/issues/1602#issuecomment-3448502886

Google Gemini thinks that I can load a docker instance of webrtc to handle the video stream. I will be trying this out.

<!-- gh-comment-id:4051306444 --> @ddetton commented on GitHub (Mar 13, 2026): This is interesting. https://github.com/greghesp/ha-bambulab/issues/1602#issuecomment-3448502886 Google Gemini thinks that I can load a docker instance of webrtc to handle the video stream. I will be trying this out.
Author
Owner

@DMoenning commented on GitHub (Mar 13, 2026):

Im using homeassistant with the Addon go2rtc.

I've configured my P2S there and I have a fluent 1080 stream. When I link it in bambuddy settings as external cam for P2S, I get the same problem like when I'm using the default cam for P2S.

So it must be something in bambuddy.

So @ddetton your rtc Container won't fix it

<!-- gh-comment-id:4052682574 --> @DMoenning commented on GitHub (Mar 13, 2026): Im using homeassistant with the Addon go2rtc. I've configured my P2S there and I have a fluent 1080 stream. When I link it in bambuddy settings as external cam for P2S, I get the same problem like when I'm using the default cam for P2S. So it must be something in bambuddy. So @ddetton your rtc Container won't fix it
Author
Owner

@ddetton commented on GitHub (Mar 13, 2026):

I finally got go2rtc to display the video stream from the P2S. I'm running a go2rtc docker container . It finally started working when I changed my stream url to use rstps:

rtsps://bblp:[access_id]@192.168.101.41:322/streaming/live/1

With go2rtc, I can type this url into a browser window and the stream appears:

http://192.168.101.21:1984/stream.html?src=p2s_camera

The URL is the box go2rtc is on. None of this works in bambuddy but hopefully this will help @maziggy figure this out.

<!-- gh-comment-id:4053590269 --> @ddetton commented on GitHub (Mar 13, 2026): I finally got go2rtc to display the video stream from the P2S. I'm running a go2rtc docker container . It finally started working when I changed my stream url to use rstps: ``` rtsps://bblp:[access_id]@192.168.101.41:322/streaming/live/1 ``` With go2rtc, I can type this url into a browser window and the stream appears: ``` http://192.168.101.21:1984/stream.html?src=p2s_camera ``` The URL is the box go2rtc is on. None of this works in bambuddy but hopefully this will help @maziggy figure this out.
Author
Owner

@ddetton commented on GitHub (Mar 13, 2026):

Im using homeassistant with the Addon go2rtc.

I've configured my P2S there and I have a fluent 1080 stream. When I link it in bambuddy settings as external cam for P2S, I get the same problem like when I'm using the default cam for P2S.

So it must be something in bambuddy.

So @ddetton your rtc Container won't fix it

@dmoenning I tried to follow the directions to get the camera working in HA but it was very confusing. The help gives you three options to load the go2rtc server side with the third option being deploy your own docker container, which is what I did. It appears that I just need to do the UI side of things now but I'm too tired to figure it out now. Thanks!

<!-- gh-comment-id:4053611553 --> @ddetton commented on GitHub (Mar 13, 2026): > Im using homeassistant with the Addon go2rtc. > > I've configured my P2S there and I have a fluent 1080 stream. When I link it in bambuddy settings as external cam for P2S, I get the same problem like when I'm using the default cam for P2S. > > So it must be something in bambuddy. > > So [@ddetton](https://github.com/ddetton) your rtc Container won't fix it @dmoenning I tried to follow the directions to get the camera working in HA but it was very confusing. The help gives you three options to load the go2rtc server side with the third option being deploy your own docker container, which is what I did. It appears that I just need to do the UI side of things now but I'm too tired to figure it out now. Thanks!
Author
Owner

@maziggy commented on GitHub (Mar 13, 2026):

Two changes in the latest build targeting this:

  1. TLS compatibility fix
    ffmpeg in the Docker image uses GnuTLS (not OpenSSL) for TLS. Debian's hardened GnuTLS defaults may be rejecting the P2S firmware's TLS renegotiation after the initial handshake succeeds — which would explain why ffmpeg connects and gets frames but the session drops after ~3 seconds. Added a GnuTLS config that allows unsafe renegotiation and legacy cipher compatibility.

  2. Faster RTSP reconnect
    Even if the P2S still drops sessions, the reconnect cycle is now much faster:

  • ffmpeg fast-start flags (-probesize 32 -analyzeduration 0 -fflags nobuffer -flags low_delay) to produce frames sooner
  • Reconnect delay reduced from 1.0s to 0.2s
  • Startup check reduced from 0.5s to 0.1s
  • Per-cycle overhead drops from ~3-4s to under 1s

Also fixed external camera streams (e.g. go2rtc) being choppy due to double rate-limiting in the proxy layer, so that path works smoothly as a fallback too.

@ddetton @DMoenning — please test with branch test/issue_661 and let me know if the stream is smoother. If it still drops, enable debug logging and share a support package — the new build includes GnuTLS debug output that will show us the exact TLS failure reason.

<!-- gh-comment-id:4054491913 --> @maziggy commented on GitHub (Mar 13, 2026): Two changes in the latest build targeting this: 1. TLS compatibility fix ffmpeg in the Docker image uses GnuTLS (not OpenSSL) for TLS. Debian's hardened GnuTLS defaults may be rejecting the P2S firmware's TLS renegotiation after the initial handshake succeeds — which would explain why ffmpeg connects and gets frames but the session drops after ~3 seconds. Added a GnuTLS config that allows unsafe renegotiation and legacy cipher compatibility. 2. Faster RTSP reconnect Even if the P2S still drops sessions, the reconnect cycle is now much faster: - ffmpeg fast-start flags (-probesize 32 -analyzeduration 0 -fflags nobuffer -flags low_delay) to produce frames sooner - Reconnect delay reduced from 1.0s to 0.2s - Startup check reduced from 0.5s to 0.1s - Per-cycle overhead drops from ~3-4s to under 1s Also fixed external camera streams (e.g. go2rtc) being choppy due to double rate-limiting in the proxy layer, so that path works smoothly as a fallback too. @ddetton @DMoenning — please test with branch test/issue_661 and let me know if the stream is smoother. If it still drops, enable debug logging and share a support package — the new build includes GnuTLS debug output that will show us the exact TLS failure reason.
Author
Owner

@ddetton commented on GitHub (Mar 13, 2026):

We are making progress! With internal camera selected, it connects successfully and displays a still image then does pause and refresh but still shows the same image. With external camera selected, RSTP stream and url pointing to my go2rtc instance, it fails to connect. I noticed the url for the external camera shows up as [bambuddy_url]/camera/1. When external camera is selected with New Window, can you just open the window with the specified url? When I enter my go2rtc url manually in a browser window, I get full motion video. Just so you can see the difference, I created a video of bambuddy pointing at internal camera and another video of the go2rtc instance manually entered in a browser. This download link expires on 3/20/26. Thanks!

https://erugo.detton.me/shares/cool-shadow-black-meadow

<!-- gh-comment-id:4058295701 --> @ddetton commented on GitHub (Mar 13, 2026): We are making progress! With internal camera selected, it connects successfully and displays a still image then does pause and refresh but still shows the same image. With external camera selected, RSTP stream and url pointing to my go2rtc instance, it fails to connect. I noticed the url for the external camera shows up as [bambuddy_url]/camera/1. When external camera is selected with New Window, can you just open the window with the specified url? When I enter my go2rtc url manually in a browser window, I get full motion video. Just so you can see the difference, I created a video of bambuddy pointing at internal camera and another video of the go2rtc instance manually entered in a browser. This download link expires on 3/20/26. Thanks! https://erugo.detton.me/shares/cool-shadow-black-meadow
Author
Owner

@rice1204 commented on GitHub (Mar 14, 2026):

Just discovered bambuddy. Amazing software!

Just wanted to report that I'm able to get very smooth (15-20fps) 1080p video on v0.2.2b4-daily.20260313. No discernable drops after watching the stream for about 10 minutes. My bambuddy instance is a fresh docker install. The printer is set to cloud connection with LAN video on.

<!-- gh-comment-id:4059716398 --> @rice1204 commented on GitHub (Mar 14, 2026): Just discovered bambuddy. Amazing software! Just wanted to report that I'm able to get very smooth (15-20fps) 1080p video on v0.2.2b4-daily.20260313. No discernable drops after watching the stream for about 10 minutes. My bambuddy instance is a fresh docker install. The printer is set to cloud connection with LAN video on.
Author
Owner

@maziggy commented on GitHub (Mar 14, 2026):

please try again with branch test/issue_661.

<!-- gh-comment-id:4060173763 --> @maziggy commented on GitHub (Mar 14, 2026): please try again with branch test/issue_661.
Author
Owner

@ddetton commented on GitHub (Mar 14, 2026):

Just discovered bambuddy. Amazing software!

Just wanted to report that I'm able to get very smooth (15-20fps) 1080p video on v0.2.2b4-daily.20260313. No discernable drops after watching the stream for about 10 minutes. My bambuddy instance is a fresh docker install. The printer is set to cloud connection with LAN video on.

@rice1204 Are you using a P2S? I just tried that daily build with LAN Only and again set to Cloud and I get no video stream on my P2S from BamBuddy. I am on firmware 01.01.03.00.

<!-- gh-comment-id:4061329785 --> @ddetton commented on GitHub (Mar 14, 2026): > Just discovered bambuddy. Amazing software! > > Just wanted to report that I'm able to get very smooth (15-20fps) 1080p video on v0.2.2b4-daily.20260313. No discernable drops after watching the stream for about 10 minutes. My bambuddy instance is a fresh docker install. The printer is set to cloud connection with LAN video on. @rice1204 Are you using a P2S? I just tried that daily build with LAN Only and again set to Cloud and I get no video stream on my P2S from BamBuddy. I am on firmware 01.01.03.00.
Author
Owner

@ddetton commented on GitHub (Mar 14, 2026):

please try again with branch test/issue_661.

@maziggy No change from yesterday. internal cam stuck on still image and external times out. I can access the stream directly from go2rtc and it's totally fine. My support log is attached.

bambuddy-support-20260314-123320.zip

<!-- gh-comment-id:4061340067 --> @ddetton commented on GitHub (Mar 14, 2026): > please try again with branch test/issue_661. @maziggy No change from yesterday. internal cam stuck on still image and external times out. I can access the stream directly from go2rtc and it's totally fine. My support log is attached. [bambuddy-support-20260314-123320.zip](https://github.com/user-attachments/files/25999698/bambuddy-support-20260314-123320.zip)
Author
Owner

@rice1204 commented on GitHub (Mar 14, 2026):

Oops! overlooked the test branch. I'll try that out when I get a chance.

@ddetton yes, this is on p2s. FW version 01.01.01.00 (the one that came from factory for me). I haven't tried other fw yet

<!-- gh-comment-id:4061537848 --> @rice1204 commented on GitHub (Mar 14, 2026): Oops! overlooked the test branch. I'll try that out when I get a chance. @ddetton yes, this is on p2s. FW version 01.01.01.00 (the one that came from factory for me). I haven't tried other fw yet
Author
Owner

@ddetton commented on GitHub (Mar 14, 2026):

@rice1204 You might want to stick with 01.01.01.00. Yours works and mine does not. I am going to look into whether it's possible to downgrade firmware.

Ok, I downgraded my P2S to the same firmware @rice1204 is running 01.01.01.00 and tried it against test/issue_661, latest, and daily and I still can not get the video stream from the P2S. I also tried it in LAN Only/Developer mode and Cloud enabled and still nothing. WTF is different?

<!-- gh-comment-id:4061669870 --> @ddetton commented on GitHub (Mar 14, 2026): @rice1204 You might want to stick with 01.01.01.00. Yours works and mine does not. I am going to look into whether it's possible to downgrade firmware. Ok, I downgraded my P2S to the same firmware @rice1204 is running 01.01.01.00 and tried it against test/issue_661, latest, and daily and I still can not get the video stream from the P2S. I also tried it in LAN Only/Developer mode and Cloud enabled and still nothing. WTF is different?
Author
Owner

@rice1204 commented on GitHub (Mar 15, 2026):

@ddetton

  • On the printer, did you reconfirm LAN video is on in the settings?
  • Also, I installed ffmpeg on the docker host as noted in the docs.

Those are the only 2 things I've changed out of the box that I can think of.

<!-- gh-comment-id:4061920224 --> @rice1204 commented on GitHub (Mar 15, 2026): @ddetton - On the printer, did you reconfirm LAN video is on in the settings? - Also, I installed ffmpeg on the docker host as noted in the docs. Those are the only 2 things I've changed out of the box that I can think of.
Author
Owner

@ddetton commented on GitHub (Mar 15, 2026):

@rice1204

I have LAN Liveview enabled on the printer. Not sure if this is what you're calling LAN Video. Where did you find ffmpeg in the docs? Is it installed as another service in docker? I installed a go2rtc service in docker but not ffmpeg.

UPDATE: I just checked and ffmpeg 7.1.3 is baked into the bambuddy container. Not sure what else would need to be done related to this.

<!-- gh-comment-id:4061982924 --> @ddetton commented on GitHub (Mar 15, 2026): @rice1204 I have LAN Liveview enabled on the printer. Not sure if this is what you're calling LAN Video. Where did you find ffmpeg in the docs? Is it installed as another service in docker? I installed a go2rtc service in docker but not ffmpeg. UPDATE: I just checked and ffmpeg 7.1.3 is baked into the bambuddy container. Not sure what else would need to be done related to this.
Author
Owner

@rice1204 commented on GitHub (Mar 15, 2026):

Sorry, I'm out of ideas. If you're running docker version, ffmpeg should already be included in the image.

I thought the setting on the printer was called LAN video but it could have been LAN liveview. When I get home, I'll try to get a photo of the exact configuration setting that enabled the camera.

<!-- gh-comment-id:4062017507 --> @rice1204 commented on GitHub (Mar 15, 2026): Sorry, I'm out of ideas. If you're running docker version, ffmpeg should already be included in the image. I thought the setting on the printer was called LAN video but it could have been LAN liveview. When I get home, I'll try to get a photo of the exact configuration setting that enabled the camera.
Author
Owner

@ddetton commented on GitHub (Mar 15, 2026):

@maziggy

Got some help today from Google Gemini. We were able to get the P2S video stream to play in bambuddy using the external camera and go2rtc. I don't fully understand the solution but it's fast, reliable and has a decent frame rate. Here is the go2rtc.yaml config:

streams:
  # This is the primary stream from your P2S
  p2s_camera:
    - rtsps://bblp:[access_id]@192.168.101.41:322/streaming/live/1

  p2s_mjpeg:
    - "ffmpeg:http://127.0.0.1:1984/api/stream.mp4?src=p2s_camera#video=mjpeg#args=-r 2"

Here is the MJPEG url in BamBuddy:

http://192.168.101.21:1984/api/stream.mjpeg?src=p2s_mjpeg

Maybe you could set this up to see why this works and then refactor it into something a little more straight forward. Let me know if you need me to do anything for you.

<!-- gh-comment-id:4062555399 --> @ddetton commented on GitHub (Mar 15, 2026): @maziggy Got some help today from Google Gemini. We were able to get the P2S video stream to play in bambuddy using the external camera and go2rtc. I don't fully understand the solution but it's fast, reliable and has a decent frame rate. Here is the go2rtc.yaml config: ``` streams: # This is the primary stream from your P2S p2s_camera: - rtsps://bblp:[access_id]@192.168.101.41:322/streaming/live/1 p2s_mjpeg: - "ffmpeg:http://127.0.0.1:1984/api/stream.mp4?src=p2s_camera#video=mjpeg#args=-r 2" ``` Here is the MJPEG url in BamBuddy: ``` http://192.168.101.21:1984/api/stream.mjpeg?src=p2s_mjpeg ``` Maybe you could set this up to see why this works and then refactor it into something a little more straight forward. Let me know if you need me to do anything for you.
Author
Owner

@maziggy commented on GitHub (Mar 15, 2026):

THe question is: what's different on your side? We have plenty of P2S users and don't received a bug report beside yours.

<!-- gh-comment-id:4062567873 --> @maziggy commented on GitHub (Mar 15, 2026): THe question is: what's different on your side? We have plenty of P2S users and don't received a bug report beside yours.
Author
Owner

@DMoenning commented on GitHub (Mar 15, 2026):

I had the same bug since day 1. I started using bambuddy when u promoted it on reddit. I always thought anyone would have created anysway for the problem. But this wasn't the case.

<!-- gh-comment-id:4062705129 --> @DMoenning commented on GitHub (Mar 15, 2026): I had the same bug since day 1. I started using bambuddy when u promoted it on reddit. I always thought anyone would have created anysway for the problem. But this wasn't the case.
Author
Owner

@maziggy commented on GitHub (Mar 15, 2026):

Mhhh.....your Docker network is set to mode host?

<!-- gh-comment-id:4062712348 --> @maziggy commented on GitHub (Mar 15, 2026): Mhhh.....your Docker network is set to mode host?
Author
Owner

@maziggy commented on GitHub (Mar 15, 2026):

Please try again with dev branch.

<!-- gh-comment-id:4062760258 --> @maziggy commented on GitHub (Mar 15, 2026): Please try again with dev branch.
Author
Owner

@ddetton commented on GitHub (Mar 15, 2026):

@maziggy

I wish I knew what is different on my side! I am running BamBuddy (sqlite) in a Docker container on a Synology DS-918+ running DSM 7.2-64570. Docker 24.0.2. ffmpeg 7.1.3. I have tried P2S firmware 01.01.01.00 and 01.01.03.00. On the P2S, I have LAN Only enabled, Dev mode enabled, LAN LiveView enabled. Firefox browser version 148.02 on Windows 11 Pro 25H2. What other specifics are relevant to this discussion?

I built the dev branch today and when external camera is disabled, live video just times out. When I enable external camera and point to my go2rtc instance, live video streaming works beautifully on the P2S using the same url and configuration as yesterday's post.

I have attached today's support log. The last thing I did was set the external camera to point to go2rtc. Just before that, I had external camera disabled.

bambuddy-support-20260315-104623.zip

Here is my docker compose file. Let me know if you recommend any changes.

services:
  bambuddy:
#    image: maziggy/bambuddy:0.2.2b4-daily.20260314
#    image: ghcr.io/maziggy/bambuddy:latest
    build: .    # This tells it to use the local files in the current folder    
    container_name: bambuddy
    user: "1026:100"
    network_mode: host
    # Add these lines to help the container stop faster on Synology
    stop_signal: SIGKILL
    stop_grace_period: 5s
    volumes:
# Change these paths to match your actual Synology folder structure
      - /volume1/docker/bambuddy/data:/app/data
      - /volume1/docker/bambuddy/logs:/app/logs
    environment:
      - TZ=America/Los_Angeles
      - PORT=8080
      - DEBUG=true         # Set to 'true' for detailed troubleshooting
      - LOG_LEVEL=DEBUG    # Options: DEBUG, INFO, WARNING, ERROR
      - HA_URL=https://xyz.ui.nabu.casa/
      - HA_TOKEN=xyz
    restart: unless-stopped
<!-- gh-comment-id:4063635903 --> @ddetton commented on GitHub (Mar 15, 2026): @maziggy I wish I knew what is different on my side! I am running BamBuddy (sqlite) in a Docker container on a Synology DS-918+ running DSM 7.2-64570. Docker 24.0.2. ffmpeg 7.1.3. I have tried P2S firmware 01.01.01.00 and 01.01.03.00. On the P2S, I have LAN Only enabled, Dev mode enabled, LAN LiveView enabled. Firefox browser version 148.02 on Windows 11 Pro 25H2. What other specifics are relevant to this discussion? I built the dev branch today and when external camera is disabled, live video just times out. When I enable external camera and point to my go2rtc instance, live video streaming works beautifully on the P2S using the same url and configuration as yesterday's post. I have attached today's support log. The last thing I did was set the external camera to point to go2rtc. Just before that, I had external camera disabled. [bambuddy-support-20260315-104623.zip](https://github.com/user-attachments/files/26007638/bambuddy-support-20260315-104623.zip) Here is my docker compose file. Let me know if you recommend any changes. ``` services: bambuddy: # image: maziggy/bambuddy:0.2.2b4-daily.20260314 # image: ghcr.io/maziggy/bambuddy:latest build: . # This tells it to use the local files in the current folder container_name: bambuddy user: "1026:100" network_mode: host # Add these lines to help the container stop faster on Synology stop_signal: SIGKILL stop_grace_period: 5s volumes: # Change these paths to match your actual Synology folder structure - /volume1/docker/bambuddy/data:/app/data - /volume1/docker/bambuddy/logs:/app/logs environment: - TZ=America/Los_Angeles - PORT=8080 - DEBUG=true # Set to 'true' for detailed troubleshooting - LOG_LEVEL=DEBUG # Options: DEBUG, INFO, WARNING, ERROR - HA_URL=https://xyz.ui.nabu.casa/ - HA_TOKEN=xyz restart: unless-stopped ```
Author
Owner

@maziggy commented on GitHub (Mar 16, 2026):

I don't know the Synology system, maybe there's something different with the Docker installation or environment.

I would install Bambuddy on another host not running on the NAS to see if that makes any difference.

<!-- gh-comment-id:4065936143 --> @maziggy commented on GitHub (Mar 16, 2026): I don't know the Synology system, maybe there's something different with the Docker installation or environment. I would install Bambuddy on another host not running on the NAS to see if that makes any difference.
Author
Owner

@ddetton commented on GitHub (Mar 19, 2026):

I don't know the Synology system, maybe there's something different with the Docker installation or environment.

I would install Bambuddy on another host not running on the NAS to see if that makes any difference.

@maziggy

I installed bambuddy 0.2.2 on my pop!-os 24.04 (based on ubuntu) machine. Video stream from P2S internal camera to Bambuddy does not work their either. If I change it to External MJPEG and point to my go2rtc server, it works beautifully. This install is using a more modern version of docker too. It's still a mystery.

<!-- gh-comment-id:4087277922 --> @ddetton commented on GitHub (Mar 19, 2026): > I don't know the Synology system, maybe there's something different with the Docker installation or environment. > > I would install Bambuddy on another host not running on the NAS to see if that makes any difference. @maziggy I installed bambuddy 0.2.2 on my pop!-os 24.04 (based on ubuntu) machine. Video stream from P2S internal camera to Bambuddy does not work their either. If I change it to External MJPEG and point to my go2rtc server, it works beautifully. This install is using a more modern version of docker too. It's still a mystery.
Author
Owner

@maziggy commented on GitHub (Mar 20, 2026):

Sorry, but I have no more ideas. What I know is that there are lots of P2S users. Perhaps it would be a good idea, to post your issue in our Discord channel. Other P2S users may give you some hints.

<!-- gh-comment-id:4097394158 --> @maziggy commented on GitHub (Mar 20, 2026): Sorry, but I have no more ideas. What I know is that there are lots of P2S users. Perhaps it would be a good idea, to post your issue in our Discord channel. Other P2S users may give you some hints.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/bambuddy#435
No description provided.