[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-index":3,"doc-en-nodes":54},{"zh":4,"en":30},[5,9,12,15,18,21,24,27],{"slug":6,"title":7,"lang":8},"快速开始","快速开始 — Oak Video Editor Manual","zh",{"slug":10,"title":11,"lang":8},"基本功能","基本功能 — Oak Video Editor Manual",{"slug":13,"title":14,"lang":8},"节点","节点 — Oak Video Editor Manual",{"slug":16,"title":17,"lang":8},"LUT","LUT — Oak Video Editor Manual",{"slug":19,"title":20,"lang":8},"直方图","直方图 — Oak Video Editor Manual",{"slug":22,"title":23,"lang":8},"代理剪辑","代理剪辑 — Oak Video Editor Manual",{"slug":25,"title":26,"lang":8},"音频同步和多机位剪辑","音频同步和多机位剪辑 — Oak Video Editor Manual",{"slug":28,"title":29,"lang":8},"index","Oak Video Editor 使用手册 — Oak Video Editor Manual",[31,35,38,41,43,46,49,52],{"slug":32,"title":33,"lang":34},"quick_start","Quick Start — Oak Video Editor Manual","en",{"slug":36,"title":37,"lang":34},"basic_features","Basic Features — Oak Video Editor Manual",{"slug":39,"title":40,"lang":34},"nodes","Nodes — Oak Video Editor Manual",{"slug":42,"title":17,"lang":34},"lut",{"slug":44,"title":45,"lang":34},"histogram","Histogram — Oak Video Editor Manual",{"slug":47,"title":48,"lang":34},"proxy_editing","Proxy Editing — Oak Video Editor Manual",{"slug":50,"title":51,"lang":34},"audio_sync_and_multicam","Audio Sync and Multicam Editing — Oak Video Editor Manual",{"slug":28,"title":53,"lang":34},"Oak Video Editor User Manual — Oak Video Editor Manual",{"slug":39,"title":40,"lang":34,"html":55},"\u003C!DOCTYPE html>\n\n\u003Chtml lang=\"en\" data-content_root=\".\u002F\">\n  \u003Chead>\n    \u003Cmeta charset=\"utf-8\" \u002F>\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \u002F>\u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \u002F>\n\n    \u003Ctitle>Nodes &#8212; Oak Video Editor Manual\u003C\u002Ftitle>\n    \u003Clink rel=\"stylesheet\" type=\"text\u002Fcss\" href=\"_static\u002Fpygments.css?v=5ecbeea2\" \u002F>\n    \u003Clink rel=\"stylesheet\" type=\"text\u002Fcss\" href=\"_static\u002Fbasic.css?v=b08954a9\" \u002F>\n    \u003Clink rel=\"stylesheet\" type=\"text\u002Fcss\" href=\"_static\u002Falabaster.css?v=27fed22d\" \u002F>\n    \u003Cscript src=\"_static\u002Fdocumentation_options.js?v=7f00635f\">\u003C\u002Fscript>\n    \u003Cscript src=\"_static\u002Fdoctools.js?v=fd6eb6e6\">\u003C\u002Fscript>\n    \u003Cscript src=\"_static\u002Fsphinx_highlight.js?v=6ffebe34\">\u003C\u002Fscript>\n    \u003Clink rel=\"index\" title=\"Index\" href=\"genindex.html\" \u002F>\n    \u003Clink rel=\"search\" title=\"Search\" href=\"search.html\" \u002F>\n    \u003Clink rel=\"next\" title=\"LUT\" href=\"lut.html\" \u002F>\n    \u003Clink rel=\"prev\" title=\"Basic Features\" href=\"basic_features.html\" \u002F>\n   \n  \u003Clink rel=\"stylesheet\" href=\"_static\u002Fcustom.css\" type=\"text\u002Fcss\" \u002F>\n  \n\n  \n  \n\n  \u003C\u002Fhead>\u003Cbody>\n  \n\n    \u003Cdiv class=\"document\">\n      \u003Cdiv class=\"documentwrapper\">\n        \u003Cdiv class=\"bodywrapper\">\n          \n\n          \u003Cdiv class=\"body\" role=\"main\">\n            \n  \u003Csection id=\"nodes\">\n\u003Ch1>Nodes\u003Ca class=\"headerlink\" href=\"#nodes\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>Oak uses a node-based compositing and effects system. Every clip, effect, transition, and compositing operation is represented as a node in the node graph. By connecting node inputs and outputs, you can flexibly control video and audio.\u003C\u002Fp>\n\u003Csection id=\"node-graph-basics\">\n\u003Ch2>Node Graph Basics\u003Ca class=\"headerlink\" href=\"#node-graph-basics\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>\u003Cstrong>Node\u003C\u002Fstrong>: The smallest processing unit. A node has several \u003Cstrong>inputs\u003C\u002Fstrong> and produces an output through its own computation.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Input \u002F Output\u003C\u002Fstrong>: A node’s output can feed another node’s input. After connecting, data flows downstream frame by frame.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Context\u003C\u002Fstrong>: Sequences, Tracks, Blocks, and NodeGroups can all act as contexts, used to organize and frame a group of nodes. Double-clicking a clip enters that clip’s node context.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Keyframes\u003C\u002Fstrong>: Most numeric, color, and vector inputs can vary over time using keyframe animation.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"common-built-in-node-categories\">\n\u003Ch2>Common Built-in Node Categories\u003Ca class=\"headerlink\" href=\"#common-built-in-node-categories\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh2>\n\u003Csection id=\"project-media-timeline\">\n\u003Ch3>Project \u002F Media \u002F Timeline\u003Ca class=\"headerlink\" href=\"#project-media-timeline\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable class=\"docutils align-default\">\n\u003Ccolgroup>\n\u003Ccol style=\"width: 25.0%\" \u002F>\n\u003Ccol style=\"width: 75.0%\" \u002F>\n\u003C\u002Fcolgroup>\n\u003Cthead>\n\u003Ctr class=\"row-odd\">\u003Cth class=\"head\">\u003Cp>Node\u003C\u002Fp>\u003C\u002Fth>\n\u003Cth class=\"head\">\u003Cp>Purpose\u003C\u002Fp>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Footage\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>References an external media file; the starting point for most clips.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Sequence\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>The timeline object, containing video, audio, and subtitle tracks.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Track\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>A container for same-type tracks, mixing all clips on it.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Clip\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>A media block on the timeline.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Gap\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>An empty block used as a placeholder.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Subtitle\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>A subtitle block.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Merge\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Composites two texture layers.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection id=\"generators\">\n\u003Ch3>Generators\u003Ca class=\"headerlink\" href=\"#generators\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable class=\"docutils align-default\">\n\u003Ccolgroup>\n\u003Ccol style=\"width: 25.0%\" \u002F>\n\u003Ccol style=\"width: 75.0%\" \u002F>\n\u003C\u002Fcolgroup>\n\u003Cthead>\n\u003Ctr class=\"row-odd\">\u003Cth class=\"head\">\u003Cp>Node\u003C\u002Fp>\u003C\u002Fth>\n\u003Cth class=\"head\">\u003Cp>Purpose\u003C\u002Fp>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Solid\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Generates a solid-color image.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Text\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Generates a text layer.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Polygon \u002F Shape\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Generates vector shapes.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Noise\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Generates a noise texture.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Value\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Outputs float, integer, vector, color, or matrix values.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection id=\"geometry-distort\">\n\u003Ch3>Geometry \u002F Distort\u003Ca class=\"headerlink\" href=\"#geometry-distort\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable class=\"docutils align-default\">\n\u003Ccolgroup>\n\u003Ccol style=\"width: 25.0%\" \u002F>\n\u003Ccol style=\"width: 75.0%\" \u002F>\n\u003C\u002Fcolgroup>\n\u003Cthead>\n\u003Ctr class=\"row-odd\">\u003Cth class=\"head\">\u003Cp>Node\u003C\u002Fp>\u003C\u002Fth>\n\u003Cth class=\"head\">\u003Cp>Purpose\u003C\u002Fp>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Transform\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Position, rotation, scale, anchor, auto-scale, interpolation.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Crop\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Crops the image.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Flip\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Flips horizontally or vertically.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Corner Pin\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Four-corner distortion.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Mask\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Creates and feathers a mask.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Wave \u002F Ripple \u002F Tile \u002F Swirl\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Various distortion effects.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection id=\"color-grading\">\n\u003Ch3>Color \u002F Grading\u003Ca class=\"headerlink\" href=\"#color-grading\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable class=\"docutils align-default\">\n\u003Ccolgroup>\n\u003Ccol style=\"width: 25.0%\" \u002F>\n\u003Ccol style=\"width: 75.0%\" \u002F>\n\u003C\u002Fcolgroup>\n\u003Cthead>\n\u003Ctr class=\"row-odd\">\u003Cth class=\"head\">\u003Cp>Node\u003C\u002Fp>\u003C\u002Fth>\n\u003Cth class=\"head\">\u003Cp>Purpose\u003C\u002Fp>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>OCIO LUT\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Loads and applies \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">.cube\u003C\u002Fspan>\u003C\u002Fcode> \u002F \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">.3dl\u003C\u002Fspan>\u003C\u002Fcode> LUT files.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Three-Way Color\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Shadow \u002F Midtone \u002F Highlight color wheels.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>OCIO Grading Primary (Linear)\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Contrast \u002F Offset \u002F Exposure \u002F Saturation controls.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Display Transform\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Explicit Display \u002F View \u002F Direction conversion.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection id=\"transitions\">\n\u003Ch3>Transitions\u003Ca class=\"headerlink\" href=\"#transitions\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable class=\"docutils align-default\">\n\u003Ccolgroup>\n\u003Ccol style=\"width: 25.0%\" \u002F>\n\u003Ccol style=\"width: 75.0%\" \u002F>\n\u003C\u002Fcolgroup>\n\u003Cthead>\n\u003Ctr class=\"row-odd\">\u003Cth class=\"head\">\u003Cp>Node\u003C\u002Fp>\u003C\u002Fth>\n\u003Cth class=\"head\">\u003Cp>Purpose\u003C\u002Fp>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Cross Dissolve\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Fades between two clips.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Dip to Color\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Transitions to a chosen color.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection id=\"filters-keying\">\n\u003Ch3>Filters \u002F Keying\u003Ca class=\"headerlink\" href=\"#filters-keying\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable class=\"docutils align-default\">\n\u003Ccolgroup>\n\u003Ccol style=\"width: 25.0%\" \u002F>\n\u003Ccol style=\"width: 75.0%\" \u002F>\n\u003C\u002Fcolgroup>\n\u003Cthead>\n\u003Ctr class=\"row-odd\">\u003Cth class=\"head\">\u003Cp>Node\u003C\u002Fp>\u003C\u002Fth>\n\u003Cth class=\"head\">\u003Cp>Purpose\u003C\u002Fp>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Blur\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Box \u002F Gaussian \u002F Directional \u002F Radial blur.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Mosaic\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Pixelates the image.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Stroke \u002F Drop Shadow\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Outline and shadow effects.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Chroma Key\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Color-based keying.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Color Difference Key\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Finer keying control.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Despill\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Removes green-screen spill.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection id=\"math-time-audio\">\n\u003Ch3>Math \u002F Time \u002F Audio\u003Ca class=\"headerlink\" href=\"#math-time-audio\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable class=\"docutils align-default\">\n\u003Ccolgroup>\n\u003Ccol style=\"width: 25.0%\" \u002F>\n\u003Ccol style=\"width: 75.0%\" \u002F>\n\u003C\u002Fcolgroup>\n\u003Cthead>\n\u003Ctr class=\"row-odd\">\u003Cth class=\"head\">\u003Cp>Node\u003C\u002Fp>\u003C\u002Fth>\n\u003Cth class=\"head\">\u003Cp>Purpose\u003C\u002Fp>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Math\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Performs arithmetic on inputs.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Trigonometry\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Trigonometric operations.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Time Input \u002F Time Remap \u002F Time Offset\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Control time-related animation or remap clip time.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-odd\">\u003Ctd>\u003Cp>Volume\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Adjusts audio volume.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr class=\"row-even\">\u003Ctd>\u003Cp>Pan\u003C\u002Fp>\u003C\u002Ftd>\n\u003Ctd>\u003Cp>Adjusts left\u002Fright channel balance.\u003C\u002Fp>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003C\u002Fsection>\n\u003Csection id=\"working-in-the-node-editor\">\n\u003Ch2>Working in the Node Editor\u003Ca class=\"headerlink\" href=\"#working-in-the-node-editor\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh2>\n\u003Csection id=\"adding-nodes\">\n\u003Ch3>Adding Nodes\u003Ca class=\"headerlink\" href=\"#adding-nodes\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>Right-click on empty space in the Node Editor → \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Add\u003C\u002Fspan>\u003C\u002Fcode>, then choose a category and node.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>You can also drag footage from the Footage Manager directly into the Node Editor to create a Footage node automatically.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"connecting-and-disconnecting\">\n\u003Ch3>Connecting and Disconnecting\u003Ca class=\"headerlink\" href=\"#connecting-and-disconnecting\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>Drag from a node’s output port to another node’s input port to create a connection.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Drag an existing connection’s input end to empty space to disconnect.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Drop a new node onto an existing connection to insert it automatically.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"selecting-and-moving\">\n\u003Ch3>Selecting and Moving\u003Ca class=\"headerlink\" href=\"#selecting-and-moving\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>Box selection, \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Ctrl\u003C\u002Fspan>\u003C\u002Fcode> \u002F \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Shift\u003C\u002Fspan>\u003C\u002Fcode> multi-selection.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Arrow keys nudge the selected node position.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"expanding-and-collapsing\">\n\u003Ch3>Expanding and Collapsing\u003Ca class=\"headerlink\" href=\"#expanding-and-collapsing\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>Node items can be expanded to show all connectable inputs.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Array inputs (such as a Track’s \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Blocks\u003C\u002Fspan>\u003C\u002Fcode> input) show each element when expanded.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"grouping\">\n\u003Ch3>Grouping\u003Ca class=\"headerlink\" href=\"#grouping\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>Select multiple nodes → right-click → \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Group\u003C\u002Fspan>\u003C\u002Fcode> to create a \u003Cstrong>NodeGroup\u003C\u002Fstrong>.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>The group exposes input passthroughs and an output passthrough; double-click to edit inside.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Right-click the group → \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Ungroup\u003C\u002Fspan>\u003C\u002Fcode> to restore the original layout.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"deleting\">\n\u003Ch3>Deleting\u003Ca class=\"headerlink\" href=\"#deleting\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>Select a node or connection and press \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Delete\u003C\u002Fspan>\u003C\u002Fcode>.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Deleting a node automatically disconnects all its connections.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003C\u002Fsection>\n\u003Csection id=\"keyframes\">\n\u003Ch2>Keyframes\u003Ca class=\"headerlink\" href=\"#keyframes\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>In the Param Editor, the circle next to a parameter toggles keyframing.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Once keyframing is enabled, moving the playhead and changing the parameter records a keyframe.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>Keyframe types include Linear, Hold, and Bezier.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>The \u003Cstrong>Curve Editor\u003C\u002Fstrong> panel provides finer control over keyframe curves.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"openfx-plugin-nodes\">\n\u003Ch2>OpenFX Plugin Nodes\u003Ca class=\"headerlink\" href=\"#openfx-plugin-nodes\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Oak 0.3+ supports OpenFX (OFX) plugins:\u003C\u002Fp>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>On startup, Oak scans the OFX plugin path and registers \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">ImageEffectPlugin\u003C\u002Fspan>\u003C\u002Fcode> instances as nodes.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>OFX plugins appear in the Add menu grouped by category.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>OFX parameters are automatically mapped to Oak types (integer, float, boolean, color, vector, choice, button, etc.).\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>In the node graph, OFX plugin nodes show only texture inputs to keep the node compact; adjust scalar parameters in the Param Editor.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>The project file records plugin identifiers and paths; plugins are registered before nodes are instantiated on load.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"node-presets-and-copying\">\n\u003Ch2>Node Presets and Copying\u003Ca class=\"headerlink\" href=\"#node-presets-and-copying\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>\u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Ctrl+C\u003C\u002Fspan>\u003C\u002Fcode> \u002F \u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">Ctrl+V\u003C\u002Fspan>\u003C\u002Fcode> copies selected nodes along with their dependency subgraph.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>There is currently no standalone node preset library; use copy\u002Fpaste or pack effects into a \u003Cstrong>NodeGroup\u003C\u002Fstrong> for reuse.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003Csection id=\"limitations-and-notes\">\n\u003Ch2>Limitations and Notes\u003Ca class=\"headerlink\" href=\"#limitations-and-notes\" title=\"Link to this heading\">¶\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul class=\"simple\">\n\u003Cli>\u003Cp>\u003Ccode class=\"docutils literal notranslate\">\u003Cspan class=\"pre\">kPushButton\u003C\u002Fspan>\u003C\u002Fcode> parameters are not yet wired to real plugin actions (OFX button parameters are displayed only).\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>OFX audio-generator \u002F frame-generator plugins are not fully supported.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>The Node Editor can display at most 10 contexts at once.\u003C\u002Fp>\u003C\u002Fli>\n\u003Cli>\u003Cp>OCIO-based color nodes require a valid project color-management configuration.\u003C\u002Fp>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fsection>\n\u003C\u002Fsection>\n\n\n          \u003C\u002Fdiv>\n          \n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"sphinxsidebar\" role=\"navigation\" aria-label=\"Main\">\n        \u003Cdiv class=\"sphinxsidebarwrapper\">\n\u003Ch1 class=\"logo\">\u003Ca href=\"index.html\">Oak Video Editor Manual\u003C\u002Fa>\u003C\u002Fh1>\n\n\n\n\n\n\n\n\n\u003Ch3>Navigation\u003C\u002Fh3>\n\u003Cul class=\"current\">\n\u003Cli class=\"toctree-l1\">\u003Ca class=\"reference internal\" href=\"quick_start.html\">Quick Start\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l1\">\u003Ca class=\"reference internal\" href=\"basic_features.html\">Basic Features\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l1 current\">\u003Ca class=\"current reference internal\" href=\"#\">Nodes\u003C\u002Fa>\u003Cul>\n\u003Cli class=\"toctree-l2\">\u003Ca class=\"reference internal\" href=\"#node-graph-basics\">Node Graph Basics\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l2\">\u003Ca class=\"reference internal\" href=\"#common-built-in-node-categories\">Common Built-in Node Categories\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l2\">\u003Ca class=\"reference internal\" href=\"#working-in-the-node-editor\">Working in the Node Editor\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l2\">\u003Ca class=\"reference internal\" href=\"#keyframes\">Keyframes\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l2\">\u003Ca class=\"reference internal\" href=\"#openfx-plugin-nodes\">OpenFX Plugin Nodes\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l2\">\u003Ca class=\"reference internal\" href=\"#node-presets-and-copying\">Node Presets and Copying\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l2\">\u003Ca class=\"reference internal\" href=\"#limitations-and-notes\">Limitations and Notes\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli class=\"toctree-l1\">\u003Ca class=\"reference internal\" href=\"lut.html\">LUT\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l1\">\u003Ca class=\"reference internal\" href=\"histogram.html\">Histogram\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l1\">\u003Ca class=\"reference internal\" href=\"proxy_editing.html\">Proxy Editing\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli class=\"toctree-l1\">\u003Ca class=\"reference internal\" href=\"audio_sync_and_multicam.html\">Audio Sync and Multicam Editing\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\n\n\u003Csearch id=\"searchbox\" style=\"display: none\" role=\"search\">\n  \u003Ch3 id=\"searchlabel\">Quick search\u003C\u002Fh3>\n    \u003Cdiv class=\"searchformwrapper\">\n    \u003Cform class=\"search\" action=\"search.html\" method=\"get\">\n      \u003Cinput type=\"text\" name=\"q\" aria-labelledby=\"searchlabel\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\"\u002F>\n      \u003Cinput type=\"submit\" value=\"Go\" \u002F>\n    \u003C\u002Fform>\n    \u003C\u002Fdiv>\n\u003C\u002Fsearch>\n\u003Cscript>document.getElementById('searchbox').style.display = \"block\"\u003C\u002Fscript>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"clearer\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"footer\">\n      &#169;2025, Oak Video Editor Community.\n      \n      |\n      Powered by \u003Ca href=\"https:\u002F\u002Fwww.sphinx-doc.org\u002F\">Sphinx 9.1.0\u003C\u002Fa>\n      &amp; \u003Ca href=\"https:\u002F\u002Falabaster.readthedocs.io\">Alabaster 1.0.0\u003C\u002Fa>\n      \n      |\n      \u003Ca href=\"_sources\u002Fnodes.rst.txt\"\n          rel=\"nofollow\">Page source\u003C\u002Fa>\n    \u003C\u002Fdiv>\n\n    \n\n    \n  \u003C\u002Fbody>\n\u003C\u002Fhtml>"]