Skip to main content

Split Task

If you are looking for a way to distribute your transcodes across multiple instances, there are two options:

  • split_task
  • segmented_rendering read more here

transcode_auto_split can be applied as a job_modifier task to split up encoding of multiple targets in a transcode task. This will distribute the targets across multiple instances for the purpose of completing a job more quickly. It can also be combined with segmented_rendering for further parallelization and control.

Possible values are:

  • smart
    • This will attempt to distribute more resource-intensive encodes to their own instances and group lighter encodes together.
  • aggressive
    • This will spread every transcode target to its own instance. This is useful if you have many resource-intense encodes

Visual Guide​

Here is a visual representation of what is happening when using each of the transcode_auto_split options.

Mode: smart​

split_task_smart example

{
"uid": "job_modifier_task",
"kind": "script",
"payload": {
"kind": "job_modifier",
"payload": {
"modifiers": [
{
"kind": "transcode_auto_split",
"target_element_uid": "transcode_task",
"mode": "smart"
}
]
}
}
},

Mode: aggressive​

split_task_aggressive example

{
"uid": "job_modifier_task",
"kind": "script",
"payload": {
"kind": "job_modifier",
"payload": {
"modifiers": [
{
"kind": "transcode_auto_split",
"target_element_uid": "transcode_task",
"mode": "aggressive"
}
]
}
}
},

No Split​

split_task_disabled example This is the default behavior when the job contains no split task modifier

Instance Size​

It is important to balance appropriate instance sizes when using the split modifier. You may not want to go from a single transcode task on a massive CPU instance to spreading out every transcode target on their own massive instance. You would likely want to send the job to a series of medium-powered instances instead. Read more on Machine Performance.

Examples​