Skip to main content

A performant web native pixel delivery pipeline for diverse sources, blending VNC-inspired parallel processing of pixel buffers with flexible modern encoding formats.

Project description

pixelflux

PyPI version License: MPL 2.0

A performant web native pixel delivery pipeline for diverse sources, blending VNC-inspired parallel processing of pixel buffers with flexible modern encoding formats.

This module provides a Python interface to a high-performance C++ capture library. It captures pixel data from a source (currently X11 screen regions), detects changes, and encodes modified stripes into JPEG or H.264. It supports CPU-based encoding (libx264, libjpeg-turbo) as well as hardware-accelerated H.264 encoding via NVIDIA's NVENC and VA-API for Intel/AMD GPUs. The resulting data is delivered efficiently to your Python application via a callback mechanism.

Installation

This module relies on a native C++ extension that is compiled during installation.

  1. Prerequisites (for Debian/Ubuntu): Ensure you have a C++ compiler (g++) and development files for Python, X11, Xfixes, XShm, libjpeg-turbo, and libx264. These are required for the base software encoding functionality.

    sudo apt-get update && \
    sudo apt-get install -y \
      g++ \
      libavcodec-dev \
      libdrm-dev \
      libjpeg-turbo8-dev \
      libva-dev \
      libx11-dev \
      libx264-dev \
      libxext-dev \
      libxfixes-dev \
      libyuv-dev \
      python3-dev
    
  2. Hardware Acceleration (Optional but Recommended):

    • NVIDIA (NVENC): No extra packages are needed at compile time. If you have the NVIDIA driver installed, the library will be detected and used automatically at runtime.
    • Intel/AMD (VA-API): The libva-dev and libdrm-dev packages listed above are sufficient for compilation. Ensure you have the correct VA-API drivers for your hardware installed (e.g., intel-media-va-driver-non-free for Intel, mesa-va-drivers for AMD).
  3. Install the Package: You can install directly from PyPI or from a local source clone.

    Option A: Install from PyPI

    pip install pixelflux
    

    Option B: Install from a local source directory

    # From the root of the project repository
    pip install .
    

    Note: The current backend is designed and tested for Linux/X11 environments.

Usage

Capture Settings

The CaptureSettings class allows for detailed configuration of the capture process.

# All attributes of the CaptureSettings object are standard ctypes properties.
settings = CaptureSettings()

# --- Core Capture ---
settings.capture_width = 1920
settings.capture_height = 1080
settings.capture_x = 0
settings.capture_y = 0
settings.target_fps = 60.0
settings.capture_cursor = True

# --- Encoding Mode ---
# 0 for JPEG, 1 for H.264
settings.output_mode = 1
# Force CPU encoding and ignore hardware encoders
capture_settings.use_cpu = False

# --- Debugging ---
settings.debug_logging = False # Enable/disable the continuous FPS and settings log to the console.

# --- JPEG Settings ---
settings.jpeg_quality = 75              # Quality for changed stripes (0-100)
settings.paint_over_jpeg_quality = 90   # Quality for static "paint-over" stripes (0-100)

# --- H.264 Settings ---
settings.h264_crf = 25                   # CRF value (0-51, lower is better quality/higher bitrate)
settings.h264_paintover_crf = 18         # CRF for H.264 paintover on static content. Must be lower than h264_crf to activate.
settings.h264_paintover_burst_frames = 5 # Number of high-quality frames to send in a burst when a paintover is triggered.
settings.h264_fullcolor = False          # Use I444 (full color) instead of I420 for software encoding
settings.h264_fullframe = True           # Encode full frames (required for HW accel) instead of just changed stripes
settings.h264_streaming_mode = False     # Bypass all VNC logic and work like a normal video encoder, higher constant CPU usage for fullscreen gaming/videos

# --- Hardware Acceleration ---
# Set to >= 0 to enable VA-API on a specific /dev/dri/renderD* node.
# Set to -1 to disable VA-API and let the system try NVENC if available.
settings.vaapi_render_node_index = -1

# --- Change Detection & Optimization ---
settings.use_paint_over_quality = True  # Enable paint-over/IDR requests for static regions
settings.paint_over_trigger_frames = 15 # Frames of no motion to trigger paint-over
settings.damage_block_threshold = 10    # Consecutive changes to trigger "damaged" state
settings.damage_block_duration = 30     # Frames a stripe stays "damaged"

# --- Watermarking ---
# Must be a bytes object. The path to your PNG image.
settings.watermark_path = b"/path/to/your/watermark.png" 
# 0:None, 1:TopLeft, 2:TopRight, 3:BottomLeft, 4:BottomRight, 5:Middle, 6:Animated
settings.watermark_location_enum = 4 

Stripe Callback and Data Structure

Your callback function receives a ctypes.POINTER(StripeEncodeResult). You must access its fields via the .contents attribute.

The StripeEncodeResult struct has the following fields:

# This is an illustrative Python representation of the C++ struct.
class StripeEncodeResult(ctypes.Structure):
    _fields_ = [
        ("type", ctypes.c_int),             # 1 for JPEG, 2 for H.264
        ("stripe_y_start", ctypes.c_int),
        ("stripe_height", ctypes.c_int),
        ("size", ctypes.c_int),             # The size of the data in bytes
        ("data", ctypes.POINTER(ctypes.c_ubyte)), # Pointer to the encoded data
        ("frame_id", ctypes.c_int),         # Frame counter for this stripe
    ]

Memory Management: The data pointed to by result.contents.data is valid only within the scope of your callback function. The C++ library automatically frees this memory after your callback returns. To use the data, you must copy it, for example by using ctypes.string_at(result.contents.data, result.contents.size).

Features

  • Efficient Pixel Capture: Leverages a native C++ module using XShm for optimized X11 screen capture performance.
  • Flexible Encoding Backends:
    • Software: libx264 (H.264) and libjpeg-turbo (JPEG).
    • Hardware: NVIDIA NVENC and VA-API (Intel, AMD).
  • Stripe-Based Processing: For software encoding, can divide the screen into horizontal stripes and process them in parallel across CPU cores.
  • Change Detection: Encodes only stripes that have changed (based on an XXH3 hash comparison) since the last frame, significantly reducing processing load and bandwidth for software encoding modes.
  • Dynamic Watermarking: Overlay a PNG image on the captured video. The watermark can be pinned to a corner, centered, or animated to bounce around the screen.
  • Dynamic Quality Optimizations:
    • Paint-Over for Static Regions: After a region remains static for paint_over_trigger_frames, it is resent at high quality (JPEG) or as a new IDR frame (H.264) to correct any compression artifacts.
    • Damage Throttling: For highly active regions, the system can temporarily reduce the frequency of change detection to save CPU cycles.
  • Direct Callback Mechanism: Provides encoded stripe data directly to your Python code for real-time processing or streaming.

Example: Real-time H.264 Streaming with WebSockets

A comprehensive example, screen_to_browser.py, is located in the example directory of this repository. This script demonstrates robust, real-time screen capture, H.264 encoding, and streaming via WebSockets. It sets up:

  • An asyncio-based WebSocket server to stream encoded H.264 frames.
  • An HTTP server to serve a client-side HTML page for viewing the stream.
  • The pixelflux module to perform the screen capture and encoding.
  • Dynamic capture region selection via the URL hash.

To run this example:

Note: This example assumes you are on a Linux host with a running X11 session.

  1. First, ensure you have the websockets library installed:

    pip install websockets
    
  2. Navigate to the example directory within the repository:

    cd example
    
  3. Execute the Python script:

    python3 screen_to_browser.py
    
  4. Open your web browser to view the live stream. You can control the capture area:

    • http://localhost:9001: Captures from the screen's top-left corner (x=0).
    • http://localhost:9001/#50: Captures a region starting at x=50.
    • You can open multiple browser tabs with different hash values to see multiple, independent capture sessions running from the single server instance.

License

This project is licensed under the Mozilla Public License Version 2.0. A copy of the MPL 2.0 can be found at https://mozilla.org/MPL/2.0/.

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

pixelflux-1.4.7.tar.gz (232.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pixelflux-1.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp314-cp314t-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp314-cp314t-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

pixelflux-1.4.7-cp314-cp314-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp314-cp314-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp314-cp314-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp314-cp314-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

pixelflux-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp313-cp313-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp313-cp313-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pixelflux-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp312-cp312-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp312-cp312-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pixelflux-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp311-cp311-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp311-cp311-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pixelflux-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp310-cp310-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp310-cp310-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pixelflux-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp39-cp39-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp39-cp39-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

pixelflux-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

pixelflux-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl (27.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

pixelflux-1.4.7-cp38-cp38-manylinux_2_28_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

pixelflux-1.4.7-cp38-cp38-manylinux_2_28_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

File details

Details for the file pixelflux-1.4.7.tar.gz.

File metadata

  • Download URL: pixelflux-1.4.7.tar.gz
  • Upload date:
  • Size: 232.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for pixelflux-1.4.7.tar.gz
Algorithm Hash digest
SHA256 6966a6b899f23c6abf62aa3e4df04d79326b626a207a635f1c939d8ca72c5f8b
MD5 8e3d80a8e42f28c2ae965a538888fabf
BLAKE2b-256 dca96510374ca73377ef5f2410c27d3bf5b025fd8f899fb64e864c4b0a045fe7

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eebc8ab365046c3ecb659621cd29369f713a17e512fea2197a65fb738c5b5814
MD5 bb6ad8936cf9df506461998b82b6424c
BLAKE2b-256 fd44f94d2f7a98ebb2a12d545953623e73a7c9a181bd65730f4b084a8be5ff0a

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3cb5ac78e74709ab8be743c316c94bd32ea6496ab1a4c8a5c9d2db8601bc01e9
MD5 697ff40f87cb4990d27f369dea8bd4f6
BLAKE2b-256 52822ae78594a16c1a4d20ebf6b24ae8691c87f2c6cc6f4a6bcabe6edcc97f23

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f27baa22562a2c08206258ccbb05a74dadfe10cdf15ace66743af7cf00c03b0
MD5 64ac5aad0f9fe4a8e2ea2f19c3fdbead
BLAKE2b-256 697ab3d8bcc653588021fa9b0d46aa77c01a91fa43d41e38808ac0d2f6c4b726

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1f651e8b15c7a102050eb841bcdf7576f3b0187bca90c94d40759943247c2b75
MD5 a37fd0d3343b894d69603e2b04f512d9
BLAKE2b-256 3e82bb97075fd192df886952d386daadc6bc7832de9e865ff2c79c19188cae42

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e029975b032e2d34643166317d9def5abdb23f7421e94e4431aa0f13f72413f5
MD5 042e02719624b11a7b69947ec2140e5e
BLAKE2b-256 e87d509469e2c2eb32f56b52d3f19176297f713bec63b109f85b824d75f8da03

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5fe6f7927181318b2785c38074d249d8e1a898d9a9c7b0ca357dea5ece880068
MD5 232356412c0a366b5c153c173684d989
BLAKE2b-256 637195499ac91d0e2b7b354cf74c6f917b796609269b237f71de1b84075573e8

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 afda822ab1d9e6163e8f3eb042a7c82110972d21d319a4a66a5c21de711c4413
MD5 1fcd6001b7752e8a1ba37977c42a70a1
BLAKE2b-256 cc5bcad5b45bd0ae7083326be7ae1d18af961a9775c38b0c8d17b91953d0a933

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 48fc581f12f5c5ca4d08b8f8ed744df3cf36b0ff4a01cfb6f83ce53d1a1b60e9
MD5 60c882353069e3e280859d1ed4e56fcb
BLAKE2b-256 1796f20013fface1b61a2f94a3aff0a8e76a6b93a41dbd4b0ca4eac60f20ec5d

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5569e7bf4c21554219c2b22b37d1bbf7942a14be3f035c47420bc62edcf255b4
MD5 c389c054f17734c847239a504463d506
BLAKE2b-256 843aab09d821ce16056ad735ce04e74dfe43513f8e090b80e2994a497a006d9a

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 642bfc1cf9be34c8861e0ddbc1210749159b38ce4a28db8a7e90355fa61f1c7b
MD5 3a2ff324ffd54be625c2c6a7a0964974
BLAKE2b-256 b0a915ffafe7efb1a2554013e9c9194c08fdda81f6594d8f5d6c88247d07ab18

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f6c54d3214fe6355947656558216ecf505b6282d21a98043f446862a5f89f0b
MD5 64f6066581a62eb498f901186386ad46
BLAKE2b-256 1ada5f3721f0ad7270aab5ac1619550c4aab6fdf4069161ad5ef3ddae244836b

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 54453dd5e2b728d279d15fb0c1ac090e740f54dd822d67562a76b9712d50fc7b
MD5 cee68643aff5d45a495a5e4c2b01a27c
BLAKE2b-256 03ac88fe517c231f2189aed40372771080d325db441190e3bad24d3ca0ce967c

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0fd4080e7079545a9f536e254ffd06b2a9a273ee56b5de30450cb9d6cb96a597
MD5 d4dd99a7bc5190fd657564c14e705454
BLAKE2b-256 4484129bf3400353bc13e209972d60c3721dfe7b9861365ed8b6e895ac8dcec2

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c6b916fe09c3b9fc1735ccf38d81b836dbc97734e57ab9dedbbe70f0cbba5382
MD5 a671f2e8d454582e4b1bab490badc264
BLAKE2b-256 e76685161dbaa8660f66ac923c4fc3c017f34e8393d8a5856e0e2e817805d5f2

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6dae6d0efda90ca2765daf53daf20119091a9aa45c9cfe59974ab95e747574d6
MD5 cb932e5969b02d479436e71aff3bcd34
BLAKE2b-256 154d8c7be9d5462a6a7baa022d1d9ff1b8bc0851e3b6581985ef295e256beaa9

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 77e3c36935886f23fd47a9f706c126fee031aba7b0fb90662b27d29eb304542b
MD5 218463f3ddac78bf0ecbc23b8a51c4b4
BLAKE2b-256 1889fb9562669f70f6a199b5aaab5aa175725c198bb80bcbdf30b24d810dcbef

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2afe3fffc4af7e98c7e83f6d58e3d4553c79ed0be359c6989be9e55cb8f22904
MD5 31e7c333f6e6afdf8a1ee4c4d64c4ba8
BLAKE2b-256 be42b5b849c1ad459718cbf47b79a6c56c36997be2292ee68d17c224a6d4bf36

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5c2f550215c04ef3d43c1b078869f5363de1dfaa1d930bf3c0ae36b5f5fde5de
MD5 7149817fa970eb4dc24c4fe2c6c629f1
BLAKE2b-256 7adc93c72a6b9dc61936286a355078067ff5a0f653ff48c9c3738309d2fef96a

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f90b58abfe5dd22f2d45a16017765f1600919d5da9bfb6c6d6fd844232ea711
MD5 462772a6249afcb58908b38712f25413
BLAKE2b-256 8d3debfd489b83c349ef0c3735ac326950eb503aeba94381afee6ba1135d5cf0

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8175121fa3fac255bd60137d0e71bb9c00c8887503f21c26ea717a2dcd189c3c
MD5 df18ce110a2b4a732d7aabc16fced878
BLAKE2b-256 0c4a243c5f1491e7b6100a2c706f875c336946eeec7c7a8382a6455240f8d433

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45aaf663c5f79d8caa09bc39c0f27196829e8c71bf2d9021caed6de0a391ea45
MD5 459bc459ffe008466d6dd474952db208
BLAKE2b-256 29659d45d128d2a6ad763eb5d0f8b358b87618ba1808d195884af0ab10b47dc9

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 eab566d2780b3bf6a2e92f2baea18369f0cbae8e4bc1c96d77812538e63e4bca
MD5 1417d16cc81fe3b0a5f220e4986bfb7d
BLAKE2b-256 bf838c9c692d39a64803d2b4a64d39fc151aaaef9a4b849b13782f252c0c9118

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e79713a4b86719c97fba9f0c1d2d9d9b3eda6e8d5b12cce25f4234eca30953d9
MD5 66c7877c91ea1b9dd2ccde2d9eea05e6
BLAKE2b-256 9064bce5452b92db7965fee751ed186176a43ba0dca8b87d8d671640fadc651e

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 650ba1dbfafceb8b64ebdbee7e935928a705c341e7bc2336b6c9942bc4b7bcd3
MD5 439d3f9d4ed4046f576de90c68a3b2f7
BLAKE2b-256 4f6e832ed1b22373e0a1b80826b5dab8d38634a7f4db2bf7254b0aaea4dfe928

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d87861230b135d00271ede4c8dbaab8df2ae4472e13d4e28908a6578bebeefb
MD5 da05f243db614d2e74072e3df43d39ab
BLAKE2b-256 052d3fe3bae324c7ea4592cdfc556a7df7d9744d682d2ae27baabb199ab03b6a

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1073fefba787bd6f21263c359b129fc8661a32e8bed4a429b0844aba92fce517
MD5 7bd5991b157a9213b9991394a0ac7165
BLAKE2b-256 2509cc1a6d26eabb94d5d6c1926faf9e640b1977c32314ae76f6ec5398a78487

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 92ff5e816a316f8b90ad79e48e9edec8fe3ed6426fb1afa64c29c66e32bd13e6
MD5 3992cc5d4f54dbadffb1807d740b180a
BLAKE2b-256 6a7f1a7b392b60f98a4f607270c5c7bb8e91e333800972de77c866903975dcb6

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2dece7b0fc68d22480640abb9921fede96d11a5cd96c39cfb10747087bb7304c
MD5 0edb952f7d728318b959b10305edc275
BLAKE2b-256 1dc7fda089692cb743b9f6543cff056a2cbb8b039a8019191126c7c6f7ac58bb

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 06e857ae29502e176cf2f2b16cad2dae96dd89af297938a891b12d07c1286827
MD5 74393be23a76f67d7d6004e765ebd5a6
BLAKE2b-256 584414e0aa42b9999069600980dbcfadec958ab5771af2adb982e6a00cf731d4

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 36ee79ebb4d3c52ddd8e9279c0f0c30f9bee6c9fe0c20c70f34d019e38301d5a
MD5 cc1943a914ad9ad8e9e80db3f4107539
BLAKE2b-256 8f8d14a38aaadb921e353fab0f9add2b6a6a2b741557b76c8cb97e68ccba8069

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0c7e6d3aeff74efeae3ba2649d9fcceeac01599f1eb9af9f87e8b93a9bfa4a26
MD5 fa4a6a42db015ce94d86f6a5228db7b2
BLAKE2b-256 b26ed2f100e052776f52e140205d05cf117033e851dccec25bf79cfc4e80f1b3

See more details on using hashes here.

File details

Details for the file pixelflux-1.4.7-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pixelflux-1.4.7-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 010bcb3c009880138a97f5944defe5c0a530e42da6ad58dfcfe4580846b12605
MD5 e9fd6439166522ae0743fccce8d1a337
BLAKE2b-256 c774c10e07f82ab261b67c3d6f33db31ce5ac815558c2db233747e26c19ad046

See more details on using hashes here.

Supported by

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