set cut_paste_input [stack 0]
version 12.2 v5
push $cut_paste_input
Group {
 name Preview_QT
 tile_color 1
 label "h264 intra\n\[value nodeLabel]"
 selected true
 xpos -5
 ypos -51
 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 12 -preset slow -tune film -pix_fmt yuv420p -g 1 -bf 0 -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/010/010/HOT_comp_010_010.comp_v001/HOT_comp_010_010.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, USE_ENV_PROJECTROOT=False)\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 {26 ""}
 addUserKnob {7 framerate R 23 30}
 framerate {{"\[python \{nuke.root().knobs()\['fps'].value()\}]"}}
 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. <Set Filepath>\n\n4. enable or disable burn ins\n\n5. <Render>\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 N4966fc00 [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 49 48 95 48 49 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 $N4966fc00
 Switch {
  inputs 2
  which {{"\[value parent.burnName]"}}
  name switch_name
  xpos -40
  ypos 41
 }
 Dot {
  name Dot1
  xpos -6
  ypos 79
 }
set N4966f000 [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 $N4966f000
 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
  selected true
  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
