Contact Support

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.

colorspace

colorspace

dependent on file type

Sets the lookup table (LUT) used to convert from the internal values used by Nuke to the values written to the file.

The default value is determined from the type of file and the size and type of data written to it.

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 out.

Control (UI)

Knob (Scripting)

Default Value

Function

CIN

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

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.

time code

timecode

none

Sets the sequence’s time code, carried in the metadata, in the following format: 00:00:00:00.

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.

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

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 which groups to interleave in the rendered .exr file:

channels, layers and views - Write channels, layers, and views into the same part of the rendered .exr file. This creates a single-part file to ensure backwards compatibility with earlier versions of Nuke and other applications using an older OpenEXR library.

channels and layers - Write channels and layers into the same part of the rendered .exr file, but separate views into their own part. This creates a multi-part file and can speed up Read performance, as Nuke only has to access the part of the file that is requested rather than all parts.

channels - Separate channels, layers, and views into their own parts of the rendered .exr file. This creates a multi-part file and can speed up Read performance if you work with only a few layers at a time.

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.

JPG

quality

_jpeg_quality

0.75

Sets the quality of the rendered JPGs.

MOV

codec

meta_codec

Apple ProRes 4444

Sets the codec to use during rendering.

encoder

meta_encoder

dependent on the file

Sets the encode library used to write the file:

Note:  Depending on the codec in use, this control may be read only. For example, Apple ProRes 4444 always uses mov64, but Animation allows you to choose mov32 or mov64.

mov32 - uses the full range of QuickTime codecs, but can be slow to process due to extra complexity during decode.

mov64 - uses its own packing and unpacking and streams decode/encode for extra processing speed, but only supports a sub-set of QuickTime codecs.

Note:  Nuke defaults to the fastest decoder for the codec used in the file - if you're reading in a type supported by the mov64 sub-set, Nuke defaults to that reader. Otherwise, the fallback mov32 reader is used.

mov32 encoder Settings

fps

mov32_fps

dependent on Compositing environment Project Settings

Sets the playback frames per second for the output file.

audio file

mov32_audiofile

n/a

Allows you to specify a separate audio file to include in the output.

Either enter the filepath manually or click the browse button to locate the audio file.

audio offset

mov32_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

mov32_units

Seconds

Sets the unit of measure for the audio offset control:

Seconds

Frames

write time code

mov32_write_timecode

disabled

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.

Advanced

codec options

mov32_codecoptions

N/A

Click to display an advanced Compression Settings dialog.

fast start

mov32_flatten

enabled

When enabled, MOVs are playable while still down loading.

use format aspect

mov32_use_format_aspect

disabled

When enabled, the rendered .mov uses the same pixel ratio as the input.

When disabled, the codec determines the pixel aspect to use.

Note:  Codecs writing PAL and NTSC should be allowed to determine the ratio during render, but formats that otherwise expect 1:1 pixel ratios may require this override.

ycbcr matrix

mov32_ycbcr_matrix_type

Format-based

Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC specifications, whilst Nuke Legacy, Nuke Legacy Mpeg, and Nuke Legacy YUVS are retained for backwards compatibility. Format-based 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.

This setting is only available when you’re working with a Y’CbCr-based pixel type.

pixel format

mov32_pixel_format

dependent on the codec chosen

Lists pixel formats supported by the current codec. The pixel format defines the type and layout Nuke requests from QuickTime:

Pixel colorspace - either RGB(A) or YCbCr(A). This defines whether QuickTime or Nuke’s QuickTime reader does the conversion between colorspaces. For a Y’CbCr pixel type, choosing an RGB(A) colorspace means Nuke relies on QuickTime to do the RGB to Y’CbCr conversion. Choosing a YCbCr(A) colorspace means that Nuke is responsible for the conversion, and so a specific ycbcr matrix can be used (this is recommended).

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.

Pixel layout - 422, 444, 4444, 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. For all cases, Nuke unpacks the sub-sampled buffer to full resolution.

Range - either Biased or empty. For RGB(A) types, the values are full range (from 0 to 1). For YCbCr(A) types, the values are in video range by default, offering headroom at both ends of the scale. If this is set to Biased, then headroom is only available at the top end.

(4cc). This is the pixel type 4cc, as defined by the QuickTime API.

This setting defaults to the best format accepted by the codec.

write nclc

mov32_write_nclc

enabled

When enabled, write the nclc data in the colr atom of the video sample.

write gamma

mov32_write_gamma

enabled

When enabled, write the gama data in the gama atom of the video sample.

write prores

mov32_write_prores

enabled

When enabled, write the prores data in the prores header of the video sample.

mov64 encoder Settings

codec profile

mov64_dnxhd_codec_profile

dependent on the codec chosen

Sets the target bit-rate for the Avid DNxHD codec.

Note:  This control is only enabled when the Avid DNxHD Codec is selected.

fps

mov64_fps

dependent on Compositing environment Project Settings

Sets the playback frames per second for the output file.

audio file

mov64_audiofile

n/a

Allows you to specify a separate audio file to include in the output.

Either enter the filepath 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

write time code

mov64_write_timecode

disabled

When enabled, Nuke writes the timecode into the .mov metadata, where available.

Note:  The timecode is read from the input/timecode metadata key pair. If this field is blank, the timecode is not written into the file.

Advanced

output range

mov64_dnxhd_encode_video_range

Video Range

Sets the minimum and maximum color range values for encoding DNxHD 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).

bitrate

mov64_bitrate

20000

Sets the target bitrate that the codec attempts to reach, within the limits set by the bitrate tolerance and quality min/max controls.

Note:  The bitrate control is only enabled for certain codecs, such as MPEG-4 - Video.

bitrate tolerance

mov64_bitrate_tolerance

40000000

Sets the amount that the bitrate can vary from the bitrate setting. Setting this tolerance too low will result in renders failing.

Note:  The bitrate tolerance control is only enabled for certain codecs, such as MPEG-4 - Video.

quality min

mov64_quailty_min

2

Sets the quality range within which the codec can vary the image to achieve the specified bitrate. Higher ranges can introduce image degradation.

Note:  The quality min/max controls are only enabled for certain codecs, such as MPEG-4 - Video.

quality max

mov64_quailty_max

31

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.

Note:  The gop sizecontrol is only enabled for certain codecs, such as MPEG-4 - Video.

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.

Note:  The b frames control is only enabled for certain codecs, such as MPEG-4 - Video.

write nclc

mov64_write_nclc

enabled

When enabled, write the nclc data in the colr atom of the video sample.

PNG

data type

datatype

8 bit

Sets the bit depth of the rendered .png files:

8-bit

16-bit

SGI

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

compression

compression

RLE

Sets the compression type to apply to the rendered file.

TIFF

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

interlaced

interlaced

disabled

When enabled, the file is rendered as interlaced rather than progressive.

Step-by-Step Guides

Rendering Output

Video Tutorials

Related Topics Link IconRelated Topics