[](https://github.com/Trentonom0r3/CeLux/actions/workflows/createRelease.yaml)
[](https://github.com/Trentonom0r3/CeLux/blob/master/LICENSE)
[](https://pypi.org/project/celux/)
[](https://pypi.org/project/celux/)
[](https://pypi.org/project/celux/)
[](https://discord.gg/hFSHjGyp4p)
[](https://coff.ee/spigonvidsu)
# CeLux
**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.
# [Check out the latest changes](https://github.com/Trentonom0r3/CeLux/blob/master/docs/CHANGELOG.md#version-0651)
- Removed DLLS, Adjusted CI/CD
- Added linux build
## 📚 Documentation
- [📝 Changelog](https://github.com/Trentonom0r3/CeLux/blob/master/docs/CHANGELOG.md)
- [🍎 Audio & Muxing Guide](https://github.com/Trentonom0r3/CeLux/blob/master/docs/FAQ.md#audio)
- [📊 Benchmarks](https://github.com/NevermindNilas/python-decoders-benchmarks/blob/main/1280x720_diagram.png)
## 🚀 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](https://github.com/Trentonom0r3/celux/issues) with as much detail as you can (FFmpeg version, platform, repro steps, etc.).
## ⚡ Quick Start
```bash
pip install celux
```
```python
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_tensor(pcm)
print("Done!")
```
## 📄 License
This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. See the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- **[FFmpeg](https://ffmpeg.org/):** The backbone of video processing in CeLux.
- **[PyTorch](https://pytorch.org/):** For tensor operations and CUDA support.
- **[Vcpkg](https://github.com/microsoft/vcpkg):** Simplifies cross‑platform dependency management.
- **[@NevermindNilas](https://github.com/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!)
Raw data
{
"_id": null,
"home_page": null,
"name": "celux",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.13",
"maintainer_email": null,
"keywords": "ffmpeg, video, ml, pytorch, decode, tensors, inference",
"author": null,
"author_email": "Trenton Flanagan <spigonvids@gmail.com>",
"download_url": null,
"platform": null,
"description": "[](https://github.com/Trentonom0r3/CeLux/actions/workflows/createRelease.yaml)\r\n[](https://github.com/Trentonom0r3/CeLux/blob/master/LICENSE)\r\n[](https://pypi.org/project/celux/)\r\n[](https://pypi.org/project/celux/)\r\n[](https://pypi.org/project/celux/)\r\n[](https://discord.gg/hFSHjGyp4p)\r\n[](https://coff.ee/spigonvidsu)\r\n\r\n# CeLux\r\n\r\n**CeLux** is a high\u2011performance Python library for video processing, leveraging the power of libav(FFmpeg). It delivers some of the fastest decode times for full\u2011HD videos globally, enabling efficient video decoding directly into PyTorch tensors\u2014and now simplified, one\u2011call audio muxing straight from a tensor. At present, CeLux offers ***limited, but functional*** encoding support.\r\n\r\nThe name **CeLux** comes from the Latin words _celer_ (speed) and _lux_ (light), reflecting its commitment to speed and efficiency.\r\n\r\n\r\n# [Check out the latest changes](https://github.com/Trentonom0r3/CeLux/blob/master/docs/CHANGELOG.md#version-0651)\r\n\r\n- Removed DLLS, Adjusted CI/CD\r\n- Added linux build\r\n\r\n## \ud83d\udcda Documentation\r\n\r\n- [\ud83d\udcdd Changelog](https://github.com/Trentonom0r3/CeLux/blob/master/docs/CHANGELOG.md)\r\n- [\ud83c\udf4e Audio & Muxing Guide](https://github.com/Trentonom0r3/CeLux/blob/master/docs/FAQ.md#audio)\r\n- [\ud83d\udcca Benchmarks](https://github.com/NevermindNilas/python-decoders-benchmarks/blob/main/1280x720_diagram.png)\r\n\r\n\r\n## \ud83d\ude80 Features\r\n\r\n- \u26a1 **Ultra\u2011Fast Video Decoding:** Lightning\u2011fast decode times for full\u2011HD videos using hardware acceleration.\r\n- \ud83d\udd17 **Direct Decoding to Tensors:** Frames come out as PyTorch tensors (`HWC` layout by default).\r\n- \ud83d\udd0a **Simplified Audio Encoding:** One call to `encode_audio_tensor()` streams raw PCM into the encoder.\r\n- \ud83d\udd04 **Easy Integration:** Drop\u2011in replacement for your existing Python + PyTorch workflows.\r\n\r\n### Q: How do I report a bug or request a feature?\r\n\r\n**A:** Open an issue on our [GitHub Issues](https://github.com/Trentonom0r3/celux/issues) with as much detail as you can (FFmpeg version, platform, repro steps, etc.).\r\n\r\n\r\n## \u26a1 Quick Start\r\n\r\n```bash\r\npip install celux\r\n```\r\n\r\n```python\r\nfrom celux import VideoReader\r\nimport torch\r\n\r\nreader = VideoReader(\"/path/to/input.mp4\")\r\nwith reader.create_encoder(\"/path/to/output.mp4\") as enc:\r\n # 1) Re\u2011encode video frames\r\n for frame in reader:\r\n enc.encode_frame(frame)\r\n\r\n # 2) If there\u2019s audio, hand off the entire PCM in one go:\r\n if reader.has_audio:\r\n pcm = reader.audio.tensor().to(torch.int16)\r\n enc.encode_audio_tensor(pcm)\r\n\r\nprint(\"Done!\")\r\n```\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. See the [LICENSE](LICENSE) file for details.\r\n\r\n## \ud83d\ude4f Acknowledgments\r\n\r\n- **[FFmpeg](https://ffmpeg.org/):** The backbone of video processing in CeLux.\r\n- **[PyTorch](https://pytorch.org/):** For tensor operations and CUDA support.\r\n- **[Vcpkg](https://github.com/microsoft/vcpkg):** Simplifies cross\u2011platform dependency management.\r\n- **[@NevermindNilas](https://github.com/NevermindNilas):** For assistance with testing, API suggestions, and more.\r\n\r\n## \ud83d\udea4 Roadmap\r\n\r\n- **Support for Additional Codecs:** \r\n - Expand hardware\u2011accelerated decoding/muxing support to VP9, AV1, etc. \r\n- **Audio Filters & Effects:** \r\n - Add simple audio\u2011only filters (gain, resample, stereo panning). \r\n- **Advanced Muxing Options:** \r\n - Expose more container parameters (subtitle tracks, chapters). \r\n- **Cross\u2011Platform CI:** \r\n - Ensure Windows, macOS, Linux builds all pass full audio+video tests.\r\n (My current focus is windows, would love help getting linux side working as well!)\r\n",
"bugtrack_url": null,
"license": "AGPL-3.0",
"summary": "Lightspeed video decoding directly into tensors!",
"version": "0.6.5.2",
"project_urls": {
"Changelog": "https://github.com/Trentonom0r3/celux/blob/master/docs/CHANGELOG.md",
"Documentation": "https://github.com/Trentonom0r3/celux/blob/master/README.md",
"Homepage": "https://github.com/Trentonom0r3/celux",
"Issues": "https://github.com/Trentonom0r3/celux/issues",
"Repository": "https://github.com/Trentonom0r3/celux"
},
"split_keywords": [
"ffmpeg",
" video",
" ml",
" pytorch",
" decode",
" tensors",
" inference"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2a8e0c17e0a85b47d0892410bfb0791a42523db7dd198274a7b5bcb18dccc078",
"md5": "9a78b501e0a3908a2a98950025c64c62",
"sha256": "da066bd3d96aa94fb21aac6b21a21b18650060f3ef6842cacd4b85a31cb4e372"
},
"downloads": -1,
"filename": "celux-0.6.5.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9a78b501e0a3908a2a98950025c64c62",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.13",
"size": 17423,
"upload_time": "2025-07-30T05:51:20",
"upload_time_iso_8601": "2025-07-30T05:51:20.334657Z",
"url": "https://files.pythonhosted.org/packages/2a/8e/0c17e0a85b47d0892410bfb0791a42523db7dd198274a7b5bcb18dccc078/celux-0.6.5.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-30 05:51:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Trentonom0r3",
"github_project": "celux",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "celux"
}