tool to help set up proxy creation and image sequence conversion
proxyTools
Updated: 22 February 2012
Author: mybikeislost
Compatible Nuke versions: 6.3 or later
Compatibility: Linux, Mac, Windows
proxyTools 1.3
ChangeLog:
v1.3: bugfix to address 'index out of range' error w/qt source.
v1.2: added DPX option to full res (rgb channels by default)
exr files now write out all metadata as default.
added simple error checking to make sure we are dealing w/sequences in filename.%04d.ext format.
added initial support for r3d files.
v1.1: fixed error when rendering full sized jpegs
v1.0: initial release
python modal panel to help set up write nodes for rendering proxies on a farm(or local) into resolution folders per shot, while generating reads that link to the rendered files. Also useful to convert quicktime files to exr.
Panel Options:
- Process Plates: option to convert full, proxies, or both.
- Process Reads: limit conversion to 'all' Reads, 'selected' Reads, or 'quicktime' Reads within a script
- Full Res Format: options are exr, and jpeg (0.97 quality) at full raster.
- Proxy Format: options are exr, and jpeg (0.97 quality).
- Proxy Size: options are 'full, half, or quarter' (impulse filtering for full, cubic for half and quarter)
- Create Read: option to create a read with the file/proxy paths set to the write node renders.
Notes:
- For quicktime & r3d files, it can handle files without extension by reading the 'input/filereader' metadata to determine filetype.
- Default behavior is to create a folder named 'filename+_IMG' with subfolders for resolution.
- All write nodes will have their 'disable' knob animated to the frame range of the source read.
- If the script detects that the source img sequence is in a folder maching the resolution, it should render the proxy files one level up. (To deal with if you render proxies after you've converted to exr for instance).
- tested on OS X/Linux, should work with windows unc paths, but I don't have a box to test.
'Create Read' has the following behavior:
- 'Process Plates' = both: read node will link to the full res and proxy write nodes.
- 'Process Plates' = proxy: read node file knob will be set to original plate, proxy knob set to generated proxy.
- 'Process Plates' = full: read knob will link to the converted full res plate.
Sample output folder structure:
SCN_125_RAW.mov <--source quicktime
SCN_125_RAW_IMG <--created folder
1920x1080 <--resolution folder
SCN_125_RAW.%04d.exr <--full res sequence
960x540 <--resoltion folder
SCN_125_RAW.%04d.jpg <-proxy res sequence
Installation:
- Add the following to your menu.py
1 2 3 4 |
import proxyTools nuke.menu("Nuke").addCommand("Render/Proxy Tools* 1.3","proxyTools.proxyTools()") |
- I am not creating the folders in the script when it runs, so I'd suggest adding this createWriteDir() callback to your init.py if you don't have one already
1 2 3 4 5 6 7 8 9 10 11 |
def createWriteDir(): import nuke, os file = nuke.filename(nuke.thisNode()) dir = os.path.dirname( file ) osdir = nuke.callbacks.filenameFilter( dir ) try: os.makedirs( osdir ) return except: return nuke.addBeforeRender( createWriteDir ) |