Skip to main content

Lightspeed video decoding directly into tensors!

Project description

Release and Benchmark Tests License PyPI Version PyPI - Downloads Python Versions Discord

CeLux

Originally created by Trentonom0r3

CeLux is a high‑performance Python library for video processing, leveraging the power of libav(FFmpeg). It delivers some of the fastest decode times for full‑HD videos globally, enabling efficient video decoding directly into PyTorch tensors—and now simplified, one‑call audio muxing straight from a tensor. At present, CeLux offers limited, but functional encoding support.

The name CeLux comes from the Latin words celer (speed) and lux (light), reflecting its commitment to speed and efficiency.

Example

from celux import VideoReader

vr = VideoReader("input.mp4")

frame_ts = vr.frame_at(12.34)   # by timestamp
frame_idx = vr.frame_at(1000)   # by frame index

print(frame_ts.shape, frame_ts.dtype)
print(frame_idx.shape, frame_idx.dtype)

📚 Documentation

🚀 Features

  • Ultra‑Fast Video Decoding: Lightning‑fast decode times for full‑HD videos using hardware acceleration.
  • 🔗 Direct Decoding to Tensors: Frames come out as PyTorch tensors (HWC layout by default).
  • 🔊 Simplified Audio Encoding: One call to encode_audio_tensor() streams raw PCM into the encoder.
  • 🔄 Easy Integration: Drop‑in replacement for your existing Python + PyTorch workflows.

Q: How do I report a bug or request a feature?

A: Open an issue on our GitHub Issues with as much detail as you can (FFmpeg version, platform, repro steps, etc.).

⚡ Quick Start

pip install celux

FOR LINUX

  • Download the most recent release (.whl)
pip install ./*.whl
from celux import VideoReader
import torch

reader = VideoReader("/path/to/input.mp4")
with reader.create_encoder("/path/to/output.mp4") as enc:
    # 1) Re‑encode video frames
    for frame in reader:
        enc.encode_frame(frame)

    # 2) If there’s audio, hand off the entire PCM in one go:
    if reader.has_audio:
        pcm = reader.audio.tensor().to(torch.int16)
        enc.encode_audio_frame(pcm)

print("Done!")

📄 License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.

🙏 Acknowledgments

  • FFmpeg: The backbone of video processing in CeLux.
  • PyTorch: For tensor operations and CUDA support.
  • Vcpkg: Simplifies cross‑platform dependency management.
  • @NevermindNilas: For assistance with testing, API suggestions, and more.

🚤 Roadmap

  • Support for Additional Codecs:
    • Expand hardware‑accelerated decoding/muxing support to VP9, AV1, etc.
  • Audio Filters & Effects:
    • Add simple audio‑only filters (gain, resample, stereo panning).
  • Advanced Muxing Options:
    • Expose more container parameters (subtitle tracks, chapters).
  • Cross‑Platform CI:
    • Ensure Windows, macOS, Linux builds all pass full audio+video tests. (My current focus is windows, would love help getting linux side working as well!)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

nelux-0.8.2-cp313-cp313-win_amd64.whl (12.8 MB view details)

Uploaded CPython 3.13Windows x86-64

File details

Details for the file nelux-0.8.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: nelux-0.8.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nelux-0.8.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 982b4017c2d64dc4b03fabbf6b5698ac907c45c7258aa3d473eab921c0ed9b97
MD5 a2dd05d86dce29c07288a73d3b7f7cff
BLAKE2b-256 f85de891803134d93461c28e6cb12bc3f8f58ff2029e1dee6e47eeda9df6c2c8

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