1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[]
= "rivet-transcoder"
= true
= true
= "LICENSE.md"
= "README.md"
= true
= true
= "Modular GPU-accelerated video transcoding library, CLI, and HTTP/IPC service (AV1 + Opus, MP4/CMAF-HLS). Imported as `rivet`; CLI is `rivet`."
[]
= "rivet"
= "src/lib.rs"
[[]]
= "rivet"
= "src/main.rs"
[]
= true
= true
= true
= true
= true
= true
= true
= true
= true
# Optional — only for the `thumbnail` feature. ravif wraps rav1e for AVIF
# still-image encode (reuses the AV1 codec story); rgb provides the pixel
# triplet type ravif consumes.
= { = "0.11", = false, = ["threading"], = true }
= { = "0.8", = true }
# Optional — only for the `server` feature: an HTTP transcode API so another
# application can signal rivet to transcode over the network.
= { = "0.8", = true }
= { = "1", = ["derive"], = true }
= { = "1", = true }
= { = "0.10", = true }
= { = "0.3", = true }
= { = "1", = ["v4"], = true }
[]
= true
# For the `server` feature's HTTP-layer integration test (ServiceExt::oneshot
# drives the router without binding a socket). Small; tests only.
= { = "0.5", = ["util"] }
# Forward the optional ffmpeg decode backend through to the codec crate
# so `cargo build -p rivet --features ffmpeg` lights up the libavcodec
# primary decode path end-to-end.
[]
= []
= ["codec/ffmpeg"]
# Intel QSV AV1 encode via hand-rolled dlopen oneVPL FFI (no external crate;
# builds on Windows + Linux). Intel Arc / Meteor Lake+.
= ["codec/qsv"]
# NVENC AV1 encode + NVDEC decode via hand-rolled dlopen FFI (no external
# crate; builds on Windows + Linux). NVENC AV1 needs NVIDIA Ada+.
= ["codec/nvidia"]
# AMF AV1 encode via hand-rolled dlopen FFI (no external crate; builds on
# Windows + Linux). AMD RDNA3+.
= ["codec/amd"]
# AVIF single-frame thumbnail capture (pulls ravif + rav1e — a heavy
# still-image encoder — so it is opt-in).
= ["dep:ravif", "dep:rgb"]
# HTTP transcode API (`rivet serve`): an axum webserver that accepts media +
# an output spec and runs transcode jobs, so another application can signal
# rivet to transcode over the network. Pairs naturally with the hardware
# encode features (e.g. `--features server,nvidia`).
= ["dep:axum", "dep:serde", "dep:serde_json", "dep:uuid", "tokio/net"]
# `rivet ipc`: a Unix-domain-socket server so a long-running app can stream
# media in and out without HTTP or temp files. Opt-in (Unix only at runtime; on
# Windows the command exists but reports use `pipe`/`serve`). The `pipe`
# stdin/stdout streaming path is always available and needs no feature.
= []
# `rivet batch`: a YAML/JSON manifest DSL for converting many files in one run.
# Pulls serde + a YAML/JSON parser + glob. See docs/batch.md.
= ["dep:serde", "dep:serde_json", "dep:serde_yaml_ng", "dep:glob"]