AWS Thinkbox Discussion Forums

RV strech my render

Hi,

I was wondering if there is any way that RV can keep the aspect ration of my render.
I do Quality control en crop 5K video. Im suuppose to have 2 black bar. (at the top and bottom). Instead draft strech the video in those empty area.

Thanks :slight_smile:

Fred

I want to make sure I understand: Draft stretches your image, but you want it to have black bars instead?

Here’s one way to do that. Edit your Draft template script. Paste this after the first few lines that begin with “import” and “from”:

[code]def ResizeWithLetterbox(self, width, height):
if width <= 0:
raise RuntimeError(‘width must be a positive number’)
if height <= 0:
raise RuntimeError(‘height must be a positive number’)
sourceAR = float(self.width) / self.height
destAR = float(width) / height
if sourceAR == destAR:
self.Resize(width, height)
else:
image = copy.deepcopy(self)
self.Resize(width,height)
self.SetToColor(ColorRGBA(0, 0, 0, 1.0))
if sourceAR > destAR:
image.Resize(width,int(round(width/sourceAR)))
else:
image.Resize(int(round(height*sourceAR)),height)
self.CompositeWithPositionAndGravity(image, 0.5, 0.5, PositionalGravity.CenterGravity, CompositeOperator.CopyCompositeOp)

Image.ResizeWithLetterbox = ResizeWithLetterbox[/code]

Then search for .Resize in your Draft template script, and replace it with .ResizeWithLetterbox

Please let me know if you have any questions.

i get this:

[code]=======================================================
Error Message

Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
à Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)

=======================================================
Slave Log

0: Task timeout is disabled.
0: Loaded job: IA_009_0001_lts_preCmp.nk [DRAFT] (999_050_00a_01e53a25)
0: INFO: StartJob: initializing script plugin Draft
0: INFO: Found Draft python module at: ‘C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft\Draft.pyd’
0: INFO: About: Draft Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Draft job starting…
0: INFO: Stdout Handling Enabled: False
0: INFO: Popup Handling Enabled: False
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe’
0: INFO: Render Executable: “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe”
0: INFO: Render Argument: -u “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py” username=“Eric Maltais” entity="" version="" width=5120 height=2700 frameList=1-252 startFrame=1 endFrame=252 inFile="\fx-nas-01\vfx\RENDER\IA\SHOTS\009\0001\lts\preCmp\v06\IA_009_0001_lts_preComp_v06.%v.####.exr" outFile="\fx-nas-01\vfx\RENDER\IA\SHOTS\009\0001\lts\preCmp\v06\Draft\IA_009_0001_lts_preComp_v06.%v…mov" deadlineJobID=999_050_999_6cdc17f1
0: INFO: Startup Directory: “C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Checking for license at
0: STDOUT: Command line args:
0: STDOUT: username=Eric Maltais
0: STDOUT: entity=
0: STDOUT: version=
0: STDOUT: width=5120
0: STDOUT: height=2700
0: STDOUT: frameList=1-252
0: STDOUT: startFrame=1
0: STDOUT: endFrame=252
0: STDOUT: inFile=\fx-nas-01\vfx\RENDER\IA\SHOTS\009\0001\lts\preCmp\v06\IA_009_0001_lts_preComp_v06.%v.####.exr
0: STDOUT: outFile=\fx-nas-01\vfx\RENDER\IA\SHOTS\009\0001\lts\preCmp\v06\Draft\IA_009_0001_lts_preComp_v06.%v…mov
0: STDOUT: deadlineJobID=999_050_999_6cdc17f1
0: STDOUT: Encoding Slate Frames…
0: STDOUT: Processing Frame: 1…-1
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 202, in
0: STDOUT: bgFrame.ResizeWithLetterbox( outWidth, outHeight )
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.ResizeWithLetterbox(width,height)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_h264_MJPEG_burnins.py”, line 20, in ResizeWithLetterbox
0: STDOUT: image = copy.deepcopy(self)
0: STDOUT: File “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\lib\copy.py”, line 173, in deepcopy
0: STDOUT: y = copier(memo)
0: STDOUT: RuntimeError: Image: Failed to allocate memory for channel R
0: STDOUT: Output #0, mov, to ‘\fx-nas-01\vfx\RENDER\IA\SHOTS\009\0001\lts\preCmp\v06\Draft\IA_009_0001_lts_preComp_v06.l…mov’:
0: STDOUT: Stream #0:0: Video: mjpeg, yuvj420p, 1920x1080, q=2-31, 75000 kb/s, 90k tbn, 24 tbc
0: STDOUT: Output #0, mov, to ‘\fx-nas-01\vfx\RENDER\IA\SHOTS\009\0001\lts\preCmp\v06\Draft\IA_009_0001_lts_preComp_v06.l.-h264.mov’:
0: STDOUT: Stream #0:0: Video: h264, yuvj420p, 1920x1080, q=4-51, 16000 kb/s, 90k tbn, 24 tbc
0: STDOUT: [libx264 @ 000000000055C2A0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
0: STDOUT: [libx264 @ 000000000055C2A0] profile High, level 4.1
0: STDOUT: [libx264 @ 000000000055C2A0] 264 - core 119 - H.264/MPEG-4 AVC codec - Copyright 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=0 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=2 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=3 keyint_min=1 scenecut=40 intra_refresh=0 rc_lookahead=3 rc=abr mbtree=1 bitrate=16000 ratetol=1.0 qcomp=0.60 qpmin=4 qpmax=51 qpstep=4 ip_ratio=1.40 aq=1:1.00
0: INFO: Process exit code: 1

=======================================================
Error Type

RenderPluginException

=======================================================
Error Stack Trace

à Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
à Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)
[/code]

Thanks!

Are you using the latest version of Draft (currently Draft_Beta_8.zip)?

Would it be possible for you to please post a copy of the script that you’re using (simple_slate_h264_MJPEG_burnins.py)?

Finally, would it be possible for you to please send us a copy of one of your image files (for example, \fx-nas-01\vfx\RENDER\IA\SHOTS\009\0001\lts\preCmp\v06\IA_009_0001_lts_preComp_v06.%v.0001.exr)? It’s alright if you can’t, but it may help us. You can send us files using our ticket system.

I cannot send you a picture sorry, but im allowed to send you the script.

There it is:

Thanks !

Fred
simple_slate_h264_MJPEG_burnins(letterbox).zip (2.76 KB)

Thanks! Are you using the latest version of Draft (Draft_Beta_8.zip from Friday March 23rd) ?

No, i will install it right now

Thanks !

Sorry, there was an error in my instructions.

On line 18 of your script, replace: self.ResizeWithLetterbox(width, height) with self.Resize(width, height)
And on line 21 of your script, replace: self.ResizeWithLetterbox(width,height) with self.Resize(width,height)

Or you can copy the code I pasted earlier, and paste it over top of the version in your script.

Hi Jon et al

Any way you could post this .ResizeWithLetterbox function in your “IMPORTANT: Draft Installation and Usage” thread, along with any other new standard functions or variations on existing functions? This would’ve been super helpful for me to use from the start.

Thanks, and Draft is proving surprisingly useful

Bill

Thank you for your comment!

We just created a Draft Cookbook forum to collect things like this.

ResizeWithLetterbox() seems like such a common requirement that I’m tempted to add it directly to Draft.

Agreed, Paul.

Cb

My render still get strech,

Did i do a error in my code ?

[code]import sys
import os
import datetime
import copy
import xml.etree.ElementTree as xml

import Draft
from DraftParamParser import *

def ResizeWithLetterbox(self, width, height):
if width <= 0:
raise RuntimeError(‘width must be a positive number’)
if height <= 0:
raise RuntimeError(‘height must be a positive number’)
sourceAR = float(self.width) / self.height
destAR = float(width) / height
if sourceAR == destAR:
self.Resize(width, height)
else:
image = copy.deepcopy(self)
self.Resize(width,height)
self.SetToColor(Draft.ColorRGBA(0, 0, 0, 1.0))
if sourceAR > destAR:
image.ResizeWithLetterbox(width,width/destAR)
else:
image.ResizeWithLetterbox(height*destAR,height)
self.CompositeWithGravity(image, Draft.PositionalGravity.CenterGravity, Draft.CompositeOperator.OverCompositeOp)

Draft.Image.ResizeWithLetterbox = ResizeWithLetterbox

#Returns a dictionary of a Deadline Job’s properties
def getDeadlineJob (job, repository):
deadlineJobPath = (repository + “\jobs\” + job + “\” + job + “.job”)
jobKeys = (xml.parse(deadlineJobPath)).getroot()
jobDict = {}
for o in list(jobKeys):
if len(o.getchildren()) < 1:
jobDict[o.tag] = o.text
else:
jobDict[o.tag] = []
for t in list(o):
(jobDict[o.tag]).append(t.text)
jobDict[‘deadlineJobPath’] = deadlineJobPath
return jobDict

#Returns a list of frames based on the given frameString
def FrameListToFrames( frameString ):
frames = []
frameRangeTokens = re.split( ‘\s+|,+’, frameString )

for token in frameRangeTokens:
	try:
		if ( len(token) > 0 ):
			dashIndex = string.find( token, '-', 1)
			
			if ( dashIndex == -1 ):
				startFrame = int(token)
				frames.add( startFrame )
			else:
				startFrame = int(token[0:dashIndex])
				
				m = re.match( "(-?\d+)(?:(x|step|by|every)(\d+))?", token[dashIndex + 1:] )
				if ( m == None ):
					raise StandardError( "Second part of Token '" + token[dashIndex + 1:] + "' failed regex match" )
				else:
					endFrame = int(m.group(1))
					
					if ( m.group(2) == None ):
						frames.extend( range(startFrame, endFrame + 1 ))
					else:
						dir = 1
						if startFrame > endFrame:
							dir = -1
							
						byFrame = int(m.group(3));
						
						frame = startFrame
						while (startFrame * dir) <= (endFrame * dir):
							frames.add( frame )
							frame += byFrame * dir
							
	except:
		print "ERROR: Frame Range token '" + token + "' is malformed. Skipping this token."
		raise

frames = list(set(frames))
frames.sort()

return frames

#CHANGE ME! Path to the Deadline Repository root
deadlineRepo = “\fx-deadline\deadline\”

#CHANGE ME! Path to an image containing the background of the slate frame
slateFrame = “\\fx-deadline\deadline\Draft\Slate_Montage5K.png”

#The argument name/types we’re expecting from the command line arguments
expectedTypes = dict()
expectedTypes[‘frameList’] = ‘’
expectedTypes[‘inFile’] = ‘’
expectedTypes[‘outFile’] = ‘’
expectedTypes[‘username’] = ‘’
expectedTypes[‘entity’] = ‘’
expectedTypes[‘version’] = ‘’
expectedTypes[‘deadlineJobID’] = ‘’

#Parse the command line arguments
params = ParseCommandLine( expectedTypes, sys.argv )

inFilePattern = params[‘inFile’]
frames = FrameListToFrames( params[‘frameList’] )
(outBase, outExt)= os.path.splitext( params[‘outFile’] )

#not a huge deal if we can’t connect to the repo, we’ll just be missing some info
try:
jobParams = getDeadlineJob( params[‘deadlineJobID’], deadlineRepo )
except:
jobParams = {}

outWidth = 1920
outHeight = 1080
h264Scale = 1
slateFrames = 1

for eye in [‘l’,‘r’]:
#Build up the encoders
outBaseEye = outBase.replace( ‘%v’, eye )
MJPEGencoder = Draft.VideoEncoder( outBaseEye + outExt, 24, outWidth, outHeight, 75000, “MJPEG” )
h264Encoder = Draft.VideoEncoder( outBaseEye + “-h264” + outExt, 24, int(h264Scale * outWidth), int(h264Scale * outHeight), 16000, “H264” )

#Annotation info used for burn ins
annotationInfo = Draft.AnnotationInfo()
annotationInfo.FontType = "Times-New-Roman"
annotationInfo.PointSize = int( outHeight * 0.022 )
annotationInfo.Color = Draft.ColorRGBA( 1.0, 1.0, 1.0, 1.0 )

#prep the Slate Frame
try:
	slate = Draft.Image.ReadFromFile( slateFrame )
except:
	slate = Draft.Image.CreateImage( outWidth, outHeight )
	slate.SetToColor( Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 ) )
	
if ( slate.width != outWidth or slate.height != outHeight ):
	slate.ResizeWithLetterbox( outWidth, outHeight )

#sets up the text on the slate frame
slateAnnotations = [
		("SHOW", jobParams.get('ExtraInfo1', '<SKIP>')), #This line is skipped if there is not ExtraInfo1
		("Episode", params.get('episode', '<SKIP>')), #This line is skipped if 'episode' isn't in the extra args
		("Shot", params['entity']),
		("Frames", params['frameList']),
		("Handles", params.get('handles', '<SKIP>')), #This line is skipped if 'handles' isn't in the extra args
		("Version", params['version']),
		("",''),
		("",''),
		("Artist", params['username']),
		("Date", datetime.datetime.now().strftime("%m/%d/%Y %I:%M %p") )
	]

#comp the annotations over top the slate frame
skipLines = 0 
for i in range( 0, len( slateAnnotations ) ):
	annotationTuple = slateAnnotations[i]
	
	if ( annotationTuple[1] == "<SKIP>" ):
		skipLines += 1
		continue
		
	lineNum = i - skipLines
	if ( annotationTuple[0] != "" ):
		annotation = Draft.Image.CreateAnnotation( slateAnnotations[i][0] + ": ", annotationInfo )
		slate.CompositeWithPositionAndGravity( annotation, 0.45, 0.7 - (lineNum * 0.06), Draft.PositionalGravity.SouthEastGravity, Draft.CompositeOperator.OverCompositeOp )
		
	if ( annotationTuple[1] != "" ):
		annotation = Draft.Image.CreateAnnotation( slateAnnotations[i][1], annotationInfo )
		slate.CompositeWithPositionAndGravity( annotation, 0.46, 0.7 - (lineNum * 0.06), Draft.PositionalGravity.SouthWestGravity, Draft.CompositeOperator.OverCompositeOp )

slate_h264 = copy.deepcopy( slate )
if ( h264Scale != 1 ):
	slate_h264.ResizeWithLetterbox( int(outWidth * h264Scale), int(outHeight * h264Scale) )
	
#encode the slate frames at the start of the video
print( "Encoding Slate Frames..." )
for i in range( 0, slateFrames ):
	MJPEGencoder.EncodeNextFrame( slate )
	h264Encoder.EncodeNextFrame( slate_h264 )

studioAnnotation = Draft.Image.CreateAnnotation( "The Ice Age", annotationInfo )
entityAnnotation = Draft.Image.CreateAnnotation( "%s    %s" % (params['entity'], datetime.datetime.now().strftime("%m/%d/%Y")), annotationInfo )
annotationInfo.BackgroundColor = Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 )

#Main encoding loop 
for frameNumber in frames:
	print( "Processing Frame: %d...-1" % frameNumber )
	
	inFile = inFilePattern.replace( '%v', eye )
	inFile = ReplaceFilenameHashesWithNumber( inFile, frameNumber )
	bgFrame = Draft.Image.ReadFromFile( inFile )
	
	if ( bgFrame.width != outWidth or bgFrame.height != outHeight ):
		bgFrame.ResizeWithLetterbox( outWidth, outHeight )
	
	#Do the frame burnins
	framesAnnotation = Draft.Image.CreateAnnotation( str( frameNumber ), annotationInfo )
	bgFrame.CompositeWithGravity( studioAnnotation, Draft.PositionalGravity.NorthWestGravity, Draft.CompositeOperator.OverCompositeOp )
	bgFrame.CompositeWithGravity( entityAnnotation, Draft.PositionalGravity.SouthWestGravity, Draft.CompositeOperator.OverCompositeOp )
	bgFrame.CompositeWithGravity( framesAnnotation, Draft.PositionalGravity.SouthEastGravity, Draft.CompositeOperator.OverCompositeOp )
	
	MJPEGencoder.EncodeNextFrame( bgFrame )
	
	if ( h264Scale != 1 ):
		bgFrame.ResizeWithLetterbox( int(outWidth * h264Scale), int(outHeight * h264Scale) )
	
	h264Encoder.EncodeNextFrame( bgFrame )
	
#Finalize the encoding process
MJPEGencoder.FinalizeEncoding()
h264Encoder.FinalizeEncoding()

[/code]

Thanks !

Fred

Yes, I think the problem is the ResizeWithLetterbox() calls on lines 24 and 26. Please try this version:

[code] import sys
import os
import datetime
import copy
import xml.etree.ElementTree as xml

import Draft
from DraftParamParser import *

def ResizeWithLetterbox(self, width, height):
    if width <= 0:
        raise RuntimeError('width must be a positive number')
    if height <= 0:
        raise RuntimeError('height must be a positive number')
    sourceAR = float(self.width) / self.height
    destAR = float(width) / height
    if sourceAR == destAR:
        self.Resize(width, height)
    else:
        image = copy.deepcopy(self)
        self.Resize(width,height)
        self.SetToColor(ColorRGBA(0, 0, 0, 1.0))
        if sourceAR > destAR:
            image.Resize(width,int(round(width/sourceAR)))
        else:
            image.Resize(int(round(height*sourceAR)),height)
        self.CompositeWithPositionAndGravity(image, 0.5, 0.5, PositionalGravity.CenterGravity, CompositeOperator.CopyCompositeOp)

Image.ResizeWithLetterbox = ResizeWithLetterbox
Draft.Image.ResizeWithLetterbox = ResizeWithLetterbox

#Returns a dictionary of a Deadline Job's properties
def getDeadlineJob (job, repository):
    deadlineJobPath = (repository + "\\jobs\\" + job + "\\" + job + ".job")
    jobKeys = (xml.parse(deadlineJobPath)).getroot()
    jobDict = {}
    for o in list(jobKeys):
        if len(o.getchildren()) < 1:
            jobDict[o.tag] = o.text
        else:
            jobDict[o.tag] = []
            for t in list(o):
                (jobDict[o.tag]).append(t.text)
    jobDict['deadlineJobPath'] = deadlineJobPath
    return jobDict

#Returns a list of frames based on the given frameString
def FrameListToFrames( frameString ):
    frames = []
    frameRangeTokens = re.split( '\s+|,+', frameString )

    for token in frameRangeTokens:
        try:
            if ( len(token) > 0 ):
                dashIndex = string.find( token, '-', 1)

                if ( dashIndex == -1 ):
                    startFrame = int(token)
                    frames.add( startFrame )
                else:
                    startFrame = int(token[0:dashIndex])

                    m = re.match( "(-?\d+)(?:(x|step|by|every)(\d+))?", token[dashIndex + 1:] )
                    if ( m == None ):
                        raise StandardError( "Second part of Token '" + token[dashIndex + 1:] + "' failed regex match" )
                    else:
                        endFrame = int(m.group(1))

                        if ( m.group(2) == None ):
                            frames.extend( range(startFrame, endFrame + 1 ))
                        else:
                            dir = 1
                            if startFrame > endFrame:
                                dir = -1

                            byFrame = int(m.group(3));

                            frame = startFrame
                            while (startFrame * dir) <= (endFrame * dir):
                                frames.add( frame )
                                frame += byFrame * dir

        except:
            print "ERROR: Frame Range token '" + token + "' is malformed. Skipping this token."
            raise

    frames = list(set(frames))
    frames.sort()

    return frames

#CHANGE ME! Path to the Deadline Repository root
deadlineRepo = "\\fx-deadline\\deadline\\"

#CHANGE ME! Path to an image containing the background of the slate frame
slateFrame = "\\\\fx-deadline\\deadline\\Draft\\Slate_Montage5K.png"

#The argument name/types we're expecting from the command line arguments
expectedTypes = dict()
expectedTypes['frameList'] = '<string>'
expectedTypes['inFile'] = '<string>'
expectedTypes['outFile'] = '<string>'
expectedTypes['username'] = '<string>'
expectedTypes['entity'] = '<string>'
expectedTypes['version'] = '<string>'
expectedTypes['deadlineJobID'] = '<string>'

#Parse the command line arguments
params = ParseCommandLine( expectedTypes, sys.argv )

inFilePattern = params['inFile']
frames = FrameListToFrames( params['frameList'] )
(outBase, outExt)= os.path.splitext( params['outFile'] )

#not a huge deal if we can't connect to the repo, we'll just be missing some info
try:
    jobParams = getDeadlineJob( params['deadlineJobID'], deadlineRepo )
except:
    jobParams = {}

outWidth = 1920
outHeight = 1080
h264Scale = 1
slateFrames = 1

for eye in ['l','r']:
    #Build up the encoders
    outBaseEye = outBase.replace( '%v', eye )
    MJPEGencoder = Draft.VideoEncoder( outBaseEye + outExt, 24, outWidth, outHeight, 75000, "MJPEG" )
    h264Encoder = Draft.VideoEncoder( outBaseEye + "-h264" + outExt, 24, int(h264Scale * outWidth), int(h264Scale * outHeight), 16000, "H264" )

    #Annotation info used for burn ins
    annotationInfo = Draft.AnnotationInfo()
    annotationInfo.FontType = "Times-New-Roman"
    annotationInfo.PointSize = int( outHeight * 0.022 )
    annotationInfo.Color = Draft.ColorRGBA( 1.0, 1.0, 1.0, 1.0 )

    #prep the Slate Frame
    try:
        slate = Draft.Image.ReadFromFile( slateFrame )
    except:
        slate = Draft.Image.CreateImage( outWidth, outHeight )
        slate.SetToColor( Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 ) )

    if ( slate.width != outWidth or slate.height != outHeight ):
        slate.ResizeWithLetterbox( outWidth, outHeight )

    #sets up the text on the slate frame
    slateAnnotations = [
          ("SHOW", jobParams.get('ExtraInfo1', '<SKIP>')), #This line is skipped if there is not ExtraInfo1
          ("Episode", params.get('episode', '<SKIP>')), #This line is skipped if 'episode' isn't in the extra args
          ("Shot", params['entity']),
          ("Frames", params['frameList']),
          ("Handles", params.get('handles', '<SKIP>')), #This line is skipped if 'handles' isn't in the extra args
          ("Version", params['version']),
          ("",''),
          ("",''),
          ("Artist", params['username']),
          ("Date", datetime.datetime.now().strftime("%m/%d/%Y %I:%M %p") )
       ]

    #comp the annotations over top the slate frame
    skipLines = 0
    for i in range( 0, len( slateAnnotations ) ):
        annotationTuple = slateAnnotations[i]

        if ( annotationTuple[1] == "<SKIP>" ):
            skipLines += 1
            continue

        lineNum = i - skipLines
        if ( annotationTuple[0] != "" ):
            annotation = Draft.Image.CreateAnnotation( slateAnnotations[i][0] + ": ", annotationInfo )
            slate.CompositeWithPositionAndGravity( annotation, 0.45, 0.7 - (lineNum * 0.06), Draft.PositionalGravity.SouthEastGravity, Draft.CompositeOperator.OverCompositeOp )

        if ( annotationTuple[1] != "" ):
            annotation = Draft.Image.CreateAnnotation( slateAnnotations[i][1], annotationInfo )
            slate.CompositeWithPositionAndGravity( annotation, 0.46, 0.7 - (lineNum * 0.06), Draft.PositionalGravity.SouthWestGravity, Draft.CompositeOperator.OverCompositeOp )

    slate_h264 = copy.deepcopy( slate )
    if ( h264Scale != 1 ):
        slate_h264.ResizeWithLetterbox( int(outWidth * h264Scale), int(outHeight * h264Scale) )

    #encode the slate frames at the start of the video
    print( "Encoding Slate Frames..." )
    for i in range( 0, slateFrames ):
        MJPEGencoder.EncodeNextFrame( slate )
        h264Encoder.EncodeNextFrame( slate_h264 )

    studioAnnotation = Draft.Image.CreateAnnotation( "The Ice Age", annotationInfo )
    entityAnnotation = Draft.Image.CreateAnnotation( "%s    %s" % (params['entity'], datetime.datetime.now().strftime("%m/%d/%Y")), annotationInfo )
    annotationInfo.BackgroundColor = Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 )

    #Main encoding loop
    for frameNumber in frames:
        print( "Processing Frame: %d...-1" % frameNumber )

        inFile = inFilePattern.replace( '%v', eye )
        inFile = ReplaceFilenameHashesWithNumber( inFile, frameNumber )
        bgFrame = Draft.Image.ReadFromFile( inFile )

        if ( bgFrame.width != outWidth or bgFrame.height != outHeight ):
            bgFrame.ResizeWithLetterbox( outWidth, outHeight )

        #Do the frame burnins
        framesAnnotation = Draft.Image.CreateAnnotation( str( frameNumber ), annotationInfo )
        bgFrame.CompositeWithGravity( studioAnnotation, Draft.PositionalGravity.NorthWestGravity, Draft.CompositeOperator.OverCompositeOp )
        bgFrame.CompositeWithGravity( entityAnnotation, Draft.PositionalGravity.SouthWestGravity, Draft.CompositeOperator.OverCompositeOp )
        bgFrame.CompositeWithGravity( framesAnnotation, Draft.PositionalGravity.SouthEastGravity, Draft.CompositeOperator.OverCompositeOp )

        MJPEGencoder.EncodeNextFrame( bgFrame )

        if ( h264Scale != 1 ):
            bgFrame.ResizeWithLetterbox( int(outWidth * h264Scale), int(outHeight * h264Scale) )

        h264Encoder.EncodeNextFrame( bgFrame )

    #Finalize the encoding process
    MJPEGencoder.FinalizeEncoding()
    h264Encoder.FinalizeEncoding()

[/code]

I got this

[code]=======================================================
Error Message

Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
à Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)

=======================================================
Slave Log

0: Task timeout is disabled.
0: Loaded job: IA_009_0011_shl_groundmatch.nk [DRAFT] (999_050_00a_630b3386)
0: INFO: StartJob: initializing script plugin Draft
0: INFO: Found Draft python module at: ‘C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft\Draft.pyd’
0: INFO: About: Draft Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Draft job starting…
0: INFO: Stdout Handling Enabled: False
0: INFO: Popup Handling Enabled: False
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe’
0: INFO: Render Executable: “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe”
0: INFO: Render Argument: -u “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_eyes_h264_MJPEG_burnins.py” username=“Guy Boudreau” entity="" version="" width=5120 height=2700 frameList=352-651 startFrame=352 endFrame=651 inFile=“R:\IA\PLATES\009\0011\shl\outputs\IA_009_0011_shl_groundmatch.%v.####.jpg” outFile=“R:\IA\PLATES\009\0011\shl\outputs\Draft\IA_009_0011_shl_groundmatch.%v…mov” deadlineJobID=999_050_999_32512cd3
0: INFO: Startup Directory: “C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Checking for license at @ProdFlexMR
0: STDOUT: Command line args:
0: STDOUT: username=Guy Boudreau
0: STDOUT: entity=
0: STDOUT: version=
0: STDOUT: width=5120
0: STDOUT: height=2700
0: STDOUT: frameList=352-651
0: STDOUT: startFrame=352
0: STDOUT: endFrame=651
0: STDOUT: inFile=R:\IA\PLATES\009\0011\shl\outputs\IA_009_0011_shl_groundmatch.%v.####.jpg
0: STDOUT: outFile=R:\IA\PLATES\009\0011\shl\outputs\Draft\IA_009_0011_shl_groundmatch.%v…mov
0: STDOUT: deadlineJobID=999_050_999_32512cd3
0: STDOUT: Encoding Slate Frames…
0: STDOUT: Processing Frame: 352…-1
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_eyes_h264_MJPEG_burnins.py”, line 202, in
0: STDOUT: bgFrame.ResizeWithLetterbox( outWidth, outHeight )
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_eyes_h264_MJPEG_burnins.py”, line 24, in ResizeWithLetterbox
0: STDOUT: image.ResizeWithLetterbox(width,width/destAR)
0: STDOUT: File “C:/Users/renderfx/AppData/Local/Thinkbox/Deadline/slave/Draft_node/jobsData/simple_slate_eyes_h264_MJPEG_burnins.py”, line 21, in ResizeWithLetterbox
0: STDOUT: self.Resize(width,height)
0: STDOUT: Boost.Python.ArgumentError: Python argument types in
0: STDOUT: Image.Resize(Image, int, float)
0: STDOUT: did not match C++ signature:
0: STDOUT: Resize(class frantic_image::image * __ptr64 self, int width, int height)
0: STDOUT: Output #0, mov, to ‘R:\IA\PLATES\009\0011\shl\outputs\Draft\IA_009_0011_shl_groundmatch.l…mov’:
0: STDOUT: Stream #0:0: Video: mjpeg, yuvj420p, 1920x1080, q=2-31, 75000 kb/s, 90k tbn, 24 tbc
0: STDOUT: Output #0, mov, to ‘R:\IA\PLATES\009\0011\shl\outputs\Draft\IA_009_0011_shl_groundmatch.l.-h264.mov’:
0: STDOUT: Stream #0:0: Video: h264, yuvj420p, 1920x1080, q=4-51, 16000 kb/s, 90k tbn, 24 tbc
0: STDOUT: [libx264 @ 00000000004DC280] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
0: STDOUT: [libx264 @ 00000000004DC280] profile High, level 4.1
0: STDOUT: [libx264 @ 00000000004DC280] 264 - core 119 - H.264/MPEG-4 AVC codec - Copyright 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=0 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=2 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=3 keyint_min=1 scenecut=40 intra_refresh=0 rc_lookahead=3 rc=abr mbtree=1 bitrate=16000 ratetol=1.0 qcomp=0.60 qpmin=4 qpmax=51 qpstep=4 ip_ratio=1.40 aq=1:1.00
0: INFO: Process exit code: 1

=======================================================
Error Type

RenderPluginException

=======================================================
Error Stack Trace

à Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
à Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)
[/code]

But this is not the same render as before. It might be a new bug. I just started the same render as the fist time to see if anything change

Thanks !

Fred

Can you copy me the script without the space before each line. Im thinking that might me a part of my problem.

Thanks !

Sure thing!
simple_slate_h264_MJPEG_burnins(letterbox)2.zip (2.81 KB)

It give me this:

[code]=======================================================
Error Message

Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
à Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)

=======================================================
Slave Log

0: Task timeout is disabled.
0: Loaded job: IA_005_0006_shl_tracking.nk [DRAFT] (999_075_999_78b22009)
0: INFO: StartJob: initializing script plugin Draft
0: INFO: Found Draft python module at: ‘C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft\Draft.pyd’
0: INFO: About: Draft Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Draft job starting…
0: INFO: Stdout Handling Enabled: False
0: INFO: Popup Handling Enabled: False
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe’
0: INFO: Render Executable: “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe”
0: INFO: Render Argument: -u “R:/simple_slate_h264_MJPEG_burnins.py” username=“Janick Belley” entity=“IA_005_0006_shl_tracking.nk” version="" inFile=“R:\IA\SHOTS\005\0006\shl\outputs\IA_005_0006_shl_Tracking.%v.####.exr” outFile=“R:\IA\SHOTS\005\0006\shl\outputs\Draft\IA_005_0006_shl_Tracking.%v…mov” startFrame=“43” endFrame=“294” frameList=“43-294” deadlineJobID=999_050_999_226345c4
0: INFO: Startup Directory: “C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Checking for license at @ProdFlexMR
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “R:/simple_slate_h264_MJPEG_burnins.py”, line 29, in
0: STDOUT: Image.ResizeWithLetterbox = ResizeWithLetterbox
0: STDOUT: NameError: name ‘Image’ is not defined
0: INFO: Process exit code: 1

=======================================================
Error Type

RenderPluginException

=======================================================
Error Stack Trace

à Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
à Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)
[/code]

Sorry about that, please remove this line:

Image.ResizeWithLetterbox = ResizeWithLetterbox

simple_slate_h264_MJPEG_burnins(letterbox)3.zip (2.81 KB)

Got an error again

[code]=======================================================
Error Message

Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
à Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)

=======================================================
Slave Log

0: Task timeout is disabled.
0: Loaded job: IA_005_0006_shl_tracking.nk [DRAFT] (999_075_999_78b22009)
0: INFO: StartJob: initializing script plugin Draft
0: INFO: Found Draft python module at: ‘C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft\Draft.pyd’
0: INFO: About: Draft Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Draft job starting…
0: INFO: Stdout Handling Enabled: False
0: INFO: Popup Handling Enabled: False
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe’
0: INFO: Render Executable: “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe”
0: INFO: Render Argument: -u “R:/simple_slate_h264_MJPEG_burnins.py” username=“Janick Belley” entity=“IA_005_0006_shl_tracking.nk” version="" inFile=“R:\IA\SHOTS\005\0006\shl\outputs\IA_005_0006_shl_Tracking.%v.####.exr” outFile=“R:\IA\SHOTS\005\0006\shl\outputs\Draft\IA_005_0006_shl_Tracking.%v…mov” startFrame=“43” endFrame=“294” frameList=“43-294” deadlineJobID=999_050_999_226345c4
0: INFO: Startup Directory: “C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Draft_node\Draft”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Checking for license at @ProdFlexMR
0: STDOUT: Command line args:
0: STDOUT: username=Janick Belley
0: STDOUT: entity=IA_005_0006_shl_tracking.nk
0: STDOUT: version=
0: STDOUT: inFile=R:\IA\SHOTS\005\0006\shl\outputs\IA_005_0006_shl_Tracking.%v.####.exr
0: STDOUT: outFile=R:\IA\SHOTS\005\0006\shl\outputs\Draft\IA_005_0006_shl_Tracking.%v…mov
0: STDOUT: startFrame=43
0: STDOUT: endFrame=294
0: STDOUT: frameList=43-294
0: STDOUT: deadlineJobID=999_050_999_226345c4
0: STDOUT: Encoding Slate Frames…
0: STDOUT: Processing Frame: 43…-1
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “R:/simple_slate_h264_MJPEG_burnins.py”, line 202, in
0: STDOUT: bgFrame.ResizeWithLetterbox( outWidth, outHeight )
0: STDOUT: File “R:/simple_slate_h264_MJPEG_burnins.py”, line 22, in ResizeWithLetterbox
0: STDOUT: self.SetToColor(ColorRGBA(0, 0, 0, 1.0))
0: STDOUT: NameError: global name ‘ColorRGBA’ is not defined
0: STDOUT: Output #0, mov, to ‘R:\IA\SHOTS\005\0006\shl\outputs\Draft\IA_005_0006_shl_Tracking.l…mov’:
0: STDOUT: Stream #0:0: Video: mjpeg, yuvj420p, 1920x1080, q=2-31, 75000 kb/s, 90k tbn, 24 tbc
0: STDOUT: Output #0, mov, to ‘R:\IA\SHOTS\005\0006\shl\outputs\Draft\IA_005_0006_shl_Tracking.l.-h264.mov’:
0: STDOUT: Stream #0:0: Video: h264, yuvj420p, 1920x1080, q=4-51, 16000 kb/s, 90k tbn, 24 tbc
0: STDOUT: [libx264 @ 00000000004DC280] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
0: STDOUT: [libx264 @ 00000000004DC280] profile High, level 4.1
0: STDOUT: [libx264 @ 00000000004DC280] 264 - core 119 - H.264/MPEG-4 AVC codec - Copyright 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=0 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=2 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=3 keyint_min=1 scenecut=40 intra_refresh=0 rc_lookahead=3 rc=abr mbtree=1 bitrate=16000 ratetol=1.0 qcomp=0.60 qpmin=4 qpmax=51 qpstep=4 ip_ratio=1.40 aq=1:1.00
0: INFO: Process exit code: 1

=======================================================
Error Type

RenderPluginException

=======================================================
Error Stack Trace

à Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
à Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)[/code]

Thanks for posting your log file. Based on these lines in the log:

0: STDOUT: File "R:/simple_slate_h264_MJPEG_burnins.py", line 22, in ResizeWithLetterbox 0: STDOUT: self.SetToColor(ColorRGBA(0, 0, 0, 1.0)) 0: STDOUT: NameError: global name 'ColorRGBA' is not defined

We need to change ColorRGBA to Draft.ColorRGBA on line 22 of the script:

self.SetToColor(Draft.ColorRGBA(0, 0, 0, 1.0))
Privacy | Site terms | Cookie preferences