set cut_paste_input [stack 0] version 12.2 v5 push $cut_paste_input Group { name Preview_QT2 tile_color 1 label "h264 standard\n\[value nodeLabel]" selected true xpos 313 ypos 39 addUserKnob {20 ffmpeg} addUserKnob {35 presets M {"Prores 422" "knobs this \{ffmpeg_args \"-c:v prores_ks -profile:v 2 -qscale:v 7 -pix_fmt yuv444p10le -r 24 -vf colormatrix=bt601:bt709 -vendor ap10 -metadata:s encoder=\\\"Apple ProRes 422\\\"\" framerate 24 label \"Prores 422\\n\[value nodeLabel]\"\}" "Prores 422 HQ" "knobs this \{ffmpeg_args \"-c:v prores_ks -profile:v 3 -qscale:v 7 -pix_fmt yuv444p10le -r 24 -vf colormatrix=bt601:bt709 -vendor ap10 -metadata:s encoder=\\\"Apple ProRes 422 HQ\\\"\" framerate 24 label \"Prores 422 HQ\\n\[value nodeLabel]\"\}" "Prores 4444" "knobs this \{ffmpeg_args \"-c:v prores_ks -profile:v 4 -qscale:v 5 -pix_fmt yuv444p10le -r 24 -vf colormatrix=bt601:bt709 -vendor ap10 -metadata:s encoder=\\\"Apple ProRes 4444\\\"\\\"\" framerate 24 label \"Prores 4444\\n\[value nodeLabel]\"\}" "DNxHD 36" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhd -pix_fmt yuv422p -b:v 36M -vf \\\"scale=1920:1080,fps=24000/1001,colormatrix=bt601:bt709\\\"\" framerate 23.976 label \"DNxHD 36\\n\[value nodeLabel]\"\}" "DNxHD 115" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhd -pix_fmt yuv422p -b:v 115M -vf \\\"scale=1920:1080,fps=24000/1001,colormatrix=bt601:bt709\\\"\" framerate 23.976 label \"DNxHD 115\\n\[value nodeLabel]\"\}" "DNxHD 175" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhd -pix_fmt yuv422p -b:v 175M -vf \\\"scale=1920:1080,fps=24000/1001,colormatrix=bt601:bt709\\\"\" framerate 23.976 label \"DNxHD 175\\n\[value nodeLabel]\"\}" "DNxHD 175 10bit" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhd -pix_fmt yuv422p10 -b:v 175M -vf \\\"scale=1920:1080,fps=24000/1001,colormatrix=bt601:bt709\\\"\" framerate 23.976 label \"DNxHD 175 10bit\\n\[value nodeLabel]\"\}" "DNxHD 220 10bit" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhd -pix_fmt yuv422p10 -b:v 220M -vf \\\"scale=1920:1080,fps=24000/1001,colormatrix=bt601:bt709\\\"\" framerate 23.976 label \"DNxHD 220 10bit\\n\[value nodeLabel]\"\}" "DNxHR HQ" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -vf \\\"colormatrix=bt601:bt709\\\"\" framerate 24 label \"DNxHR HQ\\n\[value nodeLabel]\"\}" "DNxHR HQX" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhr_hqx -pix_fmt yuv422p10le -vf \\\"colormatrix=bt601:bt709\\\"\" framerate 24 label \"DNxHR HQX\\n\[value nodeLabel]\"\}" "DNxHR 444" "knobs this \{ffmpeg_args \"-c:v dnxhd -profile:v dnxhr_444 -pix_fmt yuv444p10le -vf \\\"colormatrix=bt601:bt709\\\"\" framerate 24 label \"DNxHR 444\\n\[value nodeLabel]\"\}" "h264 standard" "knobs this \{ffmpeg_args \"-c:v libx264 -profile:v high -crf 15 -preset slow -tune film -pix_fmt yuv420p -g 4 -bf 2 -vf colormatrix=bt601:bt709\" framerate 24 label \"h264 standard\\n\[value nodeLabel]\"\}" "h264 intra" "knobs this \{ffmpeg_args \"-c:v libx264 -profile:v high -crf 12 -preset slow -tune film -pix_fmt yuv420p -g 1 -bf 0 -vf colormatrix=bt601:bt709\" framerate 24 label \"h264 intra\\n\[value nodeLabel]\"\}" "h264 intra 444" "knobs this \{ffmpeg_args \"-c:v libx264 -profile:v high444 -crf 12 -preset slow -tune film -pix_fmt yuv444p -g 1 -bf 0 -vf colormatrix=bt601:bt709\" framerate 24 label \"h264 intra 444\\n\[value nodeLabel]\"\}" "h264 intra 444 10bit" "knobs this \{ffmpeg_args \"-c:v libx264 -profile:v high444 -crf 12 -preset slow -tune film -pix_fmt yuv444p10le -g 1 -bf 0 -vf colormatrix=bt601:bt709\" framerate 24 label \"h264 intra 444 10bit\\n\[value nodeLabel]\"\}" "h265 standard 10bit" "knobs this \{ffmpeg_args \"-c:v libx265 -profile:v main10 -crf 15 -preset slow -tune psnr -pix_fmt yuv420p10le -g 2 -bf 0 -vf colormatrix=bt601:bt709\" framerate 24 label \"h265 standard 10bit\\n\[value nodeLabel]\"\}" "h265 intra 422 10bit" "knobs this \{ffmpeg_args \"-c:v libx265 -profile:v main422-10-intra -crf 12 -preset slow -tune psnr -pix_fmt yuv422p10le -g 1 -bf 0 -vf colormatrix=bt601:bt709\" framerate 24 label \"h265 intra 10bit\\n\[value nodeLabel]\"\}" "h265 intra 444 10bit" "knobs this \{ffmpeg_args \"-c:v libx265 -profile:v main444-10-intra -crf 12 -preset slow -tune psnr -pix_fmt yuv444p10le -g 1 -bf 0 -vf colormatrix=bt601:bt709\" framerate 24 label \"h265 intra 444 10bit\\n\[value nodeLabel]\"\}"}} addUserKnob {1 ffmpeg_args l "ffmpeg args"} ffmpeg_args "-c:v libx264 -profile:v high -crf 15 -preset slow -tune film -pix_fmt yuv420p -g 4 -bf 2 -vf colormatrix=bt601:bt709" addUserKnob {26 ""} addUserKnob {1 info t "Additional non-mandatory File Info"} addUserKnob {2 file t "output file"} file //calculon/o/_projekte/HOTZ/550_previewQTs/001/030/HOT_comp_001_030.comp_v001/HOT_comp_001_030.comp_v001.mp4 addUserKnob {22 setfilepath l "Set Filepath" t "Creates a valid filename.\nUses the main task of SceneControl and points to the PreviewQT Dir." T "n = nuke.thisNode()\ninfo = n\['info'].value()\nffmpeg_args = n\['ffmpeg_args'].value()\n\nif 'dnxhd' in ffmpeg_args:\n extension = 'mov'\nif 'libx264' in ffmpeg_args:\n extension = 'mp4'\nif 'libx265' in ffmpeg_args:\n extension = 'mp4'\nif 'prores' in ffmpeg_args:\n extension = 'mov'\n\noutputpath = sceneControl.kenvQuery('PREVIEW_QT_FILE', minor_version=None, info=info, ext=extension)\n\nn.knobs()\[\"file\"].setValue(outputpath)\n\n# create label for displaying the generated output\n# autoLabel = \"n.name() + '\\\\n' +n\['file'].value().split('/')\[-1] + '\\\\n' + n\['label'].value()\"\n# n\['autolabel'].setValue(autoLabel)" +STARTLINE} addUserKnob {26 ""} addUserKnob {1 burnNameText l burn-in} burnNameText "\[python \{nuke.thisNode().knobs()\['file'].value().split('/')\[-1].replace('.mp4','').replace('.mov','')\}]" addUserKnob {20 config n 1} config 0 addUserKnob {1 ffmpeg_cmd l command t "Enter the path to the ffmpeg executable. \nWindows:\nffmpeg.exe uses the ffmpeg provided with the nuke tool.\n\nLinux/MacOS (untested!)\nffmpeg without a path will use the environment."} ffmpeg_cmd ffmpeg.exe addUserKnob {1 nodeLabel l label t "used for node labelling."} nodeLabel "\[python \{nuke.thisNode().knobs()\['file'].value().split('/')\[-1]\}]" addUserKnob {1 helper t "Expression string if you want to derive the burn-in via expression from SceneControl config."} helper "\[value sceneCtrl.project]_\[value sceneCtrl.dept]_\[value sceneCtrl.sequence]_\[value sceneCtrl.shot].\[value sceneCtrl.task]_v\[format %03s \[value sceneCtrl.major_version]]" addUserKnob {1 helper2 l helper t "Default string for burn-in name."} helper2 "\[python \{nuke.thisNode().knobs()\['file'].value().split('/')\[-1].replace('.mp4','').replace('.mov','')\}]" addUserKnob {7 fontScale l "font scale"} fontScale 0.25 addUserKnob {20 endGroup_defaults l "endGroup Defaults" n -1} addUserKnob {6 burnName l "Burn-in Name" +STARTLINE} burnName true addUserKnob {6 burnFrame l "Burn-in Frame" -STARTLINE} burnFrame true addUserKnob {6 vcurrent l "Create vcurrent" -STARTLINE} vcurrent true addUserKnob {26 ""} addUserKnob {7 framerate R 23 30} framerate 24 addUserKnob {1 framerange -STARTLINE} framerange 1001-1024 addUserKnob {22 set_framerange l "Set to Input" -STARTLINE T "n = nuke.thisNode()\nfr = n.frameRange()\nn\['framerange'].setValue(\"\{0\}-\{1\}\".format(fr.first(), fr.last()))"} addUserKnob {22 set_sc_framerange l "Set Framerange" t "Set framerange from SceneControl." -STARTLINE T "c = nuke.exists(\"sceneCtrl\")\nif c:\n sc = nuke.toNode('sceneCtrl')\n \n n = nuke.thisNode()\n n\['framerange'].setValue(\"\{0\}-\{1\}\".format(int(sc.knobs()\['fStart'].getValue()), int(sc.knobs()\['fEnd'].getValue())))\nelse:\n print('No SceneControl found.')\n"} addUserKnob {22 render l Render t "Saves your scene and renders.\nSee the progress in the Nuke Console Window." T "import ffmpeg_render\nffmpeg_render.prep()" +STARTLINE} addUserKnob {20 help_1 l Help} addUserKnob {26 helptext l "Help " T "1. choose preset\n\n2. set info if needed\n\n3. \n\n4. enable or disable burn ins\n\n5. \n\n6. Look at the Nuke Console for progress\n"} } Input { inputs 0 name Input xpos -40 ypos -112 } Dot { name Dot66 xpos -6 ypos -16 } set N47169c00 [stack 0] Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "\[value parent.burnNameText]" old_message {{72 79 84 95 99 111 109 112 95 48 48 49 95 48 51 48 46 99 111 109 112 95 118 48 48 49} } old_expression_markers {{0 25} } box {15 5 {box.x+600 x1001 525} 100} yjustify bottom transforms {{0 2} } cursor_position 27 font {{ Arial : Regular : arial.ttf : 0 }} global_font_scale {{"\[value parent.fontScale]"}} scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{27.5 118.5} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1024 778 0 0 1 1 0 0 0 0} } name Text_SHOTNAME1 xpos -163 ypos -19 } push $N47169c00 Switch { inputs 2 which {{"\[value parent.burnName]"}} name switch_name xpos -40 ypos 41 } Dot { name Dot1 xpos -6 ypos 79 } set N47169000 [stack 0] Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "\[format %04s \[frame]]" old_message {{49 48 50 52} } old_expression_markers {{0 3} } box {{width-15-500} 5 {width-15} 100} xjustify right yjustify bottom transforms {{0 2} } font_size_values {{0 100 1 100 2 100 3 100} } baseline_values {{0 0 1 0 2 0 3 0} } cursor_position 21 font {{ Arial : Regular : arial.ttf : 0 }} global_font_scale {{"\[value parent.fontScale]"}} scale {1 1} cursor_initialised true autofit_bbox false initial_cursor_position {{1876.5 146.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1024 778 0 0 1 1 0 0 0 0} } name Text_FRAMECOUNT1 xpos -164 ypos 76 } push $N47169000 Switch { inputs 2 which {{"\[value parent.burnFrame]"}} name switch_frame xpos -40 ypos 136 } Write { raw true file_type tiff datatype "16 bit" compression none checkHashOnRead false version 486 name write_tmp xpos -40 ypos 246 addUserKnob {20 keller l Keller} addUserKnob {4 subtask t "Defaults to the Task selected in sceneControl, ignoring Element and Info.\nAll other subtasks are pre-renders and get rendered into the precomp (=prerender) directory." M {scriptTask denoise key neutralgrade prerender stabilize}} addUserKnob {22 w_reload l Reload t "Reload Tasks" -STARTLINE T sceneControl.kenvWriteReloadSubTasks(nuke.thisNode())} addUserKnob {1 element l Element t "Optional Specifier. For example \[BG]_denoise. \[FG]_denoise."} addUserKnob {1 info l Info t "Optional Info before Framenumber.\nPRO_comp3d_001_010.comp3d_v008.\[acescg].%04d.exr"} addUserKnob {22 set l Set t "Set Output Path of this node" T sceneControl.kenvWriteSetPath(nuke.thisNode()) +STARTLINE} addUserKnob {26 divider1 l "" +STARTLINE} addUserKnob {6 ignore l "ignore in sceneControl" -STARTLINE} ignore true addUserKnob {26 divider2 l "" +STARTLINE} addUserKnob {22 playinrv l "Play in RV" t "Opens new instance of RV" T playInRV.playInRV(nuke.thisNode().knob('file').getValue(),0) +STARTLINE} addUserKnob {22 pushtorv l "Push to RV" t "Push to tagged RV. Will open RV and uses this instance to directly push sequences." -STARTLINE T playInRV.playInRV(nuke.thisNode().knob('file').getValue(),1)} addUserKnob {22 pushtorvappend l "Push to RV (append)" t "Push to RV and append to existing sources" -STARTLINE T playInRV.playInRV(nuke.thisNode().knob('file').getValue(),2)} addUserKnob {26 divider3 l "" +STARTLINE} addUserKnob {22 explore l Explore t "Open Folder" -STARTLINE T exploreThis.exploreThis()} } Output { name Output xpos -40 ypos 355 } StickyNote { inputs 0 name StickyNote1 label keep_name! xpos 60 ypos 253 } end_group