Skip to content

Latest commit

 

History

History
84 lines (59 loc) · 3.13 KB

File metadata and controls

84 lines (59 loc) · 3.13 KB

Basics

X1 and P2S

The X1 series and P2S printers run a RTSP server that streams video over the network.

Local RTSP Server

  • URL: rtsps://{PRINTER_IP}:322/streaming/live/1
  • TLS: yes
  • Authentication: required
  • Username: bblp
  • Password: dev_access_code from a Device object (aka the LAN access code).

H2 series

H2S and H2D printers also serve the same rtsps://{PRINTER_IP}:322/streaming/live/1 RTSPS feed, but on the firmwares observed (H2S 01.02.00.00, H2D 01.02.00.00) the LAN-RTSPS server appears to be off by default: port 322 closes the TCP connection immediately and the printer's push_status reports ipcam.rtsp_url = "disable".

To enable it, on the printer's touchscreen:

  1. Settings → General → LAN Mode Liveview (label varies by firmware track)
  2. Toggle "LAN Only Liveview" / "Local RTSP Stream" to on.

After the toggle, push_status reports ipcam.rtsp_url = "rtsps://{PRINTER_IP}:322/streaming/live/1" and the port begins accepting connections. The same bblp + dev_access_code credentials apply.

If the local toggle is left off, the printer is still reachable via the proprietary cloud-relay transports (TUTK / Agora P2P) and the slicer's MediaPlayCtrl path falls through to those automatically; only the direct rtsps:// URL is gated.

A1 and P1

The A1 and P1 series printers run a simple TCP server that streams 1280x720 JPEG images over the network. Integers are encoded in little-endian byte order.

Local Video Server

  • Host: {PRINTER_IP}:6000
  • TLS: yes
  • Authentication: required
  • Username: bblp
  • Password: dev_access_code from a Device object (aka the LAN access code).

Authentication

This packet must be sent when connecting to the server.

Offset Size Value
0 4 bytes Inlined Payload size (0x40)
4 4 bytes Type (0x3000)
8 4 bytes Flags (0)
12 4 bytes 0
16 32 bytes Username encoded as ASCII, right-padded with null bytes.
48 32 bytes Password encoded as ASCII, right-padded with null bytes.

Header

The server sends a 16-byte header for each frame.

Offset Size Value
0 4 bytes Payload size
4 4 bytes itrack (0)
8 4 bytes Flags (1)
12 4 bytes 0

Image

After the header, the server sends a total of payload size bytes containing the JPEG image.

The image data might be received in multiple chunks (e.g. up to 4096 bytes each), depending on the programming language and operating system. These chunks need to be concatenated to reconstruct the complete image.

The following magic bytes can be checked to verify that the image has been successfully received:

  • Start of Image: FF D8
  • End of Image: FF D9