Write
This node renders the result of all upstream nodes and saves the result to disk. You would usually place one Write node at the bottom of the compositing tree to render the final output. However, Write nodes have both input and output connectors, so you can embed them anywhere in the compositing tree.
The Write node supports multiple file formats, such as Cineon, TIFF, QuickTime, Alembic, OpenEXR, HDRI, and DPX.
Note that this node executes all renders at the currently active scale: either full- or proxy-resolution. To toggle between these, press Ctrl/Cmd+P.
You can also create this node by pressing W on the Node Graph.
See also WriteGeo.
Inputs and Controls
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
Write Tab |
|||
channels |
channels |
rgb |
Sets the channels to render. If you set this to something other than all or none, you can use the controls on the right to select individual channels. |
file |
file |
none |
Sets the file path and name of the file to render. For frame numbers, you can use #### for each digit or the printf-style formatting %04d. |
proxy |
proxy |
none |
Sets the file path and name of a relevant proxy image. This proxy image is used if proxy mode is on and the required resolution is less than or equal to the proxy format. |
frame |
frame_mode |
expression |
Sets the frame mode: • expression - Lets you enter an expression in the field on the right. The expression changes the relation between the currently processed frame and the numbering of the frame written out. The resulting file name for the current frame is displayed on the Write node in the Node Graph. For example, if your clip begins from frame 500 and you want to name that frame image.0001.exr rather than image.0500.exr, you can use the expression frame-499. This way, 499 frames are subtracted from the current frame to get the number for the frame written out. Frame 500 is written out as image.0001.exr, frame 501 is written out as image.0002.exr, and so on. Another example of an expression is frame*2. This expression multiplies the current frame by two to get the number of the frame that’s written out. At frame 1, image.0002.exr is written out; at frame 2, image.0004.exr is written out; at frame 3, image.0006.exr is written out; and so on. • startat - Lets you enter a start frame number in the field on the right. This specifies the frame number given to the first frame in the sequence. The numbering of the rest of the frames is offset accordingly. For example, if your sequence begins from frame 500 and you enter 1 in the field, frame 500 is written out as image.0001.exr, frame 501 as image.0002.exr, and so on. Similarly, if you enter 100 in the field, frame 500 is written out as image.0100.exr. • offset - Lets you enter a constant offset in the field on the right. This constant value is added to the current frame to get the number for the frame that’s written out. For example, if your clip begins from frame 500 and you want to render this first frame as image.0001.exr rather than image.0500.exr, you can use -499 as the constant offset. This way, 499 is subtracted from the current frame to get the number for the frame that’s written out. At frame 500, image.0001.exr is written out; at frame 501, image.0002.exr is written out, and so on. |
frame |
none |
Depending on the frame mode, you can enter a start frame, an offset, or an expression here. |
|
output transform |
colorspace |
dependent on file type |
Sets the color transform used to convert this file from Nuke's working space to the values written in the file. The working space is defined in the Preferences or Project Settings > Color Management settings. The default determines the LUT from the size and type of data in the file, and other information from the file header. Note: The control label has been updated, but the knob name currently remains the same. The knob name will also change in a future release. |
premultiplied |
premultiplied |
disabled |
When enabled, Nuke corrects the color to reproduce the partially transparent pixels created by some renders by dividing color data by the alpha channel before converting to the colorspace, and then multiplying by the alpha channel afterwards. |
raw data |
raw |
disabled |
When enabled, Nuke does not convert the data. For most file formats this is the same as linear colorspace but, for some, it may disable other processing such as conversion from YUV. |
views |
views |
dependent on Compositing environment Project Settings |
When you’re working with stereo footage, select the required view to render. |
file type |
file_type |
none |
Sets the rendered file format manually, enabling type specific controls. See File Type Specific Controls for more information. Note: If file type is left blank, Nuke attempts to guess the format and disables any file type specific controls. |
create directories |
create_directories |
disabled |
When enabled, the render operation creates the directory structure specified in the file control automatically, if it doesn't already exist. When disabled, attempting to write to non-existent directories displays an error. |
render order |
render_order |
1 |
When multiple nodes are rendered at once, they are sorted into increasing order by this number. |
Render |
Render |
N/A |
Click to display the pre-Render setup window. |
frame range |
first |
1 |
Sets the first frame of a sequence to render. |
last |
1 |
Sets the last frame of a sequence to render. |
|
limit to range |
use_limit |
disabled |
When enabled, only frames within the frame range are rendered. Note: If the specified frames are outside the sequence range, the Write node behaves as if it is disabled. |
read file |
reading |
disabled |
When enabled, the newly written file is passed down the node tree instead of the input. |
missing frames |
on_error |
error |
Sets Nuke’s behavior when there is a problem with frames in the file: • error - display an error in the Viewer. • black - render suspect frames with a black frame. • checkerboard - render suspect frames with a checkerboard. • nearestframe - render suspect frames with the nearest good frame. |
Reload |
reload |
N/A |
Click to re-read the image from disk. |
read all lines |
read_all_lines |
disabled |
When enabled, upstream Read nodes read whole frames, rather than line by line. This is currently limited to .dpx files, but can speed up scripts containing I/O-heavy Reads. |
OCIO Tab |
|||
Context |
|||
key1 |
key1 |
none |
OCIO Contexts allow you to apply specific LUTs to individual shots. See Changing the Viewer Color Space for more information. |
value1 |
value1 |
none |
|
key2 |
key2 |
none |
|
value2 |
value2 |
none |
|
key3 |
key3 |
none |
|
value3 |
value3 |
none |
|
key4 |
key4 |
none |
|
value4 |
value4 |
none |
|
Python Tab (These controls are for Python callbacks and can be used to have Python functions automatically called when various events happen in Nuke.) |
|||
before render |
beforeRender |
none |
These functions run prior to starting rendering in execute(). If they throw an exception, the render aborts. |
before each frame |
beforeFrameRender |
none |
These functions run prior to starting rendering of each individual frame. If they throw an exception, the render aborts. |
after each frame |
afterFrameRender |
none |
These functions run after each frame is finished rendering. They are not called if the render aborts. If they throw an exception, the render aborts. |
after render |
afterRender |
none |
These functions run after rendering of all frames is finished. If they throw an error, the render aborts. |
render progress |
renderProgress |
none |
These functions run during rendering to determine progress or failure. |
File Type Specific Controls
These controls are context sensitive depending on which format you intend to render.
CIN
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
edge code |
edge_code |
none |
Sets the sequence’s edge code, carried in the metadata, in the following format: 00 00 00 0000 0000 00. |
DPX
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
data type |
datatype |
10 bit |
Sets the bit depth of the rendered .dpx files: • 8-bit • 10-bit • 12-bit • 16-bit |
fill |
fill |
disabled |
When enabled, 10- and 12-bit data is compressed by removing unused parts of the image. |
big endian |
bigEndian |
enabled |
When enabled, the rendered file is big-endian, rather than native-endian. Big-endian files take longer to render, but some applications only accept big-endian files. |
transfer |
transfer |
(auto detect) |
Set the Transfer header in the rendered .dpx files. By default, Nuke attempts to set the header according to the LUT used, but the transfer control allows you to override this. |
EXR
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
write ACES compliant EXR |
write_ACES_compliant_EXR |
disabled |
When enabled, the rendered .exr files are ACES compliant. • The datatype and compression controls are disabled. ACES compliant .exr files written from Nuke are always 16-bit half float with no compression. • An extra metadata field, chromaticities is written into the file. |
autocrop |
autocrop |
disabled |
When enabled, the bounding box is reduced to the none zero area of the image. Note: Autocrop is slow to process and generally not required, though some applications are able to read autocropped images more quickly. |
datatype |
datatype |
16 bit half |
Sets the bit depth of the rendered .exr files: • 16-bit half • 32-bit float |
compression |
compression |
Zip (1 scanline) |
Sets the compression type to apply to the rendered file. Note: Selecting DWAA or DWAB as the compression setting allows you to specify the compression level using a slider. |
heroview |
heroview |
dependent on Compositing environmentProject Settings |
Sets the view labeled as the main view in multi-view projects. |
metadata |
metadata |
default metadata |
Determines what metadata is included with the rendered file: • no metadata • default metadata • default metadata and exr/* • all metadata except input/* • all metadata |
do not attach prefix |
noprefix |
disabled |
When enabled, unknown metadata keys are written into the file as they are. When disabled, unknown metadata keys have the prefix nuke attached to them when they are written into the file. |
interleave |
interleave |
channels, layers and views |
Sets the interleave strategy for channels, layers, and views with a rendered .exr file. A single- or multi-part .exr file is created as described by the following options, with layers and parts sorted alphabetically: • channels, layers and views - creates a single-part .exr file ensuring backward compatibility with applications that use OpenEXR 1.x. • channels and layers - creates a multi-part .exr file with one part per view. This can improve Read performance as Nuke only reads the part associated with the specified view. • channels - creates a multi-part .exr with one part per layer. Interleaving is done between elements within a section (part) of .exr files. Interleaving channels, layers, and views is done when the whole .exr is written out in one large part. This is quicker for writing but it involves more work when reading only part of the data. For performance, you should interleave only those elements which are expected to be read together. If you're only reading some layers in each Read node, then it's best not to interleave the layers. If you expect to read all the layers in each Read node, then you can optimize write performance by bundling everything together. Generally, there are a lot of layers in .exr file so this control can make a big difference to both read and write performance. |
first part |
first_part |
none |
When the channels control is set to all and interleave is set to channels, this dropdown specifies which channel is written first in multi-channel .exr files. All subsequent channels are written in alphanumeric order. |
standard layer name format |
standard layer name format |
disabled |
When enabled, the rendered EXRs follow the standard .exr format layer.view.channel Note: Older versions of Nuke use view.layer.channel for .exr files. |
write full layer names |
write_full_layer_names |
disabled |
When enabled, always write the layer name in the channel names, folling the EXR standard. When disabled, follow the legacy Nuke method of storing the layer name in the part name of multi-part files. |
truncate channel names |
truncateChannelNames |
disabled |
When enabled, channel names are truncated to a maximum of 31 characters for legacy Nuke compatiblity. When disabled, channel names are not truncated. |
JPEG
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
quality |
_jpeg_quality |
0.75 |
Sets the quality of the rendered JPGs. |
sub-sampling |
_jpeg_sub_sampling |
4:1:1 |
Sets the chroma sub-sampling to use, from lowest to highest quality: • 4:1:1 • 4:2:2 • 4:4:4 |
MOV
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
---|---|---|---|
Codec |
mov64_codec |
Apple ProRes |
Sets the codec to use during rendering. See the codec subsections for specific controls. |
FPS |
mov64_fps |
dependent on Compositing environment Project Settings |
Sets the playback frames per second for the output file. |
Animation Codec |
|||
Pixel Format |
mov64_pixel_format |
RGB 8-bit |
Lists pixel formats supported by the current codec: • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
GOP Size |
mov64_gop_size |
12 |
Sets how many frames can be placed together to form a compression GOP (group of pictures). Note: Use caution with this control as large alterations can stop other applications reading the rendered file. |
Apple ProRes Codec |
|||
Codec Profile |
mov_prores_codec_profile |
ProRes 4:2:2 HQ 10-bit |
Sets the codec profile to use when a ProRes codec is selected in the Codec control: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
YCbCr Matrix |
mov64_ycbcr_matrix_type |
Auto |
Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications. Auto uses a set a heuristics to determine the best color matrix to use, including Format-based, which sets the color matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for formats with a width of 840 pixels or above. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
Avid DNxHD Codec |
|||
Codec Profile |
mov64_dnxhd_codec_profile |
DNxHD 444 10-bit 440 Mbit |
Sets the codec profile to use when a DNxHD codec is selected in the Codec control: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
Avid DNxHR Codec |
|||
Codec Profile |
mov64_dnxhr_codec_profile |
4:4:4 12-bit |
Sets the codec profile to use when a DNxHR codec is selected in the Codec control: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
H.264 Codec |
|||
Codec Profile |
mov64_h264_codec_profile |
High 4:2:0 8-bit |
Sets the codec profile to use when a DNxHR codec is selected in the Codec control: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Quality |
mov64_quality |
High |
Selects a preset level that automatically adjusts the Advanced controls. Higher values produce larger files with better quality. Select Custom to adjust the Advanced controls manually. |
YCbCr Matrix |
mov64_ycbcr_matrix_type |
Auto |
Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications. Auto uses a set a heuristics to determine the best color matrix to use, including Format-based, which sets the color matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for formats with a width of 840 pixels or above. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
GOP Size |
mov64_gop_size |
12 |
Sets how many frames can be placed together to form a compression GOP (group of pictures). Note: Use caution with this control as large alterations can stop other applications reading the rendered file. |
B Frames |
mov64_b_frames |
0 |
Sets the maximum number of B frames that can be consecutive in the rendered file. The default, 0, does not impose any maximum number of B frames in the output. |
Bitrate |
mov64_bitrate |
28000 |
Sets the target bitrate that the codec attempts to reach, within the limits set by the Bitrate Tolerance and Quantizer Min/Max controls. |
Bitrate Tolerance |
mov64_bitrate_tolerance |
0 |
Sets the amount that the bitrate can vary from the Bitrate setting. Setting this tolerance too low can result in renders failing. |
Quantizer Min |
mov64_quailty_min |
1 |
Sets the quality range within which the codec can vary the image to achieve the specified bitrate. Higher ranges can introduce image degradation. |
Quantizer Max |
mov64_quailty_max |
3 |
|
Motion JPEG A Codec |
|||
Pixel Format |
mov64_pixel_format |
YCbCr 4:4:4 8-bit |
Lists pixel formats supported by the current codec: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Quality |
mov64_quality |
High |
Selects a preset level that automatically adjusts the Advanced controls. Higher values produce larger files with better quality. Select Custom to adjust the Advanced controls manually. |
YCbCr Matrix |
mov64_ycbcr_matrix_type |
Auto |
Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications. Auto uses a set a heuristics to determine the best color matrix to use, including Format-based, which sets the color matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for formats with a width of 840 pixels or above. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
Bitrate |
mov64_bitrate |
200000 |
Sets the target bitrate that the codec attempts to reach, within the limits set by the Bitrate Tolerance and Quantizer Min/Max controls. |
Bitrate Tolerance |
mov64_bitrate_tolerance |
4000000 |
Sets the amount that the bitrate can vary from the Bitrate setting. Setting this tolerance too low can result in renders failing. |
Quantizer Min |
mov64_quailty_min |
1 |
Sets the quality range within which the codec can vary the image to achieve the specified bitrate. Higher ranges can introduce image degradation. |
Quantizer Max |
mov64_quailty_max |
3 |
|
Motion JPEG B Codec |
|||
Pixel Format |
mov64_pixel_format |
YCbCr 4:4:4 8-bit |
Lists pixel formats supported by the current codec: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Quality |
mov64_quality |
High |
Selects a preset level that automatically adjusts the Advanced controls. Higher values produce larger files with better quality. Select Custom to adjust the Advanced controls manually. |
YCbCr Matrix |
mov64_ycbcr_matrix_type |
Auto |
Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications. Auto uses a set a heuristics to determine the best color matrix to use, including Format-based, which sets the color matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for formats with a width of 840 pixels or above. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
Bitrate |
mov64_bitrate |
200000 |
Sets the target bitrate that the codec attempts to reach, within the limits set by the Bitrate Tolerance and Quantizer Min/Max controls. |
Bitrate Tolerance |
mov64_bitrate_tolerance |
4000000 |
Sets the amount that the bitrate can vary from the Bitrate setting. Setting this tolerance too low can result in renders failing. |
Quantizer Min |
mov64_quailty_min |
1 |
Sets the quality range within which the codec can vary the image to achieve the specified bitrate. Higher ranges can introduce image degradation. |
Quantizer Max |
mov64_quailty_max |
3 |
|
MPEG-4 Codec |
|||
Pixel Format |
mov64_pixel_format |
YCbCr 4:2:0 8-bit |
Lists pixel formats supported by the current codec: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Quality |
mov64_quality |
High |
Selects a preset level that automatically adjusts the Advanced controls. Higher values produce larger files with better quality. Select Custom to adjust the Advanced controls manually. |
YCbCr Matrix |
mov64_ycbcr_matrix_type |
Auto |
Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications. Auto uses a set a heuristics to determine the best color matrix to use, including Format-based, which sets the color matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for formats with a width of 840 pixels or above. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
GOP Size |
mov64_gop_size |
12 |
Sets how many frames can be placed together to form a compression GOP (group of pictures). Note: Use caution with this control as large alterations can stop other applications reading the rendered file. |
B Frames |
mov64_b_frames |
0 |
Sets the maximum number of B frames that can be consecutive in the rendered file. The default, 0, does not impose any maximum number of B frames in the output. |
Limit Bitrate |
mov64_limit_bitrate |
disabled |
When enabled, the maximum Bitrate is capped and the Bitrate Tolerance is set to 0. This control is designed to reduce output file size, but the render quality is generally lower. |
Bitrate |
mov64_bitrate |
200000 |
Sets the target bitrate that the codec attempts to reach, within the limits set by the Bitrate Tolerance and Quantizer Min/Max controls. |
Bitrate Tolerance |
mov64_bitrate_tolerance |
4000000 |
Sets the amount that the bitrate can vary from the Bitrate setting. Setting this tolerance too low can result in renders failing. |
Quantizer Min |
mov64_quailty_min |
1 |
Sets the quality range within which the codec can vary the image to achieve the specified bitrate. Higher ranges can introduce image degradation. |
Quantizer Max |
mov64_quailty_max |
3 |
|
PHOTO JPEG Codec |
|||
Pixel Format |
mov64_pixel_format |
YCbCr 4:4:4 8-bit |
Lists pixel formats supported by the current codec: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Quality |
mov64_quality |
High |
Selects a preset level that automatically adjusts the Advanced controls. Higher values produce larger files with better quality. Select Custom to adjust the Advanced controls manually. |
YCbCr Matrix |
mov64_ycbcr_matrix_type |
Auto |
Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications. Auto uses a set a heuristics to determine the best color matrix to use, including Format-based, which sets the color matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for formats with a width of 840 pixels or above. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
Bitrate |
mov64_bitrate |
200000 |
Sets the target bitrate that the codec attempts to reach, within the limits set by the Bitrate Tolerance and Quantizer Min/Max controls. |
Bitrate Tolerance |
mov64_bitrate_tolerance |
4000000 |
Sets the amount that the bitrate can vary from the Bitrate setting. Setting this tolerance too low can result in renders failing. |
Quantizer Min |
mov64_quailty_min |
1 |
Sets the quality range within which the codec can vary the image to achieve the specified bitrate. Higher ranges can introduce image degradation. |
Quantizer Max |
mov64_quailty_max |
3 |
Quantizer Max |
PNG Codec |
|||
Pixel Format |
mov64_pixel_format |
RGB 16-bit |
Lists pixel formats supported by the current codec: • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
Uncompressed Codec |
|||
Pixel Format |
mov64_pixel_format |
YCbCr 4:2:2 10-bit |
Lists pixel formats supported by the current codec: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
YCbCr Matrix |
mov64_ycbcr_matrix_type |
Auto |
Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications. Auto uses a set a heuristics to determine the best color matrix to use, including Format-based, which sets the color matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for formats with a width of 840 pixels or above. |
Audio File |
mov64_audiofile |
N/A |
Allows you to specify a separate audio file to include in the output. Either enter the file path manually or click the browse button to locate the audio file. |
Audio Offset |
mov64_audio_offset |
0 |
Sets the start time of any audio file specified in the Audio File control. The unit of measure is specified using the Units control. Negative values cause the audio to start before the video and vice versa. |
Units |
mov64_units |
Seconds |
Sets the unit of measure for the audio offset control: • Seconds • Frames |
Advanced |
|||
Data Range |
dataRange |
Video Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
Fast Start |
mov64_fast_start |
enabled |
When enabled, MOVs are playable while still down loading during streaming. |
Write Timecode |
mov64_write_timecode |
enabled |
When enabled, a time code track is added to the rendered .mov file. You can also use the quicktime/reel metadata, if present, to give the track its reel name. You can add this key using the ModifyMetaData node if it doesn’t exist. Note: The input/timecode key must be present in the sequence metadata in order to write a time code. |
MXF
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
Codec | mxf_video_codec_knob | Avid DNxHR |
Sets the codec to use during rendering. |
Pattern |
mxf_op_pattern_knob |
OP-1a |
Sets the operational pattern of the rendered file: • OP-1a - combines audio and video into a single file, similar to Final Cut Pro X. • OP-Atom - creates separate audio and video files, similar to Avid Media Composer. |
FPS |
mxf_edit_rate_knob |
dependent on Compositing environment Project Settings |
Sets the playback frames per second for the output file. |
Codec Profile |
mxf_codec_profile_knob |
4:4:4 12-bit |
Lists codec profiles supported by the current codec: • Pixel layout - 420, 422, 444, and so on. This defines how the chroma channels in the buffer are arranged. 444 buffers have lower spatial chroma sampling than 422, so they are generally preferred when available. • Pixel bit-depth - 8-bit, 16-bit, and so on. This sets the encoding depth used when decompressing the frames. A large bit depth gives higher accuracy at the cost of speed and memory usage. |
Tape ID |
mxf_tape_id_knob |
N/A |
When Pattern is set to OP-Atom, specifies a tape name that can be read by Avid Media Composer. |
Advanced |
|||
Data Range |
dataRange |
Full Range |
Sets the minimum and maximum color range values for encoding DNx files: • Full Range - encodes with the full data range (0-255 for 8-bit or 0-1023 for 10-bit). • Video Range - encodes with a reduced, or video/legal, data range (16-240 for 8-bit or 64-960 for 10-bit). |
PNG
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
data type |
datatype |
8 bit |
Sets the bit depth of the rendered .png files: • 8-bit • 16-bit |
SGI
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
data type |
datatype |
8 bit |
Sets the bit depth of the rendered .sgi files: • 8-bit • 16-bit |
big endian |
bigEndian |
enabled |
When enabled, the rendered file is big-endian, rather than native-endian. Big-endian files take longer to render, but some applications only accept big-endian files. |
compression |
compression |
RLE |
Sets the compression type to apply to the rendered file. |
TARGA
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
compression |
compression |
RLE |
Sets the compression type to apply to the rendered file. |
TIFF
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
data type |
datatype |
8 bit |
Sets the bit depth of the rendered .tiff files: • 8-bit • 16-bit • 32-bit float |
compression |
compression |
Deflate |
Sets the compression type to apply to the rendered file. |
YUV
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
interlaced |
interlaced |
disabled |
When enabled, the file is rendered as interlaced rather than progressive. |
Step-by-Step Guides
Video Tutorials
Playback and Rendering from Foundry on Vimeo.
We have covered quite a few features in Nuke. We can now discuss different ways to playback and also how to write out frames. Once again, if you are using Nuke 7, you have the RAM preview. If you can see the green line on the timeline, it means those frames are stored in RAM and the playback will become much more efficient. Another way to optimize the playback is to press the new Optimize Viewer during playback button - it looks like a snowflake. If you click that, then all other parts of the UI outside the Viewer and timeline are frozen. For example, a Read node will not show the frame number until the playback stops. Aside from the timeline, you can also playback through a Flipbook. The Flipbook renders out frames to disk and uses an external program for playback and, in fact, Nuke comes bundled with FrameCycler for this very purpose.
In order to create a Flipbook, select a node whose output you want to see, such as this ColorCorrect node, and go to Render > Flipbook Selected. You can choose a frame range, and then click OK. Once it finishes, the FrameCycler window opens. This is a very industrial-strength tool and there are many options. There is a standard set of playback controls at the very bottom, it can also do things like crop the image based on certain aspect ratios, or display different channels such as red, green, blue, alpha, and luminance. You can view it in different colorspaces through this menu, or just choose Normal View. You can even bring in multiple clips. For example, you can go down to the Desktop button to see the file browser, browse through different directories, and then if you see an image sequence, still image, or a movie, you can select that. Place your mouse over it, like this image sequence, and click the + button. The image sequence is added to the timeline. To go back to the Viewer, go back down to Desktop - here is my original flipbook and here is the new image sequence. You can use FrameCycler to do basic editing with multiple clips. Now, there are many, many features in this program, too many to cover in a short time. I do want to mention it’s definitely worth investigation. Once you are done with FrameCycler, you can either minimize it or exit it. I will just minimize it.
Now we are ready to write out some files. Before I do that, however, I want to talk about this network. It starts with a Read node that’s written in the image sequence. Next is a TimeClip, which changes the frame range from 100 to 200; it also offsets that by 100, so that starts at frame 0. Now that the Read node carries the same frame range and frame properties as the TimeClip node, it’s unusual for multiple nodes to carry the same properties. This goes to show there is a lot of flexibility when it comes time to build your node networks. After that is a Reformat. Reformat is forcing the HD footage to be the project size, in this case 640x480. Because the black outside checkbox is clicked, that places a black letterbox on the top and bottom. I want to mention the Reformat has a filter property. Its property is also shared by Transform nodes. What the filter does is it averages the pixels whenever there is a scale, a rotate, or a translate. For example, if the image is scaled down, that means pixels have to be thrown away. If an image is scaled up, pixels have to be replicated. The filter ensures that operation maintains the highest amount of quality. Let’s zoom in and take a look at this man’s shirt. By default, the filter is set to Cubic. That is a form of convolution filter, which again averages the pixels. If I switch this menu to Impulse, I can see what it looks like with no pixel averaging. It looks very, very pixelated. This is what you would get if there was no filtering at all. There are other filter types aside from Impulse and Cubic, for example, Notch, which is much more aggressive at averaging. There are others that offer in-between results. I am going to go back to Cubic for now. Just keep in mind if you do see filter, you have the option of changing that property to get different results. Again, the Transform node carries this too.
After the Reformat, there is a HueShift and ColorCorrect. HueShift allows you to alter the hue by rotating the color wheel (hue rotation). ColorCorrect allows you to change the saturation, contrast, gamma and gain for the entire image, or for just the shadow areas, midtone areas, or highlight areas. In that case, these two nodes are applying color grading to the image. I can see what it looks like without these nodes by Shift+selecting them and pressing the D key. So here’s before and here’s after. You can find these nodes in the Color menu. Here’s ColorCorrect and HueShift.
Let’s write these out. In order to render out an image sequence or movie, you have to use the Write node. Right-mouse-button-click, and choose Image > Write or press the W key. The Write node needs to go after the node whose output you want to write out. In this case, I will place it after the ColorCorrect. Here are the options. The first thing to note is you can write out different channels. By default, it writes out rgb or red, green, and blue. If I want it to write out alpha also, I can switch this menu to rgba, or you can choose any other number of custom channels. For example, under other layers, you have z-buffer depth channels, motion vector channels, mask channels, and even deep compositing channels. Now, not all the formats can support those channels, but some do. So, the first thing to do here is to actually go to file and press the browse (file) button. Here, you can select the directory you want to render out the files to. For example, select the Test/ folder, after that you can enter in the name of a file, such as test5, and then follow the standard naming convention used by a lot of programs. So, I will add a period and several pound signs to represent the amount of numeric placeholders, such as ##, which is good for rendering frames 0-99. Nuke also supports expression-based numbers. For example, if you enter 0%2d, it will create the same number of numeric placeholders as ##. Another period and the extension, such as .exr, and I will press Save.
Nuke automatically recognizes the extension and changes the file type to match. It also adds whatever options come with that particular format. This is openexr, which means I have a choice of data type, such as 16 bit half or 32 bit float, and various compression schemes. There are quite a few formats you can choose. Go to this menu right here and take a look. For example, there is abc, which is Alembic. That’s a new visual effects format. There is also logarithmic formats, such as cin and dpx, floating point such as hdr, QuickTime mov, and then various other still image formats, such as png, targa, or tiff. If you do pick a format here, such as tiff, make sure you do change the extension to match. Also note there is a colorspace menu here. This is automatically set, based on the format you choose. Once you are ready to render out, just click the Render button. You can pick a Frame range and click OK. Once that window closes, the image sequence or the movie is written out to disk.
“Tears of Steel” footage courtesy (CC) Blender Foundation - mango.blender.org