Dolby
  • Up and Running
  • Amazon Web Services
  • Sources
  • Source Task Overview
  • Source Asset URL
  • Source Asset Complex
  • Source Contents Array
  • Trimming Sources
  • Generated Black and Silence
  • Subtitles and Closed Captioning Sources
  • Source Provider Task
  • Decoding Error Options
  • Hybrik JSON
  • Video Filters
  • Audio Filters
  • Working with Audio
  • Task Modifiers
  • Package Task
  • Analysis & Quality Control
  • Dolby Technologies
  • Additional Tasks
  • Hybrik Versions
  • QC Player
  • Machine Performance Analysis

    Hybrik Source Provider tasks

    A Hybrik job must always start from a source task, but what if you want to bring additional files into a Hybrik job later in the workflow? Perhaps you want to use an output from a previous task, or maybe you want to pass just a single file to a subsequent task.

    The source_provider task functions like a source task, except that any previous source tasks or outputs from any previous tasks are ignored. It is a way to wipe the slate clean and start with a new source in the middle of a Hybrik job.

    source_provider’s can be asset_url or asset_complex.

    Example

    Let’s say that you have a JPEG 2000 master video and a separate stereo audio track. You want to first combine them in a ProRes mezzanine. From that mezzanine, you then want to burn-in subtitles into a low-bitrate proxy. In your initial source task, you would just pass in audio and video files in an asset_complex, but not the subtitle source. You would need to supply the subtitles to the secondary transcode task where the proxy is created.

    Our connections_array, which defines the flow for the job, would look like this:

    "connections": [
        {
            "from": [
                {
                    "element": "sources"
                }
            ],
            "to": {
                "success": [
                    {
                        "element": "transcode_task_mezzanine"
                    }
                ]
            }
        },
        {
            "from": [
                {
                    "element": "transcode_task_mezzanine"
                }
            ],
            "to": {
                "success": [
                    {
                        "element": "insert_burn_in_sources"
                    }
                ]
            }
        },
        {
            "from": [
                {
                    "element": "insert_burn_in_sources"
                }
            ],
            "to": {
                "success": [
                    {
                        "element": "proxy_burn_transcode"
                    }
                ]
            }
        }
    ]
    

    Here is the source_provider task (with uid insert_burn_in_sources) that we would use after the “transcode_task_mezzanine” task. Note that we are providing both the mezzanine prores file and the subtitle source because a source provider ignores any previous inputs. In this case it is ignoring the mezzanine prores that was created by the “transcode_task_mezzanine” task.

    { 
        "uid": "insert_burn_in_sources",
        "kind": "source_provider",
        "payload": {
            "kind": "asset_complex",
            "payload": {
                "kind": "sequence",
                "asset_versions": [
                    {
                        "version_uid": "video_audio",
                        "asset_components": [
                            {
                                "kind": "name",
                                "name": "{{file_pattern}}.mov",
                                "location": {
                                    "storage_provider": "s3",
                                    "path": "{{destination_path}}"
                                },
                                "contents": [
                                    {
                                        "kind": "video"
                                    },
                                    {
                                        "kind": "audio"
                                    }
                                ]
                            },
                            {
                                "kind": "name",
                                "component_uid": "subtitle",
                                "name": "{{subtitle_source}}",
                                "location": {
                                    "storage_provider": "s3",
                                    "path": "{{source_path}}"
                                },
                                "contents": [
                                    {
                                        "kind": "subtitle",
                                        "payload": {
                                            "format": "auto"
                                        }
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    } 
    

    See the full example to see each piece of the job flow.

    Examples:

    • Source Provider