4.1 KiB
VfxApply Presets Documentation
Preset keys
Common keys
| Key | Type | Description
|------.------------|----------------|-------------------------------------------
| preset/name | String | A description string for this preset
| preset/group | String|Null | Logical grouping
| preset/plugin | String | The id of the plugin this preset is for
| preset/props | Array | Properties used by the plugin
| preset/params | Array|Null | Parameters for tweaking
Properties
ffmpeg
| Property | Type | Description |
|---|---|---|
filter |
String | The filter string, with optional param placeholders |
extra |
*String | Null* |
type |
*Enum | Null* |
natron
| Property | Type | Description
|------.------------|--------------------|-------------------------------------------
| project | String | Natron project file name
| input | String|Int|Null | Extra options to pass on the ffmpeg command line
| output | String|Int|Null | ffmpeg filter type; One of complex, audio or video
| framescale | Float | Ratio of output frames to input files, 2.0=twice as many out as in=half speed
executor
| Property | Type | Description
|------.------------|--------------------|-------------------------------------------
| set | Array | Define variables
| script | Array | Define commands
| set/%/value | String | Set variable % to value.
| set/%/escape | Bool | If true, the resulting vriable will be escaped
| script/%/info | String | Info about what this step is doing
| script/%/exec | String | Command to execute
| script/%/parse | Map | Parse output from command, see docs for plugin
Parameters
All parameters must specify label and type. The remaining keys are depending on the
type of parameter.
float
Float parameters need to specify min, max, default and optionally step.
Examples
ffmpeg
preset:
name: Normalize audio level
group: ffmpeg/audio
plugin: ffmpeg
props:
filter: "dynaudnorm=m={maxgain}:s={compress}"
extra: "-c:v copy"
type: complex
params:
compress: { label:"Compression factor", type:float, min:0.0, max:30.0, default:0.0 }
maxgain: { label:"Max gain factor", type:float, min:0.0, max:100.0, default:10.0 }
natron
preset:
name: Apply a CCTV look to the video
group: natron
plugin: natron
props:
project: natron-cctv.ntp
reader: Reader1
writer: Writer1
executor
preset:
name: Stabilize video clip (two-pass)
group: video
plugin: executor
props:
set:
inputtrf: { value:"{%uinput}.trf", escape:true }
script:
analyze:
info: Getting stabilization vectors
exec: "transcode -i {%input} -J stabilize"
parse:
from: 'stderr'
regex: '/encoding frames \[0-([0-9]+?)\],\s+([0-9\.]+?) fps/'
frame:1
eta:2
stabilize:
info: Stabilizing video
exec: "transcode -i {%input} -o {%output} -J transform -y xvid"
parse:
from: 'stderr'
regex: '/encoding frames \[0-([0-9]+?)\],\s+([0-9\.]+?) fps/'
frame:1
eta:2
cleanup:
exec: "rm {%inputtrf}"