Skip to content

A.2 Language used by the ingestion (workflow implementation)

Giuliano Catrambone edited this page Jan 15, 2025 · 22 revisions

The json language used to define a Workflow is very simple, there are two main objects:

  • the Workflow json object having the following main information
    • the name of the Workflow
    • a list of variables. In case several tasks of the Workflow use the save value, it can be created a variable and the tasks can refer just to this variable
    • a reference to the first task of the Workflow that will be executed
  • the Task json object having the following main information
    • the type field identifies the activity the task has to be done (i.e.: concat, cut, ...)
    • the parameter fields needed to execute the task
    • the task to be executed in case of success, error and complete events
__WORKFLOW__ json object:
    {
        // any variable defined here can be used (${VarName1}) in any task
        // optional
	"variables":
        [
            {
	        "varName1": "value 1",
	        "description": "description 1"
            },
            {
	        "varName2": "value 2",
	        "description": "description 2"
            },
	    ...
	],

        // optional
        "label": "name of the Workflow",

        // optional
        "description": "description of the Process/ingestion",

        // optional, default is Workflow
        "type": "Workflow",

        // optional, default is false (MMSGUI just does not show it by default)
        "hidden": false,

        // first task to be executed
        "task": __TASK__
    }

__TASK__ json object:
    {
        // optional
        "label": "name of the task",

        // One of the types defined by CatraMMS, i.e.: Add-Content, Encode,
        // Concat-Demux, Cut, EMail-Notification, ...
        "type": "...",

        // The parameters used to execute the task, they depend on the Type of Task
        "parameters": 
        {
            .....
        },
        // task executed in case of success
        // optional
        "onSuccess": 
        {
            // this task, by default, receives as input, the output of the parent task 
            "task": __TASK__
        },
        // task executed in case of error
        // optional
        "onError": 
        {
            // this task, by default, receives as input, the output of the parent task 
            "task": __TASK__
        },
        // task executed in any case
        // optional
        "onComplete": 
        {
            // this task, by default, receives as input, the output of the parent task 
            "task": __TASK__
        }
    }

// A special 'Type' of a Task is "GroupOfTasks", in this case Task will be:
"task": 
{
    "type": "GroupOfTasks",
    "parameters": 
    {
        // parallel or sequential
        "executionType": "parallel",

        "tasks": 
        [
            __TASK__,
            __TASK__
            ...
        ],
        // task executed in case of success
        // optional
        "onSuccess": 
        {
            // this task, by default, receives as input, the output of all the tasks defined by the above 'tasks' json field 
            "task": __TASK__
        },
        // task executed in case of error
        // optional
        "onError": 
        {
            // this task, by default, receives as input, the output of all the tasks defined by the above 'tasks' json field 
            "task": __TASK__
        },
        // task executed in any case
        // optional
        "onComplete":
        {
            // this task, by default, receives as input, the output of all the tasks defined by the above 'tasks' json field
            "task": __TASK__
        }                                                                                                   
    }
}                                                                                                      
  1. Home

    Tutorial
    1. User registration
    2. Add content - Pull
    3. Add content, on success send an email
    4. Two Tasks (Add content) to be executed in parallel
    5. Add a set of video encoding profiles
    6. Add two contents, send an email, concat, cut and encode
    7. Add a single image profile (Logo)
    8. Add a video, an image, encode the image, overlay the encoded image on the video
  2. REST API version 1 (latest)

    Registration
    1. User registration
    2. Login
    3. Create Workspace
    4. Share Workspace
    5. Update Workspace
    6. Update User
    Workflow Ingestion
    1. Workflow
    2. Status/metadata of an ingestion
    3. Group Of Tasks
    Workflow As Library
    1. Workflow as Library
    2. Create-Update a Workflow as Library
    3. Delete a Workflow as Library
    4. Use of a Workflow as Library
    Add-Remove Content
    1. Add a new Content
      1. Pull
      2. Push
    2. Remove a Content
    3. Information about the contents saved into MMS
    4. Retention of a Content
    Delivery
    1. Download HTTP of a Content
    2. FTP of a Content
    3. Local copy of a Content
    4. Live Proxy
    5. VOD Proxy
    6. Countdown
    7. Check Streaming
    Social Network Delivery
    1. POST a Content on Facebook
    2. POST a Content on YouTube
    3. YouTube Live Broadcast
    4. Facebook Live Broadcast
    Encoding (video-audio-image)
    1. Add encoding profiles
    2. Remove encoding profiles
    3. Encode
    4. Information about the encoding profiles saved into MMS
    5. Predefined MMS Encoding Profiles
    Media activities
    1. Concatenate videos having same codecs
    2. Cut
    3. Video speed
    4. Extract tracks
    5. Add silent audio
    Overlay
    1. Overlay an Image on a Video
    2. Overlay a Text on a Video
    3. Picture In Picture
    4. Intro Outro Overlay
    5. Live Grid
    Frame Processing
    1. Frame of a video
    2. Periodical Frames of a video
    3. I-Frames of a video
    4. Motion JPEG video generated by Periodical Frames of a video
    5. Motion JPEG video generated by I-Frames of a video
    6. Slideshow video by images
    Recorder
    1. Live Recorder
    2. Live Cut
    Communication
    1. HTTP Callback
    2. Notification through email
    Utilities
    1. Change File Format
    2. Media Cross Reference
    Computer Vision
    1. Face Recognition
    2. Face Identification
    Configuration
    1. YouTube
    2. Facebook
    3. Live URL
    4. FTP
    5. E-Mail
Clone this wiki locally