Files
convertis/README.md
T
Elias Wendland e9d25c6fbc
Release / build (push) Canceled after 0s
Release / package (deb) (push) Canceled after 0s
Release / package (rpm) (push) Canceled after 0s
Release / publish (push) Canceled after 0s
Release / check-release (push) Canceled after 11s
CI / test (push) Canceled after 14s
Release 0.2.0
2026-07-17 15:59:05 +02:00

83 lines
3.0 KiB
Markdown

# Convertis
Convertis 0.3 is a modular Linux CLI for routing files through independently installed conversion plugins. The base `convertis` package contains the engine and no converters.
## Installation
Install the engine first:
```sh
sudo apt install convertis
# or
sudo dnf install convertis
```
Then install only the plugins you need. Each plugin is a separate package:
```sh
sudo apt install convertis-native-image
sudo apt install convertis-ffmpeg-video convertis-ffmpeg-audio
```
Convenience bundles are available:
- `convertis-ffmpeg`: all FFmpeg plugins, including frame extraction and assembly.
- `convertis-image`: native image, ASCII, ImageMagick, and GraphicsMagick plugins.
- `convertis-plugins-all`: every official plugin.
When no installed route can perform a conversion, Convertis prints the individual package or packages that provide one.
### Raw release
The release page contains a raw `x86_64-unknown-linux-gnu` executable and one ZIP containing all official `.so` plugins. Extract its `plugins/` directory beside the executable. Plugins can also be placed directly beside the executable, in `~/.local/lib/convertis/plugins`, or in `/usr/lib/convertis/plugins`.
Plugins use an exact-version Rust ABI. A plugin must have been built for the same Convertis release; incompatible libraries are rejected before loading.
## Usage
```sh
convertis input.png output.ico
convertis input.mp4 frames/ --to frames
convertis frames/ output.mp4
convertis input.png output.txt --option width=120
```
Input formats are detected from file contents. The output extension indicates the requested target and can be overridden with `--to`. Use `--from` only when content detection cannot recognize a format.
Frame extraction creates numbered images and `.convertis-frames.json`, which preserves the source frame rate and timing for the frames-to-video plugin. External frame folders without metadata use lexical ordering and 30 FPS by default.
Useful inspection commands:
```sh
convertis --list-plugins
convertis --list-formats
convertis --help
```
Use `--no-default-plugins` with explicit `--plugin-dir` arguments to run in an isolated plugin environment.
Plugin settings use repeatable `--option key=value` arguments. A plugin-qualified key such as `ffmpeg-frames-to-video.fps=24` can disambiguate settings in a multi-plugin route.
## Building
Build the engine and every official plugin:
```sh
cargo build --release --workspace
```
The engine is `target/release/convertis`; plugins are `target/release/libconvertis_*.so`.
## Plugin API
The workspace crate `convertis-plugin-api` defines the exact-version Rust trait used by official plugins. Plugin metadata is checked through a small C-compatible entry point before the Rust factory is called. The official plugin crates are the reference examples; ABI compatibility across Convertis releases is not promised.
## Platforms
Version 0.3 supports 64-bit GNU/Linux. There is no planned support for other platforms or 32-bit.
ARM support is being considered.
## License
Convertis is licensed under GPL-3.0-only. See [LICENSE](LICENSE).