Houdini 20.0 Nodes TOP nodes

FFmpeg Encode Video TOP node

Encodes a sequence of still images as a video file.

On this page
Since 17.5

Note

For information about the opposite operation of extracting frame images from a video, see the FFmpeg extract images node documentation.

Note

The encoders that are available can vary with the platform and license type. Care should be taken when submitting jobs to remote machines as they may not have the same encoders availabe to them.

Installation

This node is a wrapper around the ffmpeg command line tool. By default, it uses the version of FFmpeg that ships with Houdini as `$HFS/bin/hffmpeg. You can also install your own version of FFmpeg and use that instead.

For the node to find a custom installation of the FFmpeg command line tool, the path to the tool’s executable binary must be available via one of the following methods:

  • The system path.

  • Specified in an environment variable PDG_FFMPEG.

  • Specified directly in the node by the FFmpeg Binary Path parameter.

Tip

The $HH/help/files/pdg_examples/top_multishot and $HH/help/files/pdg_examples/top_rop examples show how you can use this node to create a movie from rendered images.

TOP Attributes

fps

integer

The frames per second of the output video.

Parameters

Node

Generate When

Determines when this node will generate work items. You should generally leave this set to “Automatic” unless you know the node requires a specific generation mode, or that the work items need to be generated dynamically.

All Upstream Items are Generated

This node will generate work items once all of the input nodes have generated their work items.

All Upstream Items are Cooked

This node will generate work items once all of the input nodes have cooked their work items.

Each Upstream Item is Cooked

This node will generate work items each time a work item in an input node is cooked.

Automatic

The generation mode is selected based on the generation mode of the input nodes. If any of the input nodes are generating work items when their inputs cook, this node will be set to Each Upstream Item is Cooked. Otherwise, it will be set to All Upstream Items are Generated.

Cache Mode

Determines how the processor node handles work items that report expected file results.

Automatic

If the expected result file exists on disk, the work item is marked as cooked without being scheduled. If the file does not exist on disk, the work item is scheduled as normal. If upstream work item dependencies write out new files during a cook, the cache files on work items in this node will also be marked as out-of-date.

Automatic (Ignore Upstream)

The same as Automatic, except upstream file writes do not invalidate cache files on work items in this node and this node will only check output files for its own work items.

Read Files

If the expected result file exists on disk, the work item is marked as cooked without being scheduled. Otherwise the work item is marked as failed.

Write Files

Work items are always scheduled and the expected result file is ignored even if it exists on disk.

Cook Type

Determines how work items in the node should cook, e.g. if they should run in process, out of process, or using services.

Run on Service Block

Determines whether or not work items in this node should run on the parent service block, if one exists.

Always

Always run work items on the block’s service, regardless of any other service settings on this node.

Match

Only run work items on the block’s service if Service Name matches the service name that’s used by the block.

Never

Never run work items on the block’s service.

Service Name

When Cook Type is set to the Service, this parameter is used to specify the name of the service. For more information on using services, see the PDG Service Manager documentation.

Tool Presets

Sets of pre-defined FFmpeg operations (presets) that automatically configure the node’s parameters and the FFmpeg command.

Create Video From Images

Create a video from a set of input images.

Convert File Format

Perform file format conversion without re-encoding the streams. For example, converting between MKV and MP4.

Re-Encode Video

Re-encode a video with a different encoder and options. For example, H.264 to AV1.

Input

Input Source

Specifies the input source.

Upstream Output Images

Sets the input as the output files from the upstream work item with the tag specified by the File Tag parameter.

Upstream Output File

Sets the input as the first output file from the upstream work item with the tag specified by the File Tag parameter.

Custom File Path

Sets the input as the file path specified by the File Path parameter.

File Tag

Specifies the file tag of the input source.

This parameter is only available when Input Source is not set to Custom File Path.

File Path

Specifies the file path to the input source.

This parameter is only available when Input Source is set to Custom File Path.

Frame List File

The file path to the frame list file. The frame list file is a text file that contains an ordered list of all the input images that are used to construct the video.

FFmpeg requires that the paths of the images in this file are specified as relative paths. On Windows, that is why the frame list file must be placed on the same drive as the input images.

This parameter is only available when Input Source is set to Upstream Output Images.

Output

Output File Path

Specifies the file path of the output video.

File Tag

Specifies the file tag of the output video.

Options

See FFmpeg Codecs Documentation and FFmpeg Formats Documentation for details.

Frames per Second

When enabled, specifies the frame rate of the encoded video file.

Format

When enabled, specifies the format of the encoded video file. When disabled, the format is guessed from the file extension.

Resolution

When enabled, specifies the resolution of the encoded video file.

Video Codec

When enabled, specifies the video codec that should be used to encode the video file.

MOV Muxer Flags

When enabled, specifies any additional muxing switches.

Pixel Format

When enabled, specifies the pixel format of the encoded video file.

Additional Arguments

When enabled, specifies any additional arguments that should be passed to FFmpeg.

Colorspace

See Colorspace support in FFmpeg for details.

Color Range

When enabled, specifies the range of color values that should be used in the encoded video file.

Color Space

When enabled, specifies the colorspace of the encoded video file.

Color Primaries

When enabled, specifies the color primaries of the encoded video file.

Transfer Function

When enabled, specifies the color transfer function of the encoded video file.

EXR Transfer Func

When enabled, specifies the color transfer function to apply to linear EXR inputs.

FFmpeg

FFmpeg Binary

Determines how FFmpeg is called.

System Path

Calls FFmpeg from the system path (if available).

$PDG_FFMPEG

Calls FFmpeg using the path stored in the PDG_FFMPEG environment variable. This environment variable must be user-created.

Custom Path

Calls the FFmpeg binary using the path specified by the FFmpeg Binary Path parameter.

Houdini FFmpeg

Uses the copy of FFmpeg that ships with Houdini, i.e. $HFS/bin/hffmpeg.

FFmpeg Binary Path

Specifies the path to the FFmpeg binary.

This parameter is only available when FFmpeg Binary is set to Custom Path.

FFmpeg Command

When on, specifies the FFmpeg command that is called when the work item cooks. You can modify this command, but it will not automatically update if the other parameters change.

Schedulers

TOP Scheduler Override

This parameter overrides the TOP scheduler for this node.

Schedule When

When enabled, this parameter can be used to specify an expression that determines which work items from the node should be scheduled. If the expression returns zero for a given work item, that work item will immediately be marked as cooked instead of being queued with a scheduler. If the expression returns a non-zero value, the work item is scheduled normally.

Add Job Parms

Opens the Edit Parameter Interface window for the purpose of adding scheduler parameters to the node’s interface.

In-Process Scheduler

The Edit Parameter Interface window opens with the In-Process Scheduler’s parameter folder selected in the Create Parameters column.

Local Scheduler

The Edit Parameter Interface window opens with the Local Scheduler’s parameter folder selected in the Create Parameters column.

HQueue Scheduler

The Edit Parameter Interface window opens with the HQueue Scheduler’s parameter folder selected in the Create Parameters column.

Work Item Label

Determines how the node should label its work items. This parameter allows you to assign non-unique label strings to your work items which are then used to identify the work items in the attribute panel, task bar, and scheduler job names.

Use Default Label

The work items in this node will use the default label from the TOP network, or have no label if the default is unset.

Inherit From Upstream Item

The work items inherit their labels from their parent work items.

Custom Expression

The work item label is set to the Label Expression custom expression which is evaluated for each item.

Node Defines Label

The work item label is defined in the node’s internal logic.

Label Expression

When on, this parameter specifies a custom label for work items created by this node. The parameter can be an expression that includes references to work item attributes or built-in properties. For example, $OS: @pdg_frame will set the label of each work item based on its frame value.

Work Item Priority

This parameter determines how the current scheduler prioritizes the work items in this node.

Inherit From Upstream Item

The work items inherit their priority from their parent items. If a work item has no parent, its priority is set to 0.

Custom Expression

The work item priority is set to the value of Priority Expression.

Node Defines Priority

The work item priority is set based on the node’s own internal priority calculations.

This option is only available on the Python Processor TOP, ROP Fetch TOP, and ROP Output TOP nodes. These nodes define their own prioritization schemes that are implemented in their node logic.

Priority Expression

This parameter specifies an expression for work item priority. The expression is evaluated for each work item in the node.

This parameter is only available when Work Item Priority is set to Custom Expression.

Examples

example_top_ffmpegencodevideo Example for FFmpeg Encode Video TOP node

This example demonstrates how to use FFmpeg Encode Video node to encode a sequence of images into a video file.

See also

TOP nodes