Metadata-Version: 2.5
Name: qrstream-headless
Version: 0.10.5
Summary: Encode and decode files via QR code video streams using LT fountain codes and RaptorQ
Project-URL: Homepage, https://github.com/ddddavid-he/qrstream-enhanced
Project-URL: Repository, https://github.com/ddddavid-he/qrstream-enhanced.git
Project-URL: Issues, https://github.com/ddddavid-he/qrstream-enhanced/issues
Author-email: David He <hewei201031l@outlook.com>
License: MIT License
        
        Copyright (c) 2026 David He
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: erasure-code,fountain-code,lt-code,luby-transform,opencv,qr-code,raptorq,video-transfer
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.10
Requires-Dist: av>=17.0.0
Requires-Dist: numpy>=2.0.0
Requires-Dist: opencv-python-headless>=4.10.0
Requires-Dist: raptorq-wheel>=2.0.0
Requires-Dist: rich>=13.7.0
Requires-Dist: zxing-cpp!=3.1.0,>=3.0.0
Provides-Extra: gui
Description-Content-Type: text/markdown

# QRStream

[中文](README-zh.md) · [Web receiver](https://ddddavid-he.github.io/qrstream-enhanced/) · [User guide](docs/USAGE.md)

Transfer files through QR code streams: display them on a computer, then recover the file with a phone camera or from a recording. RaptorQ is the default codec; legacy LT streams are also supported by the CLI.

## Quick start

Requires Python 3.10 or newer. Install with pip (or `uv tool install qrstream`):

```bash
pip install qrstream
```

Display a file as QR codes on your computer:

```bash
qrstream encode report.pdf
```

On your phone, open the **[Web receiver](https://ddddavid-he.github.io/qrstream-enhanced/)**, allow camera access, point at the screen and press the red shutter. Save the file when recovery finishes.

The browser supports **V4 / RaptorQ** streams. It processes camera frames and file contents on your device, without uploading them. Downloads are named `qrstream-output.bin`; rename the file to its original extension.

## Camera controls

- **Red shutter:** start or pause reception. Pause retains collected blocks.
- **Stop:** clear collected blocks and progress while keeping the preview running. Confirm first if data has been collected.
- **Resolution:** tap the upper-left label to cycle through supported modes; file progress is retained.
- **Details / save:** open receiver information or save the recovered file. The ring reaches 100% only after recovery.

## Video files

Create a QR video, or recover a file from a recorded video:

```bash
qrstream encode report.pdf -o report.mp4
qrstream decode recording.mp4 -o recovered.pdf
```

Use `qrs` as a short alias. Run `qrstream encode --help` or `qrstream decode --help` for options.

## Documentation and development

- [User guide](docs/USAGE.md): full options, calibration, Python API, Web development and troubleshooting context.
- [Architecture](docs/ARCH.md): modules, protocols and test tooling.
- [Contributing](docs/CONTRIBUTING.md): development, branches, CI and releases.

To work from this repository:

```bash
git clone https://github.com/ddddavid-he/qrstream-enhanced.git
cd qrstream-enhanced
uv sync --dev
```

Web changes merged into `main` are built and deployed by the [Pages workflow](.github/workflows/pages.yml).

## License

MIT
