Skip to content

CLI

The videonode binary runs the daemon with no subcommand, and exposes a small set of subcommands for validation, schema export, and entity CRUD. This page lists those subcommands and the flags they share.

Subcommands

CommandPurposeNotable flags
(none)Start the daemon (HTTP API, RTSP/SRT/WebRTC, pipeline supervisor)-c, --config, plus every [section] override flag
validate-encodersProbe H.264 and H.265 encoders and write the results to streams.toml-q, --quiet, --streams-config
validate-configCheck streams.toml for dangling upstream refs, layout entries pointing at unknown inputs, ID collisions, and source test_mode/device conflicts--streams-config
openapiDump the OpenAPI spec to stdout
versionPrint build version and metadata--json
source list|get|create|deleteCRUD over /api/sources--api-url, --username, --password, -f, --file (create)
composer list|get|create|deleteCRUD over /api/composers--api-url, --username, --password, -f, --file (create)
stream list|get|create|deleteCRUD over /api/streams--api-url, --username, --password, -f, --file (create)

The source, composer, and stream groups are thin REST clients (cmd/httpclient.go): each subcommand calls the matching endpoint on a running daemon, so it mirrors the documented REST API rather than adding behavior. create reads its JSON body from --file or stdin; get and delete take the entity id as a positional argument.

API-client flags

The CRUD subcommands resolve their target with the same precedence as the rest of the CLI: flag, then environment variable, then default.

FlagEnvironment variableDefault
--api-urlVIDEONODE_API_URLhttp://localhost:8090
--usernameVIDEONODE_USERNAMEvideonode
--passwordVIDEONODE_PASSWORDvideonode

For daemon configuration flags and their env overrides, see the config.toml reference.