Writeffmpeg is a python script and a node that allows you to render from Nuke directly into ffmpeg. Instead of a 2 step process where you render from Nuke to a temporary image sequence that you then transcode using ffmpeg, this solution writes to a single uint16 cache tiff file and this data gets piped into ffmpeg.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Dockerfile | |
FROM centos | |
LABEL maintainer="JED" | |
ENV HOME /root | |
WORKDIR $HOME | |
RUN yum update -y && yum clean all |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set cut_paste_input [stack 0] | |
push $cut_paste_input | |
Group { | |
name CornerPinOffset | |
tile_color 0x9073adff | |
addUserKnob {20 PinControl} | |
addUserKnob {26 CornerPinControls l "" +STARTLINE T "<font size=5><b>Corner Pin Data</b></font>"} | |
addUserKnob {20 CornerPinData l "" +STARTLINE n 1} | |
addUserKnob {41 to1 T cpMaster.to1} | |
addUserKnob {41 enable1 -STARTLINE T cpMaster.enable1} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set cut_paste_input [stack 0] | |
push $cut_paste_input | |
Group { | |
name ExposureBlend | |
label "\[value brackets] Brackets" | |
addUserKnob {20 ExposureBlend_tab l ExposureBlend} | |
addUserKnob {7 time_th l "time threshold" t "threshold duration in seconds between exposure bracket sets" R 1 10} | |
time_th 2 | |
addUserKnob {1 capture_time l "capture time" t "Enter the metadata key for the exposure capture time metadata key in your source images"} | |
capture_time exr/Exif:DateTimeOriginal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set cut_paste_input [stack 0] | |
push $cut_paste_input | |
Group { | |
name FLog2Lin | |
label "\[value operation]" | |
selected true | |
xpos -40 | |
ypos -952 | |
addUserKnob {20 FLog2Lin} | |
addUserKnob {4 operation M {log2lin lin2log}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import OpenImageIO as oiio | |
from OpenImageIO import ImageInput, ImageOutput | |
from OpenImageIO import ImageBuf, ImageSpec, ImageBufAlgo | |
import os, sys | |
import shlex, subprocess | |
import glob | |
#-------------------------------------------- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import nuke, math | |
def get_closest_node(node): | |
# Return the closest node to node | |
distances = {} | |
for n in nuke.allNodes(): | |
if n.name() == node.name(): | |
continue | |
distance = math.sqrt( | |
math.pow( (node.xpos() - n.xpos()), 2 ) + math.pow( (node.ypos() - n.ypos()), 2 ) | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
globals: | |
# Path to the ocio config to use | |
ocioconfig: /path/to/config.ocio | |
# Default ocio profile to use if not specified on the commandline | |
ocio_default_transform: grade | |
############################################### | |
## Reformatting and Cropping | |
############################################### | |
# If debug is true, no encoding will be done and there will be debug prints |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import OpenImageIO as oiio | |
from OpenImageIO import ImageInput, ImageOutput | |
from OpenImageIO import ImageBuf, ImageSpec, ImageBufAlgo | |
import os, sys | |
import shlex, subprocess | |
import glob | |
#-------------------------------------------- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Group { | |
name AutoExposure | |
addUserKnob {20 User} | |
addUserKnob {41 wb T ColorMatch.wb} | |
addUserKnob {41 dst_color l dst T ColorMatch.dst_color} | |
addUserKnob {22 calc T "n = nuke.thisNode()\nnuke.root().begin()\nn.begin()\nct = nuke.toNode('CURVETOOL')\nct\['intensitydata'].clearAnimated()\nt = nuke.frame()\nnuke.execute(ct, t, t)" +STARTLINE} | |
addUserKnob {26 ""} | |
addUserKnob {41 intensitydata T CURVETOOL.intensitydata} | |
addUserKnob {41 sample T ColorSampler.sample} | |
addUserKnob {26 ""} |