Movie File Out TOP

From TouchDesigner 088 Wiki

Summary

The Movie File Out TOP saves a TOP stream out to a QuickTime or MP4 (.mp4) movie in a variety of formats, plus the Animation, Cineform and Hap Q video codecs.

The Export Movie Dialog is a user interface built around the Movie File Out TOP.

To record movies with audio using the Movie File Out TOP, a time-sliced CHOP with mono or stereo channels of audio is required. If TouchDesigner is running at a lower frame rate than the target video frame rate and a CHOP is specified for audio, the Movie File Out TOP will automatically repeat video frames to ensure the video and audio stay in sync.

Recording a movie without frame drops can be done in non-realtime by turning off the Realtime flag at the top of the user interface.

The length of the video is not predetermined and depends on the amount of time the Record parameter is on.

The size of the files: The .mp4 packager uses double the disk space that the final .mp4 file uses. The audio and video streams are written out separately and then multiplexed back together at the end when you turn off Record. The temporary files are created in $TEMP (see Environment Variables).

H264 NOTE: Encoding movies in H.264 codec is only available with a Commercial or Pro license. Nvidia graphic hardware is also required.

Cineform NOTE: Encoding movies in Cineform codec is only available with a Pro license. A Cineform Studio license is also required from Cineform.

Hap Q Alpha (RGBA) NOTE: (Available in the 14,000+ series of builds)

*** WARNING - WINDOWS HANGS ON LONG GPU ACTIVITIES *** Encoding Hap Q as RGBA is a very slow, GPU intensive operation. Consequently it will usually take longer than the default 2 seconds per frame that Windows 7/8 gives the GPU driver to complete an operation. If you see an message saying that Windows has reset the GPU driver, this is the issue you are running into. To fix the issue, create this registry value
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers\TdrDelay
The value should be of type REG_DWORD. The value is the number of seconds an operation can take before the OS resets the GPU driver. Set it to something larger, like 20-40 (seconds), depending on the resolution you intend to encode. You must reboot your machine for this to setting take effect. If you still get driver resets, make it even larger.

See also Movie File In TOP, Recording Movies with Audio.

PythonIcon.png moviefileoutTOP_Class

Parameters - Movie File Out Page

Type /type - Output either a movie or still image.

File /file - Sets the path and filename of the movie file that is saved out. QuickTime movies should be saved with the .mov file extension.

NOTE: If you use a .jpg extension, a single image will be saved when the record parameter goes from 0 to 1. It will not save another image until the parameter goes back to 0, and then to 1 again.

Video Codec /videocodec - Select the video compression codec used to encode the movie.

  • Animation - Run-length encoded video, lossless codec and low decode times, but very large file size. Alpha channel can be included when Pixel Format is RGBA.
  • Photo/Motion JPEG - JPEG encoded video, lossy codec and low decode times with medium file sizes. Good for playback both forwards and backwards or for random access.
  • MPEG4 (Part 2) - high quality but can produce large files size and/or have high decode times.
  • H.264 (NVIDIA GPU) - H.264 GPU encoding, only available when using Nvidia graphics cards. Great compression and quality and small file sizes. However can suffer from high decode times and not the best for random access, scrubbing, or reverse playback. See the H264 parameter page for additional H264 encoding options. Commercial or Pro license is required.
  • GoPro-Cineform - Cineform codec requires TouchDesigner Pro and a Cineform license. Alpha channel is included.
  • Hap Q - see Hap, a fast codec that uses the GPU.

Movie Pixel Format /moviepixelformat - Options for the pixel format based on the Video Codec selected.

Audio CHOP /audiochop - Specify a CHOP to use as the audio track for the movie. Drag & Drop a CHOP here or manually enter the CHOP's path. The CHOP needs to be time-sliced.

Audio Codec /audiocodec - Select the audio compression codec used to encode the audio.

Image File Type /imagefiletype - Choose what file type to use when Type is set to Image.

Quality /quality - select the quality of the movie compression. NOTE: Some codecs can not output lossless compression.

Movie FPS /fps - The frame rate of the movie file created.

Record /record - When this parameter is set to 1, the movie will be recording.

Pause /pause - Pauses the recording.

Add Frame /addframe - Adds a single frame to the output for each click of the button. Pause must be On to enable the Add Frame parameter.

N /n - Using $N in the filename (in the File parameter) in conjuction with the N parameter here gives a method of incrementing file names. The N parameter must manually be incremented each time. Exporting a Count CHOP which increments each time you want to save out a new file is an easy way to do this.

Parameters - H264 Page

For use when Video Codec is set to H264.

Profile /profile - Select the H.264 profile to use.

Average Bitrate (Kb/s) /avgbitrate - set the average bitrate target for the encoding.

Peak Bitrate (Kb/s) /peakbitrate - set the peak bitrate allowed for the encoding.

Key-frame Interval /keyframeinterval - set the number of frames between H.264 key-frames while encoding.

Parameters - Common Page

Resolution - quickly change the resolution of the TOP's data.

  • Input - uses the input's resolution.
  • Eighth, Quarter, Half, 2X, 4X, 8X - multiply the input's resolution by that amount.
  • Fit Resolution - Resizes the input to the size specified in Resolution using the best possible match that does not crop any of the input. It will resize the image to be larger than the input resolution if a larger resolution is specified. It's a "fit inside", Aspect Ratio is maintained.
  • Limit Resolution - Limits the input to the size specified in Resolution using the best possible match that does not crop any of the input. It's a "fit inside", Aspect Ratio is maintained.
  • Custom Resolution - enables the Resolution parameter below, giving direct control over width and height.

Resolution - enabled only when the Resolution parameter is set to Custom Resolution. Some Generators like Constant and Ramp do not use inputs and only use this field to determine their size. The drop down menu on the right provides some commonly used resolutions.

Use Global Resolution Multiplier - Uses the Global Resolution Multiplier found in Edit>Preferences>TOPs. This multiplies all the TOPs resolutions by the set amount. This is handy when working on computers with different hardware specifications. If a project is designed on a desktop workstation with lots of graphics memory, a user on a laptop with only 64MB VRAM can set the Global Resolution Multiplier to a value of half or quarter so it runs at an acceptable speed. By checking this checkbox on, this TOP is affected by the global multiplier.

Output Aspect - sets the image aspect ratio allowing any textures to be viewed in any size. Watch for unexpected results when compositing TOPs with different aspect ratios. (You can define images with non-square pixels using xres, yres, aspectx, aspecty where xres/yres != aspectx/aspecty.)

  • Input - uses the input's aspect ratio.
  • Resolution - uses the aspect of the image's defined resolution (ie 512x256 would be 2:1), whereby each pixel is square.
  • Custom Aspect - lets you explicitly define a custom aspect ratio.

Input Smoothness - This controls pixel filtering on the input image of the TOP.

  • Nearest Pixel - uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native Resolution.
  • Interpolate Pixels - uses linear filtering between pixels. This is how you get TOP images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native Resolution.
  • Mipmap Pixels - uses mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail.

Fill Viewer - determine how the TOP image is displayed in the viewer.

  • Input - uses the same Fill Viewer settings as it's input.
  • Fill - stretches the image to fit the edges of the viewer.
  • Fit Horizontal - stretches image to fit viewer horizontally.
  • Fit Vertical - stretches image to fit viewer vertically.
  • Fit Best - stretches or squashes image so no part of image is cropped.
  • Fit Outside - stretches or squashes image so image fills viewer while constraining it's proportions. This often leads to part of image getting cropped by viewer.
  • Native Resolution - displays the native resolution of the image in the viewer.

NOTE: To get an understanding of how TOPs works with images, you will want to set this to Native Resolution as you lay down TOPs when starting out. This will let you see what is actually happening without any automatic viewer resizing.

Viewer Smoothness - This controls pixel filtering in the viewers.

  • Nearest Pixel - uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native Resolution.
  • Interpolate Pixels - uses linear filtering between pixels. Use this to get TOP images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native Resolution.
  • Mipmap Pixels - uses mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail. When the input is 32-bit float format, only nearest filtering will be used (regardless of what is selected).

Passes - duplicates the operation of the TOP the specified number of times.

Channel Mask - Allows you to choose which channels (R, G, B, or A) the TOP will operate on. All channels are selected by default.

Pixel Format - format used to store data for each channel in the image (ie. R, G, B, and A). Fixed format values are limited to the range [0-1]. Refer to Pixel Formats for more information.

  • Input - uses the input's pixel format.
  • 8-bit fixed (RGBA) - uses 8-bit integer values for each channel.
  • 16-bit float (RGBA) - uses 16-bits per color channel, 64-bits per pixel.
  • 32-bit float (RGBA) - uses 32-bits per color channel, 128-bits per pixels.


  • 10-bit RGB, 2-bit Alpha, fixed (RGBA) - uses 10-bits per color channel and 2-bits for alpha, 32-bits total per pixel.
  • 16-bit fixed (RGBA) - uses 16-bits per color channel, 64-bits total per pixel.
  • 11-bit float (RGB), Positive Values Only - A RGB floating point format that has 11 bits for the Red and Green channels, and 10-bits for the Blue Channel, 32-bits total per pixel (therefore the same memory usage as 8-bit RGBA). The Alpha channel in this format will always be 1. Values can go above one, but can't be negative. ie. the range is [0, infinite).
  • 8-bit fixed (R) - has 8-bits for the red channel, 8-bits total per pixel.
  • 16-bit fixed (R) - has 16-bits for the red channel, 16-bits total per pixel.
  • 16-bit float (R) - has 16-bits for the red channel, 16-bits per pixel.
  • 32-bit float (R) - has 32-bits for the red channel, 32-bits per pixel.
  • 8-bit fixed (RG) - has 8-bits for the red and green channels, 16-bits total per pixel.
  • 16-bit fixed (RG) - has 16-bits for the red and green channels, 32-bits total per pixel.
  • 16-bit float (RG) - has 16-bits for the red and green channels, 32-bits per pixel.
  • 32-bit float (RG) - has 32-bits for the red and green channels, 64-bits per pixel.
  • 8-bit fixed (A) - An Alpha only format that has 8-bits per channel, 8-bits per pixel.
  • 16-bit float (A) - An Alpha only format that has 16-bits per channel, 16-bits per pixel.
  • 32-bit float (A) - An Alpha only format that has 32-bits per channel, 32-bits per pixel.