AWS Thinkbox Discussion Forums

Convert multiply movies

Hello, today I faced the the task that I should convert multiply movie from one format to an other.
I have folder which contain 100+ mov. I need generate small proxy from all of them to different folder with the same name. I have Adobe Media Encoder installed, also I can install ffmpeg if it is better.
When I convert files using Adobe Media Encoder, I can export preset. After that it is possible submit deadline job directly from monitor. I can select one input file, then choose output dir, import my preset, submit job. Everything going alright. But how to submit folder with multiply files inside?

The AME submitter wasn’t written with the ability to submit multiple jobs unfortunately. There are a few options, but I think they all require scripting:

  1. Take the Job/Plugin info files and edit the ins and outs.

This would require that you modify the two INI files that the submitters use to generate jobs, then run Deadline Command once per input video. You can see (and save) the INI files from the “Modify Job Properties” dialog in the “Submission Params” section.
docs.thinkboxsoftware.com/produc … ssion.html

  1. Use the Draft Watch Folder example

Justin B wrote this awhile ago, but it essentially emulates After Effects’ old watch folder. Any files copied into that folder while the Python script is running will have a Draft job created for it. This is probably less desirable since you’ve already configured your AME presets.
github.com/ThinkboxSoftware/Dea … atchfolder

  1. Use AME along this time and plan for the next time

Options 1 and 2 could take some time to set up and if you’re in a hurry, skipping Deadline this time might be the best approach. If nothing else, start down this path first, then start implementing either of the first two options. While you’re building things up, at least you’ll start getting results.

Let me know which option makes the most sense to you, and we’ll go down that path.

Hi,

See attached, updated Adobe Media Encoder plugin to handle batch job submission. Extract the zip to the same named locations, overwriting the same-named files in your Deadline repository. (Make sure you carry out a backup of these files before, just in case).

Let us know if that helps?
Mike

ame-patch-16-05-2017.zip (19.5 KB)

Hello, thanks you for new script. We use Deadline 7. I installed files to repository, but unfortunately when I run it from monitor it does not startup at all. Nothing.
Where I can see some log files?

Sorry, these scripts will only work in Deadline 9 onwards.

Is it possible backport it to 7 ?

I’ll have to look into what it’ll take to back-port this one.

Which version of 7 are you on? We’ve made a lot of great improvements since then. Any chance you’d want to upgrade to 9? :slight_smile:

7.2.4.0

Well, after some discussion here I’m not sure offhand what might be causing trouble between versions.

Could you create a new “Console” panel (under ‘view’) and send us any errors you see in there? If the submitter isn’t showing up, there’s likely going to be something useful in there. Hopefully nothing with your setup.

2017-05-17 20:39:34: Deadline Monitor 7.2 [v7.2.4.0 R (de7785a42)] 2017-05-17 20:39:34: Time to initialize: 109.000 ms 2017-05-17 20:39:38: Auto Configuration: No auto configuration for Repository Path could be detected, using local configuration 2017-05-17 20:39:39: Auto Configuration: Picking configuration based on: T1000 / 192.168.1.27 2017-05-17 20:39:39: Auto Configuration: No auto configuration could be detected, using local configuration 2017-05-17 20:39:39: Time to connect to Repository: 1.233 s 2017-05-17 20:39:39: Time to check user account: 0.000 s 2017-05-17 20:39:39: Time to purge old logs and temp files: 15.000 ms 2017-05-17 20:39:39: Time to synchronize plugin icons: 32.000 ms 2017-05-17 20:39:40: Time to initialize main window: 577.000 ms 2017-05-17 20:39:40: Main Window shown 2017-05-17 20:39:40: Time to show main window: 78.000 ms 2017-05-17 20:39:59: Running script MediaEncoderSubmission (\\server13\dlr\scripts\Submission\MediaEncoderSubmission.py) 2017-05-17 20:39:59: Traceback (most recent call last): 2017-05-17 20:39:59: File "DeadlineUI\UI\Commands\ScriptCommands.py", line 101, in InnerExecute 2017-05-17 20:39:59: PythonNetException: AttributeError : type object 'RepositoryUtils' has no attribute 'GetRepositoryPath' 2017-05-17 20:39:59: File "none", line 16, in <module> 2017-05-17 20:39:59:

Ah, then hopefully changing this line will get you there!

imp.load_source( 'IntegrationUI', os.path.join( RepositoryUtils.GetRepositoryPath("submission/Integration/Main", True), "IntegrationUI.py" ) )

Change it to:

imp.load_source( 'IntegrationUI', os.path.join( RepositoryUtils.GetRootDirectory(), "submission/Integration/Main", "IntegrationUI.py" ) )

Change one line, in MediaEncoderSubmission.py - but have an other error

2017-05-19 13:09:11: Running script MediaEncoderSubmission (\\server13\dlr\scripts\Submission\MediaEncoderSubmission.py) 2017-05-19 13:09:11: Traceback (most recent call last): 2017-05-19 13:09:11: File "DeadlineUI\UI\Commands\ScriptCommands.py", line 101, in InnerExecute 2017-05-19 13:09:11: PythonNetException: IOError : (2, 'No such file or directory') 2017-05-19 13:09:11: File "none", line 16, in <module>

Okay, so after cutting out all of the integration code which isn’t backwards compatible with 7, the submitter does work. Give this a try now.
MediaEncoderSubmission.py.zip (5 KB)

Thanks you for help!
OK, now when I run your script I can see dialog box, fill required parameters, such as IN, OUT and preset, then submit job. But now an other error from slave. It seems old seven deadline only know about 2014 media encoder (there was not “select version” option), but I use 2017. In plugins configuration I enter valid path to render executables and it worked.

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

Error: GetConfigEntry: Attempted to access non-existent config key MediaEncoder_ServiceExecutable14_0 (Deadline.Plugins.RenderPluginException)
at Deadline.Plugins.ScriptPlugin.GetConfigEntry(String key)
at Deadline.Plugins.DeadlinePlugin.GetConfigEntry(String key)
at Python.Runtime.Dispatcher.TrueDispatch(ArrayList args)
at Python.Runtime.Dispatcher.Dispatch(ArrayList args)
at Deadline.Plugins.DeadlinePlugin.StartJob()
at Deadline.Plugins.DeadlinePlugin.DoStartJob()
at Deadline.Plugins.ScriptPlugin.StartJob(Job job, String& outMessage, AbortLevel& abortLevel)
at Deadline.Plugins.ScriptPlugin.StartJob(Job job, String& outMessage, AbortLevel& abortLevel)

=======================================================
Type

RenderPluginException

=======================================================
Stack Trace

at Deadline.Plugins.Plugin.StartJob(Job job)
at Deadline.Slaves.SlaveRenderThread.a(TaskLogWriter A_0)

=======================================================
Log

2017-05-24 18:40:18: BEGIN - NODE80\rman
2017-05-24 18:40:18: 0: Start Job timeout is disabled.
2017-05-24 18:40:18: 0: Task timeout is disabled.
2017-05-24 18:40:18: 0: Loaded job: Untitled [A001C002_170501_R2TV.mov] (5925a836fa001115b8e52c02)
2017-05-24 18:40:18: 0: INFO: Executing plugin script C:\Users\rman\AppData\Local\Thinkbox\Deadline7\slave\node80\plugins\5925a836fa001115b8e52c02\MediaEncoder.py
2017-05-24 18:40:18: 0: INFO: Media Encoder Plugin Initializing…
2017-05-24 18:40:18: 0: INFO: About: Adobe Media Encoder Plugin for Deadline
2017-05-24 18:40:18: 0: INFO: The job’s environment will be merged with the current environment before rendering

=======================================================
Details

Date: 05/24/2017 18:40:19
Frames: 0
Elapsed Time: 00:00:00:02
Job Submit Date: 05/24/2017 18:35:18
Job User: rman
Average RAM Usage: 8470446080 (13%)
Peak RAM Usage: 8470446080 (13%)
Average CPU Usage: 2%
Peak CPU Usage: 3%
Used CPU Clocks: 1683
Total CPU Clocks: 84148

=======================================================
Slave Information

Slave Name: node80
Version: v7.2.4.0 R (de7785a42)
Operating System: Windows 7 Ultimate (SP1)
Running As Service: No
Machine User: rman
IP Address: 192.168.50.180
MAC Address: 00:25:90:D9:51:59
CPU Architecture: x64
CPUs: 32
CPU Usage: 2%
Memory Usage: 7.8 GB / 64.0 GB (12%)
Free Disk Space: 80.531 TB (226.721 GB on C:, 27.492 TB on S:, 52.818 TB on T:)
Video Card: Matrox G200eW (Nuvoton)
[/code]

Did you remember to copy all files from the “plugins” folder in Mike’s zip file into your “[repo]/custom/plugins” folder? I only sent along my changes, so the plugin is still in Mike’s zip file.

Ok, copy first files, the copy patched script. Now I can submit job successfully. I can see it in deadline monitor. Deadline try to start job with following error:

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

Error: TypeError : cannot instantiate abstract class (Python.Runtime.PythonException)
File “none”, line 227, in StartJob
File “none”, line 266, in StartWebService

at Deadline.Plugins.ScriptPlugin.StartJob(Job job, String& outMessage, AbortLevel& abortLevel)

=======================================================
Type

RenderPluginException

=======================================================
Stack Trace

at Deadline.Plugins.Plugin.StartJob(Job job)
at Deadline.Slaves.SlaveRenderThread.a(TaskLogWriter A_0)

=======================================================
Log

2017-05-26 11:26:27: BEGIN - NODE80\rman
2017-05-26 11:26:27: 0: Start Job timeout is disabled.
2017-05-26 11:26:27: 0: Task timeout is disabled.
2017-05-26 11:26:27: 0: Loaded job: Untitled [A001C001_170501_R2TV.mov] (5927e6a6fa0011085c8d2044)
2017-05-26 11:26:27: 0: INFO: Executing plugin script C:\Users\rman\AppData\Local\Thinkbox\Deadline7\slave\node80\plugins\5927e6a6fa0011085c8d2044\MediaEncoder.py
2017-05-26 11:26:27: 0: INFO: Media Encoder Plugin Initializing…
2017-05-26 11:26:27: 0: INFO: About: Adobe Media Encoder Plugin for Deadline
2017-05-26 11:26:27: 0: INFO: The job’s environment will be merged with the current environment before rendering
2017-05-26 11:26:27: 0: INFO: Media Encoder Exe Name: Adobe Media Encoder CC 2017
2017-05-26 11:26:27: 0: INFO: Existing Adobe Media Encoder Process: Fail On Existing Process
2017-05-26 11:26:27: 0: INFO: Auto Shutdown Adobe Media Encoder: True
2017-05-26 11:26:27: 0: INFO: Checking for an existing AME Web Service at 192.168.50.180:8080…
2017-05-26 11:26:28: 0: INFO: Unable to connect to an existing AME Web Service at 192.168.50.180:8080.
2017-05-26 11:26:28: 0: INFO: Starting AME Web Service…
2017-05-26 11:26:28: 0: INFO: Looking for hostname/ip and port override in config ini file: C:\Program Files\Adobe\Adobe Media Encoder CC 2017\ame_webservice_config.ini
2017-05-26 11:26:28: 0: INFO: Executable: C:\Program Files\Adobe\Adobe Media Encoder CC 2017\ame_webservice_console.exe
2017-05-26 11:26:28: 0: INFO: Host: 192.168.50.180
2017-05-26 11:26:28: 0: INFO: Port: 8080

=======================================================
Details

Date: 05/26/2017 11:26:29
Frames: 0
Elapsed Time: 00:00:00:03
Job Submit Date: 05/26/2017 11:26:14
Job User: rman
Average RAM Usage: 6135127040 (9%)
Peak RAM Usage: 6137528320 (9%)
Average CPU Usage: 4%
Peak CPU Usage: 7%
Used CPU Clocks: 6732
Total CPU Clocks: 168296

=======================================================
Slave Information

Slave Name: node80
Version: v7.2.4.0 R (de7785a42)
Operating System: Windows 7 Ultimate (SP1)
Running As Service: No
Machine User: rman
IP Address: 192.168.50.180
MAC Address: 00:25:90:D9:51:59
CPU Architecture: x64
CPUs: 32
CPU Usage: 6%
Memory Usage: 5.7 GB / 64.0 GB (8%)
Free Disk Space: 80.927 TB (226.555 GB on C:, 27.914 TB on S:, 52.791 TB on T:)
Video Card: Matrox G200eW (Nuvoton)
[/code]
So, deadline try to connect AME in port 8080, but no one listen on this port.
Lets check from an other machine, I try telnet $ telnet 192.168.50.180 8080 Trying 192.168.50.180... telnet: connect to address 192.168.50.180: Connection refused telnet: Unable to connect to remote host

This is because AME doest not start. But I think deadline should launch it? Am I correct?
Then, while job is in deadline I run ame_webservice_console by hand, after that deadline can connect to AME and launch job and render it successfully.

Ok, then I have found 2 files in AME folder: AMEWebService and AMEWinService
This is looks like service files which I can not Install, to run AME as service.
But I think deadline should launch ame_webservice_console themself, before try to connect to it?

I think I’ll need to test this, but I’ve told Mike about it. That error is nothing to do with AME at least. We just need to make some changes in the script.

I had forgotten, but I did test this with Deadline 7. I don’t think it will help, but you can try adding this with the other imports:

from FranticX.Processes import *

After that, I’m not sure what else to try. This is technically a new feature, and I hit what we consider limits on back-porting new features awhile ago (I went above and beyond what I probably should have).

You may just need to upgrade to the latest version. Is there a good time you’ll be able to do this?

Privacy | Site terms | Cookie preferences