Dolby
  • Up and Running
  • Amazon Web Services
  • Sources
  • Hybrik JSON
  • Video Filters
  • Audio Filters
  • Working with Audio
  • Task Modifiers
  • Source Pipeline
  • Segmented Rendering
  • Split Task
  • Processing Group IDs
  • Package Task
  • Analysis & Quality Control
  • Dolby Technologies
  • Additional Tasks
  • Hybrik Versions
  • QC Player
  • Machine Performance Analysis

    Processing Group IDs

    Sometimes you may only want to pass certain outputs from one Hybrik task to another. For example, you might have a transcode task that creates a mezzanine MXF and some mp4s for streaming, but you only want to pass the mp4s to the package task. Or maybe you have h264 and h265 outputs from your transcode task that you want to package using different settings, so you need to divide them between two package tasks. processing_group_ids provide a means to filter transcode task targets to subsequent tasks.

    Example

    Let’s take an example with two h264 videos, two h265 videos, a subtitle, and an audio encode. Let’s say we want to filter them from the transcode task to the package task as follows:

    processing_group_ids

    Syntax

    In the task that is generating the outputs to be filtered (we’ll call it the “sender”), you can label each of your targets with one or more processing_group_ids:

    "targets": [
        {
            "processing_group_ids": [
                "hls",
                "dash_h265"
            ],
    

    processing_group_ids are an array of strings. The strings themselves can be whatever you want, but must match between the “sender” and “receiver”.

    In the “receiver” task, which is downstream from the “sender” task, you can set which processing_group_ids the task should be fed. The “reciever” task will only recieve outputs from targets in the “sender” task with a matching processing_group_id.

    Example “reciever” task filter:

     {
        "uid": "hls_package_h264_h265",
        "kind": "package",
        "task": {
            "extended": {
                "start_payload_filter": {
                    "processing_group_ids": [
                        "hls"
                    ]
                }
            },
    

    Inside the task object, we place the extended object, followed by the start_payload_filter. This is where we provide an array of processing_group_ids specified in the upstream transcode task. This task will only receive transcode targets that have a processing_group_id of hls in this example.

    Because targets can have multiple processing_group_ids, matching any one id will allow it to flow into the downstream task.

    Example Job

    • Processing group IDs to filter from one transcode task to 3 package tasks as shown in our diagram