Writing a custom job submission to encode AE renders post render via FFMPEG. Need to specify the job start frame which I see is in the source AE job but not sure how to pull that value to include in the FFMPEG submission script. We usually render via Multi-Machine so it inst directly written into the original source render but I see it in the “After Effects Properties” of the job details.
Is there a way to access and use this info in a Job Script?
I think I have found where the value is stored, I just have no idea how to retrieve it in a job script.
From the JobDetails:
AfterEffects Properties
Comp 3-HR-MS_Edit_Comp
ContinueOnMissingFootage false
FailOnExistingAEProcess false
FailOnWarnings false
IgnoreMissingEffectReferencesErrors false
IgnoreMissingLayerDependenciesErrors false
ImageCachePercentage 100
LocalRendering false
MaxMemoryPercentage 100
MemoryManagement false
MultiMachineEndFrame 542839
MultiMachineMode True
MultiMachineStartFrame 540000
MultiProcess false
Output \mba_assets\Projects\4918. HK CHRISTMAS 2016\10. Exports for Show\Previz\Seq01_Open\Seq01_v06_3\Seq01_v06_3_[#####].jpg
OverrideFailOnExistingAEProcess false
Version 13.7J
I have tried to directly grab it with:
job.GetJobPluginInfoKeyValue (MultiMachineStartFrame)
but that says that MultiMachineStartFrame is undefined so I am guessing the values are stored against some other key value but I cant find any documentation on what they are.
You’re pretty close. That function is pulling from the plugin file, not the job file. Try this one:
string Deadline.Jobs.Job.GetJobInfoKeyValue()
docs.thinkboxsoftware.com/produc … 1cb8b28a03
Also, any reason you’re not using QuickDraft? It should automate this almost entirely unless you need ProRes support.
docs.thinkboxsoftware.com/produc … draft.html
I though I had tried that one as well. It also throws an exception:
2016-10-11 08:36:03: Exception: Python Error: AttributeError : ‘Job’ object has no attribute ‘JobInfoKeyValue’ (Python.Runtime.PythonException)
So maybe its my syntax?
MMStartFrame = job.JobInfoKeyValue ( MultiMachineStartFrame )
Still on deadline 6 (i know, i know…) Maybe that is my problem…
Draft hasnt historically been an option for us cause we are typically going to ‘non-standard’ codecs. The big ones for us are Cineform, HAP, and FlexRes.
Perhaps Cineform is supported now. HAP is an open source codec that one of media servers uses and FlexRes is a proprietary codec from anther media server. We, along with the media server company, have developed a custom encoder to make the FlexRes files. Have it all integrated into Deadline already. Now I am working on the HAP encode process. Which lead me to where I am now.
Just noticed my typo…Missed the GET part of the syntax. Not enough coffee this morning…
I still get an exception:
2016-10-11 09:00:01: Exception: Python Error: NameError : global name ‘MultiMachineStartFrame’ is not defined (Python.Runtime.PythonException)
That function is expecting a string to be passed to it, try passing it
"MultiMachineStartFrame"
(notice the quotes). Right now it thinks you’re passing it a variable, which isn’t defined in your code. You COULD define it, but if it’s a one-off thing, then the above string should work fine.
Cheers
That did the trick…sort of.
No exceptions now but the return is coming back blank.
This is the returned argument string. The last arg is where I am expecting the value:
2016-10-11 11:32:49: PYTHON: [u’\\\\mba_assets\\Projects\\4918. HK CHRISTMAS 2016\\10. Exports for Show\\Previz\\Seq01_Open\\Seq01_v06_3\\Seq01_v06_3_HAP-30fps.mov’, u’Seq01_Open-v06-tp.aep - 3-HR-MS_Edit_Comp (multi-machine rendering frames 540000-542839)-HAP Encode’, u’57fd2ddf3b6b990ff8239a54’, u’\\\\mba_assets\\Projects\\4918. HK CHRISTMAS 2016\\10. Exports for Show\\Previz\\Seq01_Open\\Seq01_v06_3’, u’Seq01_v06_3_HAP-30fps.mov’, ‘30’, u’’]
Am I calling the right value? I see it listed in the After Effects Properties for the job details and it has a value.
Ahhh, I think I know what’s happening. Edwin made a slight mistake up above. I believe you had the right method call before, it was just that you weren’t using a string:
MMStartFrame = job.GetJobPluginInfoKeyValue("MultiMachineStartFrame")
The value you want IS actually in the plugin info file.
If you’re still having issues though, an easy way to determine what you can access in each file is to print the following:
print( "Plugin: " + str(job.GetJobPluginInfoKeys()) )
print( "\nJob: " + str(job.GetJobInfoKeys()) )
If the value is in the first print, use
job.GetJobPluginInfoKeyValue(...)
And if it’s in the second, use
job.GetJobInfoKeyValue(...)
Cheers
Well then! On second look, I had you trying to grab info from the ExtraInfo data in the job and that is absolutely not where that data is. Sorry for steering you wrong there, that’s quite embarrassing on my part.
Just wanted to report back that the script is working swimmingly so far. I just need creative to make up their minds about what exactly they need it to do…probably never happen…
Thanks for everyone’s help!!
Welcome