Capabilities
GET /api/capabilities
Requires: read (viewer+)
Returns static hardware and software capabilities of this Composer instance: CUDA devices, NVENC/NVDEC support, NDI runtime, DeckLink devices, fonts, disk space, and FFmpeg. Read-only, responds immediately. Useful for capacity planning, feature-gate checks, and diagnostic tooling.
The same snapshot is also served by the Runtime API at GET /runtime/capabilities; that endpoint remains available while the project is in Idle state, whereas /api/capabilities is gated by DisableWebApiWhenNotRunning like the other project-level endpoints.
Parameters: None
Response: 200 OK — JSON object:
{
"runtime": {
"binaryPath": "C:\\Program Files\\Vindral Composer\\VindralComposerDesktop.exe",
"version": "2.6.9609.28197"
},
"cuda": {
"driverVersion": "12.40",
"deviceCount": 1,
"activeDeviceId": 0,
"devices": [
{
"index": 0,
"name": "NVIDIA GeForce RTX 4090",
"computeCapability": "8.9",
"totalMemoryMb": 24564,
"multiProcessorCount": 128,
"clockRateMhz": 2520,
"memoryClockRateMhz": 10501,
"computeMode": "Default",
"tccDriver": false,
"eccEnabled": false,
"pciBusId": 1,
"pciDeviceId": 0
}
]
},
"nvenc": {
"available": true,
"supportedCodecs": ["H264", "HEVC", "AV1"],
"maxConcurrentSessions": "8"
},
"nvdec": {
"codecs": [
{
"codec": "H264",
"bitDepth": 8,
"supported": true,
"numDecoders": 2,
"maxWidth": 4096,
"maxHeight": 4096,
"minWidth": 48,
"minHeight": 48
}
]
},
"ndi": {
"runtimePresent": true
},
"decklink": {
"devices": ["DeckLink Mini Recorder 4K"],
"channels": [
{ "index": 0, "name": "DeckLink Mini Recorder 4K (1)" }
]
},
"fonts": {
"count": 245,
"families": ["Arial", "Calibri", "..."]
},
"storage": {
"drives": [
{
"name": "C:\\",
"totalSizeMb": 953869,
"availableFreeMb": 512345,
"format": "NTFS",
"type": "Fixed"
}
]
},
"ffmpeg": {
"version": "6.1.1-realsprint",
"path": "C:\\ffmpeg6p2\\bin\\",
"executable": "C:\\ffmpeg6p2\\bin\\ffmpeg.exe"
},
"timestamp": "2026-04-24T12:00:00.0000000Z"
}
Each subsystem is gathered in its own try/catch; on a per-section failure, that subsection is replaced by { "error": "<message>" } so a single broken query (e.g. FFmpeg not loaded) does not break the rest of the response.
Response fields:
runtime object
| Field | Type | Description |
|---|---|---|
binaryPath |
string | Full path to the running Composer executable (Desktop or Runtime) |
version |
string | Assembly version of the entry binary |
cuda object
| Field | Type | Description |
|---|---|---|
driverVersion |
string | NVIDIA CUDA driver version |
deviceCount |
int | Number of CUDA-capable devices |
activeDeviceId |
int | Device index selected by Composer for rendering |
devices |
array | Per-device details (see below) |
Each device:
| Field | Type | Description |
|---|---|---|
index |
int | Device index |
name |
string | GPU product name |
computeCapability |
string | CUDA compute capability (e.g. "8.9") |
totalMemoryMb |
long | Total GPU memory in MB |
multiProcessorCount |
int | Number of streaming multiprocessors |
clockRateMhz |
int | Core clock rate in MHz |
memoryClockRateMhz |
int | Memory clock rate in MHz |
computeMode |
string | CUDA compute mode (Default, ExclusiveThread, Prohibited, ExclusiveProcess) |
tccDriver |
bool | Whether TCC (Tesla Compute Cluster) driver mode is active |
eccEnabled |
bool | Whether ECC memory is enabled |
pciBusId |
int | PCI bus ID |
pciDeviceId |
int | PCI device ID |
nvenc object
| Field | Type | Description |
|---|---|---|
available |
bool | Whether NVENC hardware encoding is available |
supportedCodecs |
string[] | Codecs the GPU can encode (H264, HEVC, AV1) |
maxConcurrentSessions |
string | Max concurrent encode sessions ("8" for GeForce/consumer, "unlimited" for professional/datacenter) |
nvdec object
codecs array — each entry:
| Field | Type | Description |
|---|---|---|
codec |
string | Codec name (H264, HEVC, VP9, AV1) |
bitDepth |
int | Bit depth (8 or 10) |
supported |
bool | Whether this codec/depth combo is supported |
numDecoders |
int | Number of NVDEC engines on the GPU |
maxWidth |
uint | Maximum decode width in pixels |
maxHeight |
uint | Maximum decode height in pixels |
minWidth |
int | Minimum decode width in pixels |
minHeight |
int | Minimum decode height in pixels |
ndi object
| Field | Type | Description |
|---|---|---|
runtimePresent |
bool | Whether the NDI runtime library is installed and initialized |
decklink object
| Field | Type | Description |
|---|---|---|
devices |
string[] | Distinct DeckLink device names |
channels |
array | Per-channel details with index and name |
fonts object
| Field | Type | Description |
|---|---|---|
count |
int | Total number of installed font families |
families |
string[] | Sorted list of font family names |
storage object
drives array — each entry:
| Field | Type | Description |
|---|---|---|
name |
string | Drive root path (e.g. "C:\") |
totalSizeMb |
long | Total drive size in MB |
availableFreeMb |
long | Available free space in MB |
format |
string | File system format (NTFS, ext4, etc.) |
type |
string | Drive type (Fixed, Removable, Network, etc.) |
ffmpeg object
| Field | Type | Description |
|---|---|---|
version |
string | FFmpeg version string as reported by av_version_info() |
path |
string | Path to the FFmpeg libraries in use (Windows: bin directory; Linux: .so library directory) |
executable |
string | Absolute path to the ffmpeg executable, or "" if it could not be resolved. On Windows this is path\ffmpeg.exe; on Linux it is the first ffmpeg found on $PATH |