Skip to main content

Cast a screen to WLED

Reason this release was yanked:

incorrect version no

Project description

A cross platform python application for capturing an area of your screen and streaming it to any WLED device over UDP using the DDP realtime protocol.

Maybe I just wasn't lookig very hard, but I didn't find a simple tool already existing that does this.

This was mostly created with the idea of casting to an LED matrix in mind, but there's no reason you couldn't use it to cast to a strip or an alien covered in strips. You'd just need to use your imagination a bit more to work out what mapped where.

There are loads of cool visualisations on youtube etc that look good even at relatively low resolution

Issues and PRs are welcomed. This is still alpha at the moment. I have only really tested on windows but theoretically it should work on linux and MacOS too.

Features

  • Autodiscovers WLED devices on your network. Choose which to cast to.
  • Pick a window to cast
  • The aspect ratio of the wled configuration is autodiscovered and applied to the casting area
  • Filters for saturation, contrast, brightness, sharpness and rgb balance are included. The values can be edited in the console menu on the fly while casting. Scale r, g, b down (ie less than 1) if you need sp you as not to have values overflow and clip. The default values work well for the 16x16 matrices from Aliexoress I have, but experiment as there is no doubt variation
  • The area being cast is clearly displayed with a red border
  • Move and scale the capture area with the keyboard (Ctrl + arrows to move, Alt+arrows to scale). Alternatively left click on the red border to drag it around, right click and move up/down to scale.
  • Decent performance - I get around 60-65fps with all filters enabled with the fps limiter off. This is really a little too fast for WS2812bs if you have a quite a few on a pin, so the fps is limited to 25 by default

Options (none required)

|:----------------------------|:-------------------------------------------------------------------------------------------------------------------| | --title TITLE | Cast the window whost title contains TITLE | | --fps FPS | Limit fps to FPS. 500 LEDS per GPIO is stable up to around 40Hz on and ESP32-WROOM for me but YMMV | | --host HOST | Skip network discovery and cast to this IP address | | --live-preview | Show the output in a preview pane on the computer | | --search-timeout TIMEOUT | Timeout for WLED network discovery, defaults to 3s. Increase if your latency is higher and devices are not found. | | --dxcam | A more performant capture with DirectX, only works on windows with primary monitor I believe |

To implement: --output-resolution Skip resolution discovery from WLED and use this (format 64x32)

Installation


It will soon be published to pypi for installation with pip.

Create and activate a conda/venv, If you aren't sure how, I recommend micromamba as it's very lightweight and fast:

micromamba create -n wledcast -c conda-forge python=3.10
micromamba activate wledcast

Clone the repo, install dependencies, run

git clone https://github.com/ppamment/wledcast.git
cd wledcast
python -m pip install -r requirements.txt
python main.py

Licence


GPLv3, See the LICENCE file

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wledcast-1.0.0.tar.gz (48.5 kB view details)

Uploaded Source

Built Distribution

wledcast-1.0.0-py3-none-any.whl (38.2 kB view details)

Uploaded Python 3

File details

Details for the file wledcast-1.0.0.tar.gz.

File metadata

  • Download URL: wledcast-1.0.0.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for wledcast-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a649e04f7539f8b77bf1ccbefa75f557f73fbc3e70642ae0a7ac8669279fd3f2
MD5 ab7d52f6ab0fc90d7fa1d8c3b0bd0cb6
BLAKE2b-256 6c42ae9fb6a6e75c8c1efa8e8f09ec0335e0a88cc91e890eaf3c60d4319881a5

See more details on using hashes here.

File details

Details for the file wledcast-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: wledcast-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 38.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for wledcast-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8717c336079cbb8f85b3448c28656b1d2acabe994e89a0e820b4cdf28f06da45
MD5 3f9c5e70a5cac87e359444d9511409a8
BLAKE2b-256 62b1f9a28ae10087664ff02609d1bfb84ffbc25883185ffd62c6bc671ae9c624

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page