[package]
name = "rivet-transcoder"
version.workspace = true
edition.workspace = true
license-file = "LICENSE.md"
readme = "README.md"
repository.workspace = true
authors.workspace = true
description = "Modular GPU-accelerated video transcoding library, CLI, and HTTP/IPC service (AV1 + Opus, MP4/CMAF-HLS). Imported as `rivet`; CLI is `rivet`."
[lib]
name = "rivet"
path = "src/lib.rs"
[[bin]]
name = "rivet"
path = "src/main.rs"
[dependencies]
codec.workspace = true
container.workspace = true
anyhow.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
clap.workspace = true
tokio.workspace = true
bytes.workspace = true
tempfile.workspace = true
ravif = { version = "0.11", default-features = false, features = ["threading"], optional = true }
rgb = { version = "0.8", optional = true }
axum = { version = "0.8", optional = true }
serde = { version = "1", features = ["derive"], optional = true }
serde_json = { version = "1", optional = true }
serde_yaml_ng = { version = "0.10", optional = true }
glob = { version = "0.3", optional = true }
uuid = { version = "1", features = ["v4"], optional = true }
[dev-dependencies]
tempfile.workspace = true
tower = { version = "0.5", features = ["util"] }
[features]
default = []
ffmpeg = ["codec/ffmpeg"]
qsv = ["codec/qsv"]
nvidia = ["codec/nvidia"]
amd = ["codec/amd"]
thumbnail = ["dep:ravif", "dep:rgb"]
server = ["dep:axum", "dep:serde", "dep:serde_json", "dep:uuid", "tokio/net", "codec/serde"]
ipc = []
batch = ["dep:serde", "dep:serde_json", "dep:serde_yaml_ng", "dep:glob", "codec/serde"]