pixop-process

pixop-process

Process video files or directories through the same digest-pinned Pixop LIVE Docker image used for live enhancement. Runs as the invoking user for normal jobs (no sudo). Uses host Docker with GPU passthrough as defined in the execution plan.

Version note: Confirm on your appliance with pixop-version, command -v pixop-process, and pixop-process -h. Your image may ship a smaller CLI surface than this page.

Usage

pixop-process [-h] [--preset PRESET] [--list-presets]
              [--show-preset NAME|PATH] [--docs] [--dry-run]
              [--overwrite] [--continue-on-error]
              [--env KEY=VALUE] [--docker-arg ARG]
              [input] [output]
              [-- EXTRA_NVENCC_ARGS...]
ModeArgumentsBehavior
Preset introspection--list-presets, --show-preset, --docsNo Docker, no license
FileINPUT OUTPUT --preset NAMESingle transcode/enhance
DirectoryINDIR OUTDIR --preset NAMERecursive; relative tree preserved

Processing jobs require INPUT, OUTPUT, and --preset.

Quick start

pixop-process --list-presets
pixop-process --show-preset 4k-hlg
pixop-process input.mxf output.mp4 --preset 4k-hlg
pixop-process /data/input /data/output --preset 4k-hlg --dry-run
pixop-process --docs

Options

OptionSafe / mutatingDescription
--preset PRESETConfigFactory, site, local name, or path to .toml
--list-presetsRead-onlyNames + descriptions (no _-prefixed internal bases)
--show-preset NAME|PATHRead-onlyFully resolved preset (inheritance, env redacted secrets)
--docsRead-onlyPrints operator guide via pager (less) when TTY; else stdout
--dry-runRead-onlyResolved docker command per job; no containers
--overwriteMutatingReplace non-empty existing outputs
--continue-on-errorMutatingDirectory mode: keep going after a failed file
--env KEY=VALUEMutatingInjected into docker run (repeatable; secrets redacted in sidecar)
--docker-arg ARGMutatingExtra docker run arg before image (repeatable; not for -e/--env)

Arguments after -- pass additional NVEncC CLI tokens (merged after preset args). Reserved NVEncC options cannot be set in preset TOML; use CLI -- for overrides documented in the full guide.

Preset layers and version gate

LayerPathOverwritten on image apply?
Factory/opt/pixop/share/process-presets/Refreshed with appliance
Site/etc/pixop-live/process-presets/Never overwritten by apply
Local./.pixop/presets/ (cwd)Operator-managed

Resolution order for a name: local → site → factory (first file wins). extends in TOML supports single parent chains; preset version = 1 required (other versions rejected).

Internal inheritance-only presets start with _ (for example _base-pixop-hlg); hidden from --list-presets but resolvable with --show-preset.

Operator-facing factory presets (examples)

PresetTypical use
4k-hlg, 4k-pq, 4kUHD output grades
1080p, 1080p-interlaced, 16x9, 16x9-interlacedHD / aspect targets
1x, 2xSpatial scale factors
sdr-hlg, sdr-pqSDR → HDR conversion paths
bicubic-*Reference bicubic grades (quality baseline)
transcodeSource resolution, no Pixop filter

Run --list-presets on the appliance for the authoritative list and descriptions.

Input / output constraints

RuleDetail
Video suffixes.mp4, .mov, .mkv, .mxf, .ts, .m2ts, .avi, .mpg, .mpeg
File modeOutput must be a file path if input is a file
Directory modeOutput must be a directory; refuses output inside input tree
SymlinksSkipped during directory discovery
Output namingstem + preset.output_extension (often .mp4)
CollisionsTwo inputs mapping to same output → error
Existing outputSkipped unless --overwrite and size > 0

Execution and sidecars

ArtifactPurpose
Final mediaWritten atomically (via *.pixop-partial rename)
<output>.pixop.logResolved preset, image ref, docker command, transcript
SimpleVQARecorded when Pixop filter runs — not for transcode preset

--dry-run prints the same header blocks without running Docker.

License and LIVE interaction

Preset typeLicense
Uses Pixop filter (most presets)Readable /etc/pixop-live/license.jwt (or staged copy for user namespace)
transcodeNo Pixop filter — license not required

If pixop-live.service is active, stderr warning:

warning: pixop-live.service is active; file processing may compete for GPU resources

Prefer off-hours batch jobs on a live encoder, or pixop-stack stop for exclusive GPU use.

--docs behavior

Does not open a browser or URL. On a TTY it runs $PAGER (default less -FRX) on /opt/pixop/share/docs/pixop-process.md when that file is installed on the appliance.

Environment overrides (advanced)

VariableDefault
PIXOP_PROCESS_LIVE_ENV/etc/pixop-live/live.env (image digest source)
PIXOP_PROCESS_FACTORY_PRESETS/opt/pixop/share/process-presets
PIXOP_PROCESS_SITE_PRESETS/etc/pixop-live/process-presets
PIXOP_PROCESS_LOCAL_PRESETS$PWD/.pixop/presets
PIXOP_PROCESS_DOCKER/usr/bin/docker

Exit codes

CodeMeaning
0Success or dry-run complete
1Processing failure (or last failed file without --continue-on-error)
2Invalid arguments / usage error

Task matrix

TaskCommand
Pick a grade--list-presets / --show-preset NAME
Validate batch plan... --dry-run
Single file enhancein.mxf out.mp4 --preset 4k-hlg
Batch treeindir/ outdir/ --preset 1080p --continue-on-error
Site custom presetDrop my-grade.toml in /etc/pixop-live/process-presets/
Extra NVEncC flags... --preset 4k-hlg -- --bitrate 50000 (example)
Read full guidepixop-process --docs

Troubleshooting

IssueCheck
preset not foundSpelling; site vs factory path; --show-preset for resolution
license errorspixop-license status; KVM pixop-install license
Docker GPU errorsGPU requirements (FAQ); driver/image match
OOM / slow with LIVE upStop live stack or use maintenance window

Related


Did this page help you?